出处:IT专家网
一些新兴的脚本语言,如开源,在软件开发者中日益普及。这些充满活力的编程语言应该在企业软件开发中获得更多关注,即使您致力于Java或.NET的开发。
Lynn Greiner的文章《脚本世界现状》遭到痛批。一些人对文章明显的疏漏表示出了不满,因为文章只涵盖了PHP ,Perl,Python,Ruby,Tcl和JavaScript。Lynn只选择这些语言,因为那她是为三年前的一篇文章做的后续报道。此外,大多数IT经理即使没有亲自编写过代码,也都至少熟悉其中一种脚本语言。
然而,尽管我们已经深入了解上述五种语言,但是开发人员使用语言的却不仅限于这五种。由于每种编程语言都是适合于解决某个具体问题的工具,因此每个IT公司都能挑选一个最适合自己的语言。在本文中,我们会分享一些新兴的脚本语言,以提供些指导。
Scala
Scala对开发人员而言是别具吸引力的。按照其网站所说:“Scala...既是对象面向型又是实用型的。它混合了一些现代语言功能,同时与Java保持着密切的兼容性。”
Object Mentor的高级顾问Wampler说:“Scala是我见到的最好的一体适用的语言。Scala弥补了Java的不足,比方Java为对象面向型编程提供的支持冗繁而有限。此外,Scala支持功能性编程——在学术计算机科学界已存在很长一段时间的一种方法,但现在被证明用来编写强效并行软件非常有用。并行技术对在大型网站和企业扩展软件十分重要。”
Trampoline Systems开发人员David Ritchie Maclver认为,Scala的主要好处是能避开Java。他说:“就图书库的支持,性能和易于部署而言,我可以匹配Java。”许多Java工具也推到Scala。他认为,他的公司正为可视化软件的软件采用Scala,随着这一更新,将减少Java和Ruby的使用。
但是,Maclver并不推崇Scala的一切。他说:“为了发挥并行优势,人们会推动Scala的发展。但请不要受制于这种诱惑。因为它不能取代Java。”
Groovy
另一种语言就是Groovy,根据其网站所称,Groovy是为Java虚拟机(JVM)而设计的一种灵活而动态的语言。集Java之长,但受Python , Ruby和Smalltalk的启发,具备额外的功能和特点。
Groovy令人信服之处在哪里呢?首先提出这一问题的开源新闻平台批评家说:“我感到惊讶的是Groovy没有出现在任何地方。如果有一个动态语言能平衡企业的拥堵,那它就是Groovy。它能汇编进Java字节码,并直接利用庞大的Java库,却省去了繁琐的Java句法。几年的时间后,Python和Ruby被Groovy取代将不会使我感到惊讶。”
Groovy让Java开发的指令有效表达,同时又与Java代码保持相互兼容性。
Closure
您的公司可能会采用最新的硬件,但您的软件可以充分利用其多线程功能吗?您可能想看看Clojure,它是一个以虚拟机为目标的动态编程语言。其网站上解释说, Clojure被设计成一个通用语言,它是将高效和强劲的基础设施同脚本语言的可接近性和互动发展相结合的多线程编程。 Clojure是一种直接编辑JVM字节码的语言,却保存了完整的动态特点。每个由Clojure支持功能在运行时也获得支持。 Clojure提供对Java框架的轻松访问,通过可选类型提示和类型推断确保调用的Java可避免映射。
小?强大?Java?这三个能并存吗? Clojure是一种体积小,功能强大的语言,它在虚拟机上编辑并运行,因此不需要新的基础设施。此外,它也可以让您以更少的代码处理更多事情。这对发展进程和维护都是好事。特别有益于在缺乏像Java那样足够多的程序员开销时,利用多核硬件。
现在软件开发中最紧迫的问题在于如何更好地利用多核CPU ,以提高性能和降低能源成本。就方便与安全性而言,Clojure用于并行要比其他任何语言都要优越。它继承的Lisp极大地提高程序员的生产方式,随着时间的增长,它能实现简单的DSL创建以便商家验证程序的正确性。它能在模拟机上运行并能顺利与数百万行遗留的Java代码融合还仅是其表面现象。”
Lua
正式点说,Lua是一个强大,快速,轻量,可嵌入的脚本语言。Lua结合了简单的程序句法并具备强大的基于关联数组和可扩展的语义的数据描述。Lua是动态型的,它的运行通过为基于寄存器的虚拟机解释字节码来实现,通过增量垃圾收集自动管理内存,非常适合配置,撰写脚本,和快速原型。
通俗点说,这只是一个非常小的语言工具用它办事很快。
开发人员RalphHempel将Lua描述为“编程语言中最棒的小秘密”,他还说:“虽然它没有一个正式认可的库分配机制。但却有大量的标准库供文件系统访问,网络连接,数据库访问等等。对我来说,该系统最好的部分是坚如磐石的语言核心和考虑周密的升级和补丁。Lua的发布由从一开始就参与该语言的‘Three Amigos’控制。”Hempel已向LEGO Mindstorms NXT移植Lua。
Lua的优势在于它的快速敏捷式开发超过了传统的语言。它给你所需要的积木,您可以以任何方式建立你想要的任何东西。惊人的小和快是Lua特点。就技术层面而言,它是杰作。
F#
.NET开发社区并非没有一套脚本语言增强功能。其中最突出的是F#,它起先作为微软的编程语言研究,集安全,简洁,性能,表达和脚本于一身,能高品质运行,支持现代运行系统。现在微软把F#转变成.NET平台上的充分支援语言。
F#促进编程的功能性不可改变类型,而这适合并行和分布式程序的编写。此外,它支持编程的陈述风格。陈述风格可以让你区分为解决问题开发一些智能库的高级程序员和使用它来解决日常问题的初级程序员。
许多编程语言可以很容易地写一些小东西,再扩展成一个较大的应用程序,但当软件需要变成一个真正的有强大逻辑结构的库时,问题就来了。F#就可以让你做得很好,你可以从简单的(就像使用动态类型语言如Python或Ruby那样)开始,最终完成一个非常强大的程序(如同C #或Java )。F#的关键益处是做到过渡完全流利而无须经历任何痛苦的步骤。事实上,你不需要重写任何开始时的代码。
F#额外的好处是通过学习F#有助于你成为更好的C#程序员, ”F#有助于人们了解LINQ。如果你未来想平行运行什么东西,它可能是很好的准备。
Boo
Boo在其主页上宣布,它是“为CLI(通用语言基础设施)设计的,一个新的面向对象的静态类型的编程语言,具备Python-inspired句法并特别侧重于语言和编译器的可扩展性。”
这不是一种解释语言,因为它的编纂是为了CLI。由于它在.Net上运行,您拥有.Net的所有权力,只有它更灵活,而且您把它当作一个脚本或编好的程序。Boo也有足够的技术优势,如能在汇编过程中操纵编译器输出。
计算机语言是制作软件的一种工具,Boo作为一种计算机语言与其他工具(.Net 生态系统)一样表现出色,但Boo更具竞争力,因它给予开发者空前的力量开发自己的语言工具。大多数语言围绕一套固定的概念工作,Boo赋予开发者制作自己的语言概念的能力。此外,Boo句法也很奇妙,并配备了各种口译以加速发展。
该语言在轻量特定领域子语言和微型格式中取得优势。它也是微小的,自我控制和跨平台的,所以在Windows编写代码和在Linux或Mac OS X是一样的。它有一个内置的GUI库,能够发送电子邮件和访问内内置的网络资源。没有包含文件,只有两条简单的线。可执行程序也很小,在Java做同样的事情将有数以百计兆数据,在C将有以吨计的包含文件和许多代码。