`
nathan09
  • 浏览: 144630 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

人人都是程序员—自动编程软件在德国浮出水面

 
阅读更多
CT公司对外公布最新研发成果
   来自美国芝加哥的消息,一家名为CT(Care Technologies)的软件公司向外界公布了其最新的研发成果——一款声称可以把应用软件开发速度提高四十七倍并可在某种程度上代替程序员的自动编程软件。据了解,这款软件被命名为OlivaNova。
   为了证实这款软件的功能,Care Technologies公司(以下简称CT)还特地邀请了很多对此感兴趣的公司去其位于德国慕尼黑的一个工作室做了为期两天的访问。在该工作室,参观者 们亲自试用了一些由OlivaNova“编”出来的软件,有一个商店管理系统、一个效用管理软件和一个高尔夫俱乐部管理系统。但由于时间的限制,他们并没 能对这些软件的性能进行具体的评估。
   看到这则新闻,相信所有的程序员包括比尔·盖茨都会惊出一身冷汗。因为人人都可以用OlivaNova自动编制出需要的软件,人人都是程序员,盖茨们就要 丢掉手中的金饭碗,怎能不急呢?但在打倒比尔之前,还是有必要了解一下这个所谓的自动编程到底是个什么东西?是不是真的如此神奇?
   自动编程初露端倪
   我们都知道,在各种集成开发环境中,向导(Wizard)可以帮助人们建立多种典型的应用程序。不过这还不能称作自动编程,因为通过向导等建立的程序必须在人工修改后才可正常使用,向导过程中也需要给出各种参数,毫无智能可言。
   因此各种组织和公司都致力于在自动编程方面取得进展,如对象管理组织(OMG)在UML 2级的基础上①提出了MDA(Module Driven Architechture)的概念,目标就是要实现从UML企业化模型到最终代码的自动化生成。这类典型的软件包括IBM Rational Rose以及一系列Rational软件。
   而上面提到的OlivaNova软件,它并没有采用UML的MDA能力,而是使用了自己编写的模型执行系统。使用OlivaNova软件进行自动编程时, 需要先使用OASIS模型语言建立软件架构,然后OlivaNova会启动内置的转换引擎选择合适的程序开发语言输出程序。其整体思路与MDA并无多大差 异,但应用却要广泛许多。
   目前OlivaNova支持的开发平台有Windows和几乎所有的Unix/Linux,并可自动生成VB 6.0、JAVA/EJB、JSP、Cold Fusion、。NET程序代码,以用来开发Web、客户端/服务器、Web Serivce、Windows Service等程序。
   OlivaNova扩展了自动编程应用的领域,可谓领先于IBM等大公司,着实火了一把,但这种自动编程真的能够让人人都编制出自己需要的程序吗?我们先来看看编程语言的发展历史——
   程序设计语言发展史
   当计算机在上世纪四十年代刚刚问世的时候,编程可谓是痛苦的工作。当时的计算机,并没有键盘等输入设备,人们只能使用笨重的继电器、开关去操作庞大的“巨 型机”。所有的程序都使用机器语言以二进制形式(全都是0、1的组合)书写,再用专门的像老式打字机一样的穿孔机把源程序敲到到一条长长的黑纸带上。然后 操作员拿着长长的纸带进入酷似外科手术室的机房,进行期待已久的计算。若是程序出现错误,还需要重新打孔。
   1949年,汇编语言被提出,它大大提高了编程的效率,但仍不够直观简便。1953年12月,IBM公司程序工程师J. Backus开始设计一种用于科学计算的“公式翻译语言”(FORmula TRANslator)。他的小组于1954年完成了第一个程序设计高级语言——FORTRAN。自此以后,各种高级程序设计语言如雨后春笋般涌现出来, COBOL、ALGOL、BASIC、PASCAL、C/C++……令人眼花缭乱。
   近年来,随着面向对象程序设计和网络技术的兴起,一批新的程序设计语言开始流行,如Sun的Java、微软的C#语言和。Net平台、网页编程流行的PHP、ASP、通用的XML等等。
   但再怎么说程序开发语言也只是让人们越来越易读懂程序,在软件日益庞大的今天,动辄几万行的源码全靠手工编写,非把人累趴下,因此各种各样的开发工具就成为编程的必需品——
   开发工具助力程序设计
   开始,人们使用编译器或解释器内置的查错功能自动检查程序源码中的错误,在代码不多的情况下,也足够程序员使用。而随着代码的增多,单纯在编译时检查错误 远远不能满足需要,因此诞生了一些具有语法高亮显示、规范代码功能的编辑器,它们都能够在书写代码时有所提示,将错误扼杀于萌芽状态。这方面著名的有 Emacs、vi,还有UltraEdit、EmEditor等,目前还被广泛使用。
   上述编译器以及编辑器都没能解决代码基本靠手写的问题,因此集成、可视化的开发环境被提上日程。集成开发环境减少了开发程序所付出的时间、金钱以及脑细 胞,只要轻敲几个键,一整段代码就可以使用了。在这方面,典型的如Macromedia的Dreamweaver和Microsoft的Visual Studio .Net。
   Dreamweaver可以根据用户的排版方式自动生成HTML代码,最新的Dreamweaver MX2004更是将主流网页服务器脚本和数据库开发结合在一起,这样普通人也可通过它设计出个性的站点。Visual Studio .Net则更为强大,其拥有的众多特性,如注解报告、命令窗口、部署工具、文档导航等,使程序员开发和维护一个项目更加容易。
   各种编程工具虽然极大地解放了程序员的双手,但重要的代码组合还是需要手工完成。人们梦想着有一天能够不再挥动双手而自由翱翔在程序的海洋里,而这一梦想也正在逐步变为现实——
   自动编码初级阶段
   不管是OlivaNova还是IBM的Rational,在生成代码之前都需要用特定的语言建立一个软件模型。因此,与其说它们是自动编程工具,还不如说是辅助程序员开发的快速编码工具,并且仅仅处于“自动编码”的初级阶段。
   为什么这样说呢?这是由于用此类自动编码软件所生成的代码很大程度上只是一些原型,往往可控性较差,真正有用、实用的东西还是需要人工实现。CT宣称OlivaNova所写出来的代码的错误只有手工编程的7%,虽然很少,但还是会有错误。
   既然这样,我们使用OlivaNova打倒比尔的梦想是不能实现了。但从中可以看到,未来单纯的编码工作将逐渐消失,对软件工程的掌握会成为程序员这一行当的必需,否则真有丢掉饭碗的危险。
   (上海拿破盾)(jy23y01)
   编者按:作为普通人的我们也不必灰心,因为人们对自动编程的研究是无止境的,当人工智能取得长足发展,各种软件模型能够直接由具有人工智能的计算机建立之 时,自动编程就真正实现了。那时的我们,只需告诉计算机软件要实现的功能,就能够自动生成相应的代码,比尔·盖茨们再也不能从我们手中掠走分毫血汗 钱?.....
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics