什么是脚本语言

很多人都会用一些“脚本语言”(scripting language),却很少有人真正的知道到底什么是脚本语言。很多人用 shell

写一些“脚本”来完成日常的任务,用 Perl 或者 sed

来处理一些文本文件,很多公司用“脚本”来跑它们的“build”。那么,到底什么是“脚本语言”与“非脚本语言”的区别呢?

首先我们来看看“脚本”这个概念是如何产生的。使用 Unix

系统的人都会敲入一些命令,而命令貌似都是“一次性”或者“可抛弃”的。然而不久,人们就发现自己在重复的敲入类似的命令,所以有人就发明了“脚本”这东西。它的设计初衷是“批量式”的执行命令,你在一个文件里把命令都写进去,然后执行这个文件。可是不久人们就发现,这些命令行其实可以用更加聪明的方法构造,比如定义一些变量,或者根据系统类型的不同执行不同的命令。于是,人们为这脚本语言加入了变量,条件语句,数组,等等构造。“脚本语言”就这样产生了。

然而人们却没有发现,其实他们根本就不需要脚本语言。因为脚本语言里面的这些结构,在任何一种“严肃”的程序语言(比如

Java,Scheme)里面,早就已经存在了。脚本语言的“优势”,其实只在于它不需要事先“编译”,它“调用程序”的时候,貌似可以少打几个字。然而,这个优势却是非常不明显的。你完全可以想一个自动的办法,先调用编译器,生成机器代码,然后执行它。或者你可以选择一种有解释执行方式的“严肃语言”(比如

Scheme)。实际上,很多 Scheme

解释器都会进行一定程度的“编译”,有些编译为字节码,有些编译为机器代码,然后再执行。所以在这种情况下,“编译性语言”与“解释性语言”,几乎没有本质上的区别。

跟 Java 或者 Scheme

这样的语言截然不同,“脚本语言”往往意味着异常拙劣的设计,因为它的设计初衷往往是目光短浅的。这些语言里面往往充满了历史遗留下来的各种临时的

hack,几乎没有“原则”可言。然而,在当今现实的工程项目中,这种脚本却占据了它们不该占有的地位。例如很多公司使用 shell

脚本来处理整个软件的“build”过程或者测试过程,其实是相当错误的决定。因为一旦这种 shell

脚本日益扩展,就变得非常难以控制,经常出现一些莫名其妙的问题,却找不到到底哪里出了问题。

我发现,“脚本语言”这个概念貌似在很多人的心目中根深蒂固了,仿佛他们头脑里的程序设计原则,一遇到“写脚本”这样的任务就完全崩溃了似的。很多平时写非常聪明的程序的人,到了需要处理“系统管理”任务的时候,就开始写一些

shell 脚本,或者 Perl

脚本。他们写这些脚本的时候,往往完全的忘记了程序设计的基本原则,例如“模块化”,“抽象”等等。他们大量的使用“环境变量”一类的东西,仿佛处理系统管理就应该这样做似的。

到后来,他们开始耗费大量的时间来处理脚本里面的错误,重复的犯同样的,莫名奇妙的错误,却始终没有发现问题的罪魁祸首,其实是他们错误的认为自己需要“脚本语言”。

脚本语言,几乎永远是错误的决定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容