信息化 频道

"玩转"编程语言

    IT168 资讯】工欲善其事,必先利其器。程序员要想写出鬼斧神工的程序,各种程序语言、编程工具以及企业给程序员提供的开发平台,是必不可少的利器。
 
    Internet的快速发展,B/S结构的流行,使得越来越多应用程序看起来像在网络上运行。这得益于脚本语言的长足发展和对Internet环境良好的适应。而脚本语言能够百花齐放、茁壮成长,系统程序设计语言功不可没,后者多年发展积累下来的丰富的函数和组件资源,为脚本语言的发展提供了肥沃的土壤和广阔的空间。也正是这两种编程语言相辅相成,才有了今天到处巧夺天工的虚拟世界。
 
    开发工具的进步和开发环境的优化,使得程序开发者的队伍从软件厂商和科研单位的专业开发人员这个范围扩展开来,吸纳进了那些参与到企业应用程序的开发的企业IT技术人员,甚至是一些为了开发更个性化程序的编程发烧友。而就如同人人传播信息的"大众传播"时代已经展现在人们眼前一样,一个"大众编程"时代,正伴随着程序开发环境日益人性化的步伐阔步而来。
 
    这种变化与脚本语言的发展的确是密不可分。首先,从功能上讲,一个脚本可以使得本来要用键盘进行的相互式操作自动化,而主要用来书写这种脚本的语言被称为脚本语言。也就是说,脚本语言是假设已经存在了一系列由其他语言写成的有用的组件,而它的作用是要把组件接在一起。PHP、Perl、Python、Visual Basic和Ruby等都是当今比较流行的脚本语言。
 
    而与脚本语言相对应的系统程序设计语言,恰恰为脚本语言提供了大量所需的组件。二十世纪五十年代后期,从Lisp、Fortran、Algol等高层语言,到一系列由Algol发展而来的系统程序设计语言,包括Pascal,C,C++和Java等,都是系统程序设计语言的典型代表。
 
   编程 众"言"纷纭
 
    编程语言的种类繁多,但现在很多年轻的程序员,也是目前程序员队伍中的生力军,都是从使用C语言开始的。C语言的发展颇为有趣,它的原型是Alogd 60语言。1963年,剑桥大学将Alogd 60语言发展成为CPL(Combined Programming Language)语言。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字"B语言"。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。而在1973年,B语言也给人"煮"了一下,美国贝尔实验室的D·M·RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。而C++来自于C语言,1979年,Bjarne Stroustrup在BELL实验室发明了它,但C++绝不是C的简单升级或扩充。
 
    CC++所起到的作用和发挥的影响力是巨大的,甚至连目前Internet上最为常用,最为成熟的Java语言也是由C++演化而来。Java是一种可以编写跨平台应用软件的面向对象的程序设计语言,由Sun Microsystems公司的James Gosling等人于上世纪九十年代初开发。说起来,它的诞生还得益于家用电器的芯片。最初被命名为Oak的Java,被作为一种小家用电器的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近夭折之时,随着Internet的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以"Java"的名称正式将其发布了。Java伴随着Internet的迅猛发展而发展,逐渐成为重要的Internet编程语言。
 
    开始时,Java的开发者想用C++语言来开发电器的芯片,但是,由于芯片的种类各不相同,程序要进行多次编译。尤其是C++中的指针操作,一旦操作不慎,就会引起问题。为此,它的开发者将C++语言进行简化,去掉指针操作,去掉运算符重载等,去掉C++中的多重继承,得到了Java语言,将它变为一种解释执行的语言,在每个芯片上装上一个Java语言虚拟机器。
 
    目前,Java有3个版本,J2EE、J2SE和J2ME。J2EE使用Java进行企业开发的一套扩展标准,必须基于J2SE,并提供一个基于组件设计、开发、集合、展开企业应用的途径。
 
    J2EE Java 2 Enterprise Edition,Java 2企业版)平台提供了多层、分布式的应用模型,重新利用组件的能力,统一安全的模式以及灵活的处理控制能力。J2EE包括EJB, JTA, JDBC, JCA, JMX, JNDI, JMS, JavaMail, Servlet, JSP等规范。
 
    J2SEJava 2 Standard Edition,Java 2标准版),用来开发Java程序的基础,包括编译器、小工具、运行环境,Sun发布的标准版本中还包括核心类库的所有源代码。
