常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript

常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript

Javascript现阶段还不适合用来做独立开发,它的天下还是在web应用上。

主要做数据挖掘算法的研究,应该会处理大量的文本。

提到文本处理,相信大部分人都会说应该用Perl。文本处理很强大,语法给人的感觉太乱了,

Perl的基本语法,用它做了一些简单的文本处理工作,在Unix或 Linux上做系统管理Perl是最好的选择。

Python据说吸收了Perl的一些东西,语法非常规范,面向对象的脚本语言自由的,可移植的,功能强大的,可以与其它语言混合编程系统软件的脚本 图形用户接口,可以开发图形界面

 

组件集成,支持COM、JAVA

快速原型

Internet脚本

图像处理、人工智能、分布式对象

RedHat公司的Linxu安装工具使用Python

MS公司曾发不过部分使用Python写的程序

Yahoo!在大量Internet服务中使用Python

美国国家宇航局把Python用户任务控制系统的实现

 

Perl最多,Ruby居中,Python最少;

Perl是最古老的,Python居中,Ruby最年轻;

再考虑到语言本身的语法特点,Perl最晦涩,Python和Ruby都比较整洁。

语言本身没有优劣之分,关键在于应用这门语言的人对它的熟练程度。

就像一个牛人说的:“我用纯C语言照样写出完美的OO程序”。

二ruby和python的比较

python和ruby的相同点:

都强调语法简单,都具有更一般的表达方式。

python是缩进,ruby是类basic的表达。

都大量减少了符号。

都是动态数据类型。都是有丰富的数据结构。

都具有c语言扩展能力,都具有可移植性,比perl的可移植性更好。

也都可以作为嵌入语言。

都是面向对象的语言,都可以作为大项目的开发工具。

都有丰富的库支持。

也有最宽松的版权许可,除了一些工具属于GNU世界。

都有lisp特色的eval函数,也都能把函数作为参数。

也有图形界面的ruby的专门编辑器。

都获得了广泛的c库的支持。

如qt、gtk、tk、SDL、FOX等,ruby计划实现SWIG接口。

都有完善的文档。

和python相比ruby的优点:

具有正则表达式和嵌入html的功能。

python也有正则表达式,但没有ruby的应用方便和广泛。

python的嵌入html项目才刚起步。

ruby 还有apache的mod模块。

ruby本身也实现和很多unix工具,如racc,doctools。比python更亲近linux。

比python功能更完整的面向对象的语法。

ruby的整个库都是具有类继承的结构。

他的基本的数据类型和运算符都是可以重载的。

ruby主要的功能都是通过对象的方法调用来实现的,而不是函数。

python也在向这方面发展,但没有ruby做的彻底。

ruby的类是更规范的单继承,还有接口等概念的实现。

python可以实现在列表内的条件语句、循环语句,而ruby用“块”的方式来实现这个功能,比python的更灵活,更具有通用性。

ruby具有类似lisp的彻底的函数方式的条件语句、循环语句等。

语句的表达能力更强。

附带一些unix工具,如racc等。

 

和python相比ruby的不足:

最大的不足正是因为ruby的强大所引起的。它没有python的简单性好。

比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。

python的缩进表达方式比ruby的basic的表达方式更让人悦目,

ruby程序的满眼的end让人不舒服。

当然,ruby认为end的方式比python更先进。

ruby还没有python的“自省”的能力,

没有从程序文件中生成文档的能力。

ruby没有国际化的支持。

国际化支持在ruby的计划中。

这是因为ruby的历史比python要短造成的。

ruby没有类似jython的东西。

python和ruby的语言的选择:

从简单的就是好的来说,选python是没错的。

python适合寻找简单语言的人,这很可能造成python更流行,因此也有更多的支持。

但如果要追求更强大的语法功能,则ruby是好的选择。

因为ruby和python的哲学有很多相似的地方,

先从python入手,尽量用python,

如果 python的能力不足了,可以在找ruby。

ruby和python的比较,就像五笔和拼音输入法的比较。

拼音作为入门的输入法和长久使用的输入法都没有问题。

五笔适合更高要求的情况。

如果追求性能的不妨学学ruby。

 

对编程语言感兴趣,想了解各种编程概念的学ruby也会很兴奋

 

主流脚本语言的比较和选择

如果需要程序来辅助完成工作时,我都会选择Java。

先简单说说Java,Java是企业应用当之无愧的统治者。

但是,近几年随着大家对开发语言认识的转变,Java已经让越来越多的人感到不满,取而代之的是脚本语言的迅速崛起。

一个例子是,Java 7在最初的功能规划时,呼声最高的是“闭包”,而“闭包”恰恰是脚本语言最具特色的功能之一。

在使用诸如Java,C之类的语言时,我们不得不面对各种复杂的数据类型、设计模式和大量看起来没用但又不能缺少的代码。

而对脚本语言来说,这些问题都是天生就不存在的。

现在,开发讲究敏捷,注重效率,对于一个企业来说,开发工作首先要考虑的就是成本,敏捷开发正是降低成本最有效的手段之一,

而脚本语言,又是实现敏捷开发的一条可行之路。

有人说Java已经out了,但我并不这么觉得,我个人认为Java仍然是最好的跨平台方案。现在我们已经不能单纯把Java看做一门语言,它已经成为一个事实上的平台。

构建在Java平台之上的优秀的Java替代产品,也已经得到大家的广泛支持和认可,如groovy、scala等等。我相信,Java仍然有它的生命力,而它的生命力可能也要得益于脚本语言。

说了半天废话,还是要回到我选择脚本语言的话题上。我的初衷很简单,我要找一个非Java平台的,C语言的替代品。为什么?

第一,Java不是万能的,比如它做不了ICMP Ping;

第二,C语言学习曲线过长,C程序的部署难度较高;

第三,上述的脚本语言的所有优势。

本着以上几个原则,我学了几个流行的脚本语言,他们是:Perl、Python、Ruby,

 

当然后来我也学习Java平台上的脚本语言,如Jython(Python的Java实现)、JRuby(Ruby的java实现)、Groovy。

下面我想就这几个脚本语言,来做一个简单的比较,希望大家在选择脚本语言时,能有更多的参考。

脚本语言的比较

学习曲线,语言本身的特色、跨平台的能力、国际化的能力,以及它在应用领域的份额。

Unix/LinuxShell

首选还是要提一提Unix/Linux Shell(包括awk、sed),它也是脚本语言,并且可能是我们日常使用最多的。

我个人感觉,shell更适合做流程化的系统管理工作,而对于逻辑较为复杂的应用级产品,shell的开发和维护难度都相当高。带有个人情感的说,shell的学习难度大于大多数主流脚本语言,这和它的语法特点,调试、运行环境等等都有关系。

因此,日常流程化的系统管理工作,shell仍然是一个不错的工具,除此之外,相信大家还有更好的选择。

Python/Jython

Python最大的魅力之一,就是简单易学,一个新手可以短期内(有人说是十分钟,我认为几天是完全可能的)就写出高质量并且实用的程序,它甚至被称为非计算机专业人士学习编程的最好选择。

Python的功能强大,标准库的丰富程度,估计连Java也望尘莫及。

Python适合做系统管理,但这并不是说它不能做大型应用程序。

Python应用的成功案例,已经数不胜数,尤其是在科学计算领域更是独树一帜。

 

Python是一门优秀的面向对象语言,但更多的Python程序员,喜欢Python面向过程的部分。我个人感觉,Python的OO不如Ruby,因为不够彻底,但这也正是Python支持者更爱它的地方。

可惜的是,Python在企业应用领域没能有更大的突破,近几年更有被后起之秀Rails(Ruby的WEB框架)抛在身后的意思。

但这并不说明Python在企业应用方面不成熟(豆瓣网是离我们最近的Python案例),如果有兴趣,大家可以了解Python社区最具人气的WEB框架Django,也可以去看看简单到让人难以置信的WEB框架webpy。Python在短短几年内就成为六大主流开发语言之一,绝对不是盖的!

Jython是Python的Java实现,它是IBM WebSphere服务器官方指定的管理语言。

我选择jython是看重了jdbc访问数据库的便捷。

但可惜的是,jython对中文支持非常不好,可能是python本身的复杂度较高,jython团队的活跃度也比较低,总之Jython要走的路还很漫长,

至少我认为当前版本,还不具备投入生产开发的能力。

Ruby/JRuby

Ruby是脚本语言的后起之秀,它的成功要得益于杀手级框架Rails,Rails社区早就喊出了干掉Java的口号,

虽然这种口号没有什么实际意义,但Rails的确已经成为眼下最为炙手可热的企业应用框架。

我个人花了几个月的时间学习Rails,虽然没有实际的开发经验,

但Rails敏捷开发上的突出表现,的确是当仁不让的,这也是它能迅速窜红的主要原因吧。

抛开Rails框架,还是来说Ruby.

 

Ruby的语言特色是纯面向对象,语法以魔幻著称(它吸收了Perl、Python等脚本语言的大量优秀元素)。因此它的学习曲线要高于Python,但是学成以后可能会写出非常优雅的代码。

 

 

 

美中不足是Ruby还年轻,它的标准库还不够丰富,成熟的第三方库也相对较少,但这些情况会随着时间的推进逐渐改变。

 

Ruby完全可以胜任系统管理的需要,当然,如果开发WEB程序,Rails更是不二的选择。

 

JRuby是Ruby的Java实现,也是最早被Sun官方接收的Java平台脚本语言(后来还有Jython)。

 

JRuby与Ruby的兼容性非常高,团队也非常活跃。

 

如果想在Java平台上使用脚本语言,除了Java原生的Groovy,我推荐JRuby,这也是我的选择。

Perl

提到Perl可能很多人会想到CGI,我个人可能更多的会联想到文本处理,事实上,Perl设计之初的主要用途的确是在文本中提取信息。

Perl像Python一样,是目前最久经考验,且成熟度最高的脚本语言之一,它有着大量的用户群和忠实的粉丝,因此我说Perl的坏话就比较心虚一点:)

坦白的说,我不太喜欢Perl,可能像大多数不喜欢Perl的人一样,Perl语法让人不太习惯,有人说Perl的语法丑陋,可能有些夸张,但这能说明一些问题。

Perl社区至少也应该承认一点:Perl是一门比较难上手的语言。这并不是说,你短期内掌握不了Perl,而是你短期内写不出真正像样的东西。

另外,Perl不是面向对象语言,当然,很多人并不看重这一点,但这并不是什么优点。

Perl适合做系统管理,我觉得它跟shell很像。

在其他应用领域,尤其是internet方面,

Perl都有不俗的表现。

Perl非常优秀,还是那句话,语言没有好坏,只有合适不合适。

Groovy

如果你正在为“热爱Java平台”和“厌恶Java语法”的事情纠结,Groovy可能就是最好的选择。

Groovy可以说是Java平台的原生脚本语言,与Java完美结合,它本身不提供标准库,完全使用Java的API库。

在Rails成功之后,Groovy社区也出现了Grails框架,用来抗衡Rails。

Groovy本身也吸收了Ruby大量的经典语法,热爱Java的人,可以选择Groovy。

脚本语言的缺点和未来

目前大家公认的,脚本语言的主要缺陷还是性能问题,

当然这可能取决于很多因素,问题是有多少情况下,性能问题才是致命的。

从EJB的崩溃,Spring的兴起到Java遭受质疑,Rails取得成功,

都说明,大家在面对不同规模的应用时,已经非常理智了。

我相信能够真正服务于我们的技术,才能有好的前景,脚本语言的明天是无限光明的!

Javascript现阶段还不适合用来做独立开发,它的天下还是在web应用上。

主要做数据挖掘算法的研究,应该会处理大量的文本。

提到文本处理,相信大部分人都会说应该用Perl。文本处理很强大,语法给人的感觉太乱了,

Perl的基本语法,用它做了一些简单的文本处理工作,在Unix或 Linux上做系统管理Perl是最好的选择。

Python据说吸收了Perl的一些东西,语法非常规范,面向对象的脚本语言自由的,可移植的,功能强大的,可以与其它语言混合编程系统软件的脚本 图形用户接口,可以开发图形界面

 

组件集成,支持COM、JAVA

快速原型

Internet脚本

图像处理、人工智能、分布式对象

RedHat公司的Linxu安装工具使用Python

MS公司曾发不过部分使用Python写的程序

Yahoo!在大量Internet服务中使用Python

美国国家宇航局把Python用户任务控制系统的实现

 

Perl最多,Ruby居中,Python最少;

Perl是最古老的,Python居中,Ruby最年轻;

再考虑到语言本身的语法特点,Perl最晦涩,Python和Ruby都比较整洁。

语言本身没有优劣之分,关键在于应用这门语言的人对它的熟练程度。

就像一个牛人说的:“我用纯C语言照样写出完美的OO程序”。

二ruby和python的比较

python和ruby的相同点:

都强调语法简单,都具有更一般的表达方式。

python是缩进,ruby是类basic的表达。

都大量减少了符号。

都是动态数据类型。都是有丰富的数据结构。

都具有c语言扩展能力,都具有可移植性,比perl的可移植性更好。

也都可以作为嵌入语言。

都是面向对象的语言,都可以作为大项目的开发工具。

都有丰富的库支持。

也有最宽松的版权许可,除了一些工具属于GNU世界。

都有lisp特色的eval函数,也都能把函数作为参数。

也有图形界面的ruby的专门编辑器。

都获得了广泛的c库的支持。

如qt、gtk、tk、SDL、FOX等,ruby计划实现SWIG接口。

都有完善的文档。

和python相比ruby的优点:

具有正则表达式和嵌入html的功能。

python也有正则表达式,但没有ruby的应用方便和广泛。

python的嵌入html项目才刚起步。

ruby 还有apache的mod模块。

ruby本身也实现和很多unix工具,如racc,doctools。比python更亲近linux。

比python功能更完整的面向对象的语法。

ruby的整个库都是具有类继承的结构。

他的基本的数据类型和运算符都是可以重载的。

ruby主要的功能都是通过对象的方法调用来实现的,而不是函数。

python也在向这方面发展,但没有ruby做的彻底。

ruby的类是更规范的单继承,还有接口等概念的实现。

python可以实现在列表内的条件语句、循环语句,而ruby用“块”的方式来实现这个功能,比python的更灵活,更具有通用性。

ruby具有类似lisp的彻底的函数方式的条件语句、循环语句等。

语句的表达能力更强。

附带一些unix工具,如racc等。

 

和python相比ruby的不足:

最大的不足正是因为ruby的强大所引起的。它没有python的简单性好。

比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。

python的缩进表达方式比ruby的basic的表达方式更让人悦目,

ruby程序的满眼的end让人不舒服。

当然,ruby认为end的方式比python更先进。

ruby还没有python的“自省”的能力,

没有从程序文件中生成文档的能力。

ruby没有国际化的支持。

国际化支持在ruby的计划中。

这是因为ruby的历史比python要短造成的。

ruby没有类似jython的东西。

python和ruby的语言的选择:

从简单的就是好的来说,选python是没错的。

python适合寻找简单语言的人,这很可能造成python更流行,因此也有更多的支持。

但如果要追求更强大的语法功能,则ruby是好的选择。

因为ruby和python的哲学有很多相似的地方,

先从python入手,尽量用python,

如果 python的能力不足了,可以在找ruby。

