编程世界主流脚本编程语言的比较与选择
为什么选择脚本语言
为什么你选择一个脚本语言,它可能是每个人都要面对的实际情况不同,语言本身没有好坏之分,只有合适或不合适的。因此,我选择的选择主要是根据应用程序的需要,而不是根据语言或用户的习惯。在我自己的情况,很长一段时间,如果我需要一个程序来协助工作,我会选择java。
第一只说java,java是一个当之无愧的统治者的企业应用。然而,近年来,随着语言的发展,java已经使越来越多的人们的不满,而不是对脚本语言的迅速崛起。一个例子是,在java 7的初始功能规划,呼声最高的是关闭和关闭是一个脚本语言的最鲜明的特征。当使用诸如java和c语言,我们要面对各种复杂的数据类型,设计模式,很多看似无用的但不可或缺的代码,脚本语言,这些问题都是与生俱来的。现在的发展敏捷和效率导向。对于一个企业来说,首先要考虑的是成本。敏捷开发是降低成本的最有效途径之一,脚本语言是实现敏捷开发的可行途径。
有人说,java已经出来了,但我不这么认为,我个人认为java仍然是最好的跨平台解决方案。现在我们不能仅仅看到java作为一种语言,它已成为一个事实的平台。优秀的java的选择建立在java平台已经得到了广泛的支持,得到大家的认可,如槽、斯卡拉等。我相信java仍然有其生命力,它的生命力也可以从脚本语言的好处。
说半天的废话,或者回到我选择脚本语言的话题,我的初衷很简单。我在寻找一个非java平台,替代C语言。为什么首先,java不是万能的,例如,它不能做ICMP ping;其次,C语言的学习曲线太长,和C程序是难以部署。第三,以上脚本语言的所有优点。
根据以上原则,我学习了几种流行的脚本语言。它们是:Perl、Python和Ruby。在那之后,我也学会了在java平台的脚本语言,例如Jython(Python java实现),JRuby(Ruby java实现),Groovy。我想对这些脚本语言做一个简单的比较。我希望当您选择脚本语言时,您可以有更多的参考。
脚本语言的比较
脚本语言的比较可能比较混乱,但我想重点放在以下几个方面:学习曲线、语言本身的特性、跨平台的能力、国际化的能力以及它在该领域中的应用。
unix shell
首先要选择的是Unix / Linux shell提(包括awk,sed),这也是一种脚本语言,可以在日常使用中最常用的。我个人觉得,壳更适合于面向过程的系统管理。对于更复杂的应用级产品,外壳的开发和维护是相当困难的。个人感觉,壳牌的学习难度大于最主流的脚本语言,这是它的语法特征相关,调试和运行的环境。因此,壳仍然是系统日常管理过程中的一个很好的工具。此外,我们相信还有更好的选择。
Python / Jython
Python的一个最大的魅力是简单易学,初学者可以在短期内(有的说十分钟,我想几天是可能的)是生产高质量的实用程序,它甚至被称为非计算机专业人员学习编程的最佳选择。Python标准库的强大,丰富,即使java估计。Python适合系统管理,但这并不意味着它不能做大型的应用程序。Python应用的成功案例数不胜数,尤其是在科学计算领域,Python是一种面向对象的语言优秀,但更喜欢过程的Python面向Python程序员。我个人觉得,Python的面向对象是没有汝为好因为,这还不够,但Python支持者更喜欢它。
不幸的是,Python并没有在企业应用领域取得突破。近年来,它一直被新兴的Rails(露比的Web框架)所遗忘,但这并不意味着Python在企业应用程序中还不成熟。(蚕豆网是最近的Python案例)。如果你有兴趣,你可以知道在Python社区Djan最流行的Web框架,你也可以看到简单的和令人难以置信的webpy Python Web框架,已成为六大开发语言在短短的几年内,绝对不。
Jython是Python的java实现,这是官方的管理语言通过IBM的WebSphere服务器指定的。我选择了Jython价值JDBC访问数据库的便利。但不幸的是,Jython的支持中文很差。也许,Python本身的复杂度是比较高的,和Jython团队活动也低。总之,Jython有很长的路要走。至少,我认为目前的版本没有能力投资于生产和发展。
红宝石/ JRuby
红宝石是一种脚本语言到明亮的年轻一代的成功,它从杀手Rails框架Rails社区受益,喊出了早期摆脱java的口号,虽然这个口号没有什么实际意义,但轨道已经成为最流行的企业应用框架。我花了几个月的时间学习Rails,虽然有没有实践经验,但Rails敏捷开发,突出的表现是明显的,这是它能迅速走红的主要原因。
扔掉Rails框架,或红宝石,红宝石的语言是纯粹的面向对象,语法是著名的魔法(它可以吸收大量的脚本语言如Perl,Python,等优良的元素),所以其学习曲线高于Python,但也许在学习写的非常优雅的代码。唯一的缺点是,红宝石还年轻,标准库还不够丰富,与成熟的第三方库相对较少,但是这种情况会逐渐随时间的变化。
Ruby完全能够满足系统管理的需求,当然,如果开发了Web程序,Rails就更是一种选择。
JRuby是红宝石的java实现,也是最早的java平台的脚本语言,由官方接到孙(后来Jython)。JRuby的露比的相容性很高,团队非常活跃。如果你想使用的脚本语言,在java平台,我推荐JRuby的另外的java本地Groovy,这是我的选择。
Perl
说到Perl,很多人会想到CGI。我可能会考虑更多关于文本处理的问题。事实上,Perl设计的主要目的是从文本中提取信息。Perl,像Python一样,是目前最古老和最成熟的脚本语言之一。它拥有大量的用户群和忠实的粉丝。因此,当我说Perl的坏话时,我会更加内疚。
坦白地说,我不太喜欢Perl。可能像大多数不喜欢Perl的人一样,Perl语法并不能让人习惯它。有人说Perl的语法是丑陋的,这可能是夸张的,但它能说明一些问题。Perl社区也应该承认至少有一点:Perl是一种更难的语言,这并不是说你不能在短期内掌握Perl,但你不能写的东西短期真的不错。此外,Perl是不是一个对象-面向过程的语言,很多人不重视这个,但这并不是一件好事。
Perl适合于系统管理,我认为它与shell非常相似,在其他应用程序中,特别是在Internet中,
Perl有很好的性能。Perl很好,或者那句话,语言不好也不坏,只是适当不当。
Groovy
如果你挣扎在爱的java平台和java语法,很可能是最好的选择。Groovy可以说是java平台的原生的脚本语言,结合java,它本身并没有提供一个标准库,使用java的API库,成功后的轨道,Groovy社区还开发了Grails框架的平衡轨道。Groovy本身也吸收了大量的红宝石经典语法,人爱java,可以选择常规。
脚本语言的缺点和未来
一般认为脚本语言的主要缺陷是性能。当然,这可能取决于许多因素。问题是有多少例性能问题都是致命的。从EJB的崩溃,春到java的挑战上升,钢轨的成功表明,在面对不同规模的应用都是非常合理的。我相信我们真的可以为我们的技术,具有良好的应用前景。脚本语言将是无限的明天。