J2ME(Java 2 Enterprise Edition,Java 2企业版),是针对移动电话和PDA这样的小型设备的Java语言。
 
    Java的超出人们想象之外的巨大发展,使得目前基于Java的开发、部署环境也很多。用的最多的开发环境(IDE)开发工具有Eclipse、Jbuilder、NetBeans等。
 
    Eclipse只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT),还包括插件开发环境(Plug-in Development Environment,PDE)。
 
    基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。
 
    JBuilder是一种Borland软件公司出品的Java集成编程环境,有不同功能程度的多个版本。甲骨文公司(Oracle)内部用的软件JDeveloper就是JBuilder补充改写的。
 
    NetBeans是一套完全以Java撰写而成、并且开放源代码的开发工具。就算NetBeans官方网站不提供某个操作系统的NetBeans安装程序,只要在操作系统中有Java 2 SDK,就能够执行NetBeans。
 
    此外一般的应用服务器提供商也提供相应的开发工具,如BEA公司的Workshop,Oracle公司的Jdeveloper,IBM的WebSphere Studio。
 
    C/C++Java,都属于系统程序设计语言,他们在语言发展史上的资格很老。但脚本语言也并不是什么新生事物,脚本语言和系统程序设计语言从二十世纪六十年代开始就作为互相补充的两种语言类型,被大多数主要的计算机平台所支持,只是近些年来随着互联网的发展,他们变得更加普及,成为了编程语言里的生力军。例如,现在很流行的一种脚本语言Python就是在九十年代由 Guido van Rossum 所发明的。起初,Guido 原本只是 Amoeba 分散式处理作业系统计画中的一个成员,在寻找一个较为合适的语言来从事这个计划的过程中,他产生了设计 Python 这一套程式语言的念头。他早期设计上的构想,受到了 Modula 程式语言系列的影响,同时也参考了 ABC、Icon 或 Smalltalk 这类面向对象的语言,在技术层面上确实融合了多方优点,加上其发展的过程,允许任何有兴趣参与的爱好者从 FTP 站自由取得源代码,或直接在新闻群组上参加讨论,因此Python 的改版相当积极。
 
    Python 的发展,可以分成几个重要的阶段。
   
    CNRI 时期:CNRI 即Corporation for National Research Initiatives,是资助Python初期发展的重要单位,Python 1.5 版之前的成果大部份都在此时期内完成。
 
    BeOpen 时期:Python创始人Guido van Rossum 与 BeOpen 公司合作,在此期间,推出了Python 2.0版本,虽然Python 1.6 也同时问世,但原则上已经分别维护了。
 
    DC 时期:Guido 离开 BeOpen 公司,将开发团队带到Digital Creations (DC) 公司,该公司以发展 Zope 系统闻名,因此这项合作也受到了注目。
 
   脚本登上大雅堂
 
    当我们把这些脚本的和非脚本的语言罗列在一起,我们会有些诧异地发现,昔日,这些被程序员们视为玩具的脚本语言,今天已经登上"大雅之堂",赫然成为企业程序设计的”一等公民“。也因此,有人把一些非脚本语言称为"中级语言"而不再是高级语言,那些充分利用了系统程序设计语言所编写的组件的脚本语言戴上了"高级语言"的桂冠。但即便不从这个感性的角度考虑,由于所谓高级语言还是低级语言是根据它贴近硬件,对硬件操作效率的高低来划分的,这些站在更高层面上调度组件,离汇编语言更远的脚本语言戴上这顶桂冠也是完全有资格的。
 
    面对这些"新贵"程序语言,一些软件领域的大厂商或者是看到了网络时代软件市场新的利润增长点的公司怎能不心动?他们总会想方设法在新的有潜质的领域内挖出金来,而笼络昔日的业界明星加盟,似乎是最近一段时间内大厂商非常热衷的一种方法。就在2005年12月,据一位Google的员工透露,前面提到的著名脚本语言Python的作者Guido van Rossum 已经开始在 Google 工作,Google又多了一位明星雇员。不论Guido在Google从事什么具体工作,也不管这会对Python产生什么影响,至少人们通过这件事能够从一个很独特的角度看到互联网时代软件发展的趋势。
 
    这个趋势,就是Internet上的程序语言向更加简便易用的方向发展。这个趋势,不仅仅对于编程者本身来说是有利的,同时对于一些想要通过自己技术人员来搭建应用系统的企业,也是一个福音,因为它毕竟能够让参与自主编程的门槛与成本都大大降低。有人说,现在编写软件几乎成了谁都可以做的事情,技术含量大大降低。但这不正是人们推进技术进步的目的所在吗?
 
    说到这儿,就不能不提到最近很火的Ruby语言。似乎不少程序语言的设计者都有喜欢用美好的事物为自己的语言命名,与Perl(珍珠)比有过之而无不及,Ruby的意思是红宝石。这种旨在实现更简单快捷面向对象程序设计而创的脚本语言,由日本人Yukihiro Matsumoto开发,遵守GPL协议 Ruby License。Ruby的作者认为,Ruby是一个语法完全面向对象、脚本执行、有强大的文字处理功能的程序语言。而Ruby on Rails 是一个相对较新的 Web 应用程序框架,构建在 Ruby 语言之上。它被宣传为现有企业框架的一个替代,而它的目标,简而言之,就是让生活,至少是 Web 开发方面的生活,变得更轻松。
 
    这个Ruby语言的确是风头正劲,在这股趋势中起到了带头的作用,世界著名的计算机图书的出版公司O'Reilly & Associates的CEO和奠基人Tim O'Reilly 认为,技术书籍的销量是技术流行趋势的指示剂:在过去的12个月 Java 书籍的销量下滑了4%,C# 增长了16%,Python 增长了20%,而Ruby…… 增长了1552%!(你没看错,这里是没有小数点)
 
    O'Reilly Network 近日还采访了四个出色的Java开发者,让他们谈谈自己眼中 Ruby 和其开发平台Rails。其中,Artima 当家人Bill Venners 则认为 "Rails的出现只是给了人们一种新的选择,开发者应该学习一系列的语言,应该懂得在合适的时候选择合适的工具来解决问题……"而Beyond Java 作者Bruce Tate 认为,"Ruby是个不错语言,Rails的出现使得Ruby开始疯狂的繁衍,正如当初Netscape及Internet 的兴起成为了Java的催化剂……"。
 
    Ruby的兴起,更清楚地从一个侧面显示了脚本语言的易用性已经把今天的软件开发带向了一个新的方向,推动了一股新的潮流。而融入到这股潮流之中的,自然也包括了那些原本就希望编程环境更人性更简单的企业内部IT人员。
 
    对他们来说,脚本语言显得简单多了,即使没有受过专业训练也能够轻易地"玩转"它。当越来越多的企业,特别是中小企业对软件定制开发提出要求的时候,短小精悍的脚本语言得宠的趋势有些势不可挡。
 
来源:《信息系统工程》
0
相关文章