ruby和python的比较,就像五笔和拼音输入法的比较。

拼音作为入门的输入法和长久使用的输入法都没有问题。

五笔适合更高要求的情况。

如果追求性能的不妨学学ruby。

 

对编程语言感兴趣,想了解各种编程概念的学ruby也会很兴奋

 

主流脚本语言的比较和选择

如果需要程序来辅助完成工作时,我都会选择Java。

先简单说说Java,Java是企业应用当之无愧的统治者。

但是,近几年随着大家对开发语言认识的转变,Java已经让越来越多的人感到不满,取而代之的是脚本语言的迅速崛起。

一个例子是,Java 7在最初的功能规划时,呼声最高的是“闭包”,而“闭包”恰恰是脚本语言最具特色的功能之一。

在使用诸如Java,C之类的语言时,我们不得不面对各种复杂的数据类型、设计模式和大量看起来没用但又不能缺少的代码。

而对脚本语言来说,这些问题都是天生就不存在的。

现在,开发讲究敏捷,注重效率,对于一个企业来说,开发工作首先要考虑的就是成本,敏捷开发正是降低成本最有效的手段之一,

而脚本语言,又是实现敏捷开发的一条可行之路。

有人说Java已经out了,但我并不这么觉得,我个人认为Java仍然是最好的跨平台方案。现在我们已经不能单纯把Java看做一门语言,它已经成为一个事实上的平台。

构建在Java平台之上的优秀的Java替代产品,也已经得到大家的广泛支持和认可,如groovy、scala等等。我相信,Java仍然有它的生命力,而它的生命力可能也要得益于脚本语言。

说了半天废话,还是要回到我选择脚本语言的话题上。我的初衷很简单,我要找一个非Java平台的,C语言的替代品。为什么?

第一,Java不是万能的,比如它做不了ICMP Ping;

第二,C语言学习曲线过长,C程序的部署难度较高;

第三,上述的脚本语言的所有优势。

本着以上几个原则,我学了几个流行的脚本语言,他们是:Perl、Python、Ruby,

 

当然后来我也学习Java平台上的脚本语言,如Jython(Python的Java实现)、JRuby(Ruby的java实现)、Groovy。

下面我想就这几个脚本语言,来做一个简单的比较,希望大家在选择脚本语言时,能有更多的参考。

脚本语言的比较

学习曲线,语言本身的特色、跨平台的能力、国际化的能力,以及它在应用领域的份额。

Unix/LinuxShell

首选还是要提一提Unix/Linux Shell(包括awk、sed),它也是脚本语言,并且可能是我们日常使用最多的。

我个人感觉,shell更适合做流程化的系统管理工作,而对于逻辑较为复杂的应用级产品,shell的开发和维护难度都相当高。带有个人情感的说,shell的学习难度大于大多数主流脚本语言,这和它的语法特点,调试、运行环境等等都有关系。

因此,日常流程化的系统管理工作,shell仍然是一个不错的工具,除此之外,相信大家还有更好的选择。

Python/Jython

Python最大的魅力之一,就是简单易学,一个新手可以短期内(有人说是十分钟,我认为几天是完全可能的)就写出高质量并且实用的程序,它甚至被称为非计算机专业人士学习编程的最好选择。

Python的功能强大,标准库的丰富程度,估计连Java也望尘莫及。

Python适合做系统管理,但这并不是说它不能做大型应用程序。

Python应用的成功案例,已经数不胜数,尤其是在科学计算领域更是独树一帜。

 

Python是一门优秀的面向对象语言,但更多的Python程序员,喜欢Python面向过程的部分。我个人感觉,Python的OO不如Ruby,因为不够彻底,但这也正是Python支持者更爱它的地方。

可惜的是,Python在企业应用领域没能有更大的突破,近几年更有被后起之秀Rails(Ruby的WEB框架)抛在身后的意思。

