`
nathan09
  • 浏览: 155478 次
  • 性别: 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)
   编者按:作为普通人的我们也不必灰心,因为人们对自动编程的研究是无止境的,当人工智能取得长足发展,各种软件模型能够直接由具有人工智能的计算机建立之 时,自动编程就真正实现了。那时的我们,只需告诉计算机软件要实现的功能,就能够自动生成相应的代码,比尔·盖茨们再也不能从我们手中掠走分毫血汗 钱?.....
分享到:
评论

相关推荐

    程序员编程艺术系列之程序员编程艺术

    《程序员编程艺术系列之程序员编程艺术》是一本...通过阅读《程序员编程艺术系列之程序员编程艺术》,程序员可以系统地提升自己的编程技能,了解并实践编程中的艺术性,从而在实际工作中编写出更高效、更具美感的代码。

    程序员专用 编程输入法

    2. **智能提示**:当用户输入部分代码时,输入法会根据上下文提供相关的代码补全建议,类似于IDE中的自动完成功能,帮助程序员更快地编写出正确的代码。 3. **特殊字符支持**:编程中常常需要输入一些特殊字符,如...

    程序员编程艺术pdf可编辑

    程序员编程艺术pdf可编辑,教你如何将编程作为一门艺术

    程序员C++提高编程PDF.pdf

    在C++编程语言中,模板是一种强大的特性,它允许程序员编写与数据类型无关的代码,从而达到代码复用的目的。模板可以应用于函数和类,分别称为函数模板和类模板。在黑马程序员的《程序员C++提高编程PDF》讲义中,...

    发那科机器人程序员操作编程培训教材.pdf

    发那科机器人程序员操作编程培训教材

    程序员 编程之道 中英双文

    《编程之道》是一本专为程序员打造的书籍,它深入探讨了编程世界中的哲学与实践,旨在提升程序员的技能和理解。这本书不仅涵盖了技术层面的知识,更包含了如何成为一名优秀的程序员所必需的生活态度和思维方式。书中...

    C语言高级程序员编程指南.pdf

    5. 并发编程:由于C语言在系统级编程上的优势,高级程序员编程指南应该包括对线程同步机制的讲解,如互斥锁、信号量、条件变量等。 6. 性能优化:程序性能是高级程序员必须关心的问题,书中可能包含性能分析、算法...

    程序员编程最需要的计算机词典

    这款词典软件不仅提供了方便的查询功能,还涵盖了各种编程语言、数据结构、算法、操作系统、网络、数据库等领域的核心知识,帮助程序员快速理解和解决在开发过程中遇到的问题。 一、编程语言 词典中包含了常见的...

    程序员编程艺术第一~三十七章集锦.pdf

    程序员编程艺术第一~三十七章集锦.pdf

    程序员编程帮助大全

    【标题】"程序员编程帮助大全"是一份专为程序员设计的综合资源集合,旨在提供全面的编程指导和支持。这份资源包可能包含了各种编程工具、文档、教程和其他实用工具,是程序员日常工作中不可或缺的参考资料。 【描述...

    程序员编程艺术第一 ~二十七章(教你如何编程)高清完整PDF版

    通过学习这份文档,程序员不仅可以提升编程技术,还能培养良好的编程习惯,理解软件开发的全貌,从而在实际工作中更高效、更专业地解决问题。对于初学者,这是一个系统学习编程的好资源;对于有经验的开发者,它也...

    黑马程序员,C++核心编程

    黑马程序员,C++核心编程

    软件水平考试测试系统_程序员

    软件水平考试测试系统是针对程序员进行的一项专业能力评估,它主要涵盖了计算机科学和技术的基础知识,以及编程语言、数据结构、算法、操作系统、网络、数据库等多个方面的内容。这个测试系统旨在检验程序员在实际...

    程序员高级程序员 程序设计辅助理解软件

    在IT行业中,程序员的成长路径通常会经历从初学者到高级程序员的阶段,而软件设计师则是一个更为专业和高级的角色。这个“程序员高级程序员程序设计辅助理解软件”压缩包文件,显然是为那些寻求晋升或者增强自身技能...

    C/C++程序员java编程

    《C/C++程序员Java编程》是一本专门为已经熟悉C或C++语言的程序员设计的书籍,旨在帮助他们平滑过渡到Java编程环境。这本书详细介绍了Java语言的特点、语法以及与C/C++的不同之处,旨在让程序员能够快速掌握Java的...

    C++ 程序员 经典 编程经验 经典书

    在IT行业中,C++语言作为一门强大的系统级编程语言,被广泛应用于软件开发、游戏引擎、操作系统、嵌入式系统等多个领域。对于C++程序员来说,掌握经典编程经验和技巧是提高编程水平的关键。这本书名为“C++程序员...

    杀死Python?ChatGPT插件系统正式开放,不用写代码,人人都是程序员

    杀死Python?ChatGPT插件系统正式开放,不用写代码,人人都是程序员

    程序员编程艺术

    程序员编程艺术第一~二十七章集锦与总结(教你如何编程)(by_July)定稿版.rtf

    软考资料(软件程序员,软件设计师)

    【标题】:“软考资料(软件程序员,软件设计师)”是指针对全国计算机技术与软件专业技术资格(水平)考试中的“软件程序员”和“软件设计师”两个级别的考试所准备的学习资源。这类考试旨在评估和认证参与者的...

    C++编程惯用法.高级程序员常用方法和技巧.pdf

    这些都是高级程序员在日常工作中不可避免会遇到的问题,书中可能提供了一些建议和方法来处理这些常见的挑战。 对于那些希望向财富500强公司提供软件解决方案的公司,书中也许提供了一些指导,帮助他们达到企业级...

Global site tag (gtag.js) - Google Analytics