为什么脚本语言是简单的

来源:互联网 发布:ubuntu 15.10 更新源 编辑:程序博客网 时间:2024/04/30 04:17
什么叫做脚本语言呢?是否不需要编译的,在运行时解释执行的就是脚本语言?更准确一点,脚本语言就是动态语言,是相对于静态语言而言的。所谓动态,就是变量的类型在运行中可变,而不是在编译前就固定了。这样说来,还是觉得有点太模糊了。因为现在的各种脚本语言太多,传统的如Javascript,VBScript以及PHP,还有更加专用的比如Bash和NAnt脚本等等。

大家都有一个印象,那就是脚本语言简单,那又是为什么呢?难道仅仅是因为不用编译?

突然想到,其实脚本语言之所以简单,是因为它更接近于人类的语言,目标是提高开发的速度。所传统的编译语言,是为了计算机的理解而设计的,是为了提高运行的速度。而且,脚本语言所操作的对象一般都比较“高级”,或者说是抽象层次比较高,更接近于业务领域的模型,有些甚至是专用的DSL,比如Nant就是为了做构建。而传统的编译语言,为了达到通用性,其抽象的层次是比较低的,离实际的业务有很大的距离。正因如此,使用脚本语言里经过高度封装的对象,我们开发的速度就可以很高。

所以,抽象的层次,才是脚本语言与编译语言的差别。前者追求的是开发简单和快速,而后者追求的是通用性和执行的高效。是不是编译,界限其实很模糊。重要的是,看你如何对业务进行抽象,专用一点还是通用一点。这两天在学习Ruby on Rails,又一次被Ruby的灵活语法所震撼了。因为Rails对Ruby的扩展,简直超出了我们传统的思维。Rails之所以强大,是因为进行了很高度的抽象,而且通过Ruby灵活的语法,让Rails仿佛成了一门新的语言。

在Google搜索Ruby on Rails的时候的,发现这篇文章《ruby on rails为什么暂时无法成为企业应用开发的主流?》居然排行在第三位上。现在想想,还真有点道理,模式化才能大规模精确复制。Ruby或许能够在某些领域成为DSL语言,但是要成为工业化主流,还是有点玄乎。

不管如何,有机会一定要学习ruby,学习rails,即便不用来开发,也可以有很多的启发。一门语言,只有能够给你带来很多启发,才值得学习,不知道是哪本书里说的了。ruby就是这样的语言,它所给我带来的震撼,是Java,C#等等语言所不能比拟的(包括JavaScript,PHP等等,都是C/C++的遗风),呵呵。
 
原创粉丝点击