但这并不说明Python在企业应用方面不成熟(豆瓣网是离我们最近的Python案例),如果有兴趣,大家可以了解Python社区最具人气的WEB框架Django,也可以去看看简单到让人难以置信的WEB框架webpy。Python在短短几年内就成为六大主流开发语言之一,绝对不是盖的!

Jython是Python的Java实现,它是IBM WebSphere服务器官方指定的管理语言。

我选择jython是看重了jdbc访问数据库的便捷。

但可惜的是,jython对中文支持非常不好,可能是python本身的复杂度较高,jython团队的活跃度也比较低,总之Jython要走的路还很漫长,

至少我认为当前版本,还不具备投入生产开发的能力。

Ruby/JRuby

Ruby是脚本语言的后起之秀,它的成功要得益于杀手级框架Rails,Rails社区早就喊出了干掉Java的口号,

虽然这种口号没有什么实际意义,但Rails的确已经成为眼下最为炙手可热的企业应用框架。

我个人花了几个月的时间学习Rails,虽然没有实际的开发经验,

但Rails敏捷开发上的突出表现,的确是当仁不让的,这也是它能迅速窜红的主要原因吧。

抛开Rails框架,还是来说Ruby.

 

Ruby的语言特色是纯面向对象,语法以魔幻著称(它吸收了Perl、Python等脚本语言的大量优秀元素)。因此它的学习曲线要高于Python,但是学成以后可能会写出非常优雅的代码。

 

 

 

美中不足是Ruby还年轻,它的标准库还不够丰富,成熟的第三方库也相对较少,但这些情况会随着时间的推进逐渐改变。

 

Ruby完全可以胜任系统管理的需要,当然,如果开发WEB程序,Rails更是不二的选择。

 

JRuby是Ruby的Java实现,也是最早被Sun官方接收的Java平台脚本语言(后来还有Jython)。

 

JRuby与Ruby的兼容性非常高,团队也非常活跃。

 

如果想在Java平台上使用脚本语言,除了Java原生的Groovy,我推荐JRuby,这也是我的选择。

Perl

提到Perl可能很多人会想到CGI,我个人可能更多的会联想到文本处理,事实上,Perl设计之初的主要用途的确是在文本中提取信息。

Perl像Python一样,是目前最久经考验,且成熟度最高的脚本语言之一,它有着大量的用户群和忠实的粉丝,因此我说Perl的坏话就比较心虚一点:)

坦白的说,我不太喜欢Perl,可能像大多数不喜欢Perl的人一样,Perl语法让人不太习惯,有人说Perl的语法丑陋,可能有些夸张,但这能说明一些问题。

Perl社区至少也应该承认一点:Perl是一门比较难上手的语言。这并不是说,你短期内掌握不了Perl,而是你短期内写不出真正像样的东西。

另外,Perl不是面向对象语言,当然,很多人并不看重这一点,但这并不是什么优点。

Perl适合做系统管理,我觉得它跟shell很像。

在其他应用领域,尤其是internet方面,

Perl都有不俗的表现。

Perl非常优秀,还是那句话,语言没有好坏,只有合适不合适。

Groovy

如果你正在为“热爱Java平台”和“厌恶Java语法”的事情纠结,Groovy可能就是最好的选择。

Groovy可以说是Java平台的原生脚本语言,与Java完美结合,它本身不提供标准库,完全使用Java的API库。

在Rails成功之后,Groovy社区也出现了Grails框架,用来抗衡Rails。

Groovy本身也吸收了Ruby大量的经典语法,热爱Java的人,可以选择Groovy。

脚本语言的缺点和未来

目前大家公认的,脚本语言的主要缺陷还是性能问题,

当然这可能取决于很多因素,问题是有多少情况下,性能问题才是致命的。

从EJB的崩溃,Spring的兴起到Java遭受质疑,Rails取得成功,

都说明,大家在面对不同规模的应用时,已经非常理智了。

我相信能够真正服务于我们的技术,才能有好的前景,脚本语言的明天是无限光明的!

你可能感兴趣的:(JavaScript)