开源企业级编程语言(EGL) FAQ
翻译:伍鑫,陈樟洪
英文原文地址:http://www-949.ibm.com/software/rational/cafe/docs/DOC-3472
什么是EGL?
EGL是为了简化现今日益复杂的业务程序和服务而创造的一种高级编程语言。EGL代码可以编译成COBOL,Java和JavaScript,这意味着它可以被部署到如此之多的异构环境中。EGL使程序员不必关注不同运行平台及相关中间件的具体细节,把他们从繁杂的底层编程细节中解脱出来。从而使程序员可以专注于业务逻辑,创造出更加优质的代码。EGL为所有希望减轻语言学习强度并快速交付高可用性高质量应用程序或服务的团队提供了理想的不二选择。
什么样的应用程序可以用EGL来构建?
EGL可以开发当今行业中所有业务所需求的不同种类应用程序。例如:银行营业员为客户查询账户信息的Web程序,货运司机用来查看货物运输计划和运输路径的移动应用程序,为合作伙伴提供企业级数据或者为Mashup应用提供底层支持的Web Service,呼叫中心和销售代表用来提交客户订单的Web应用程序。
这里我们提供两个具有代表性的EGL开发案例:一个欧洲国家采用EGL开发了代表Web应用最新领域的Web2.0程序来替代原有老旧易错的手工选民注册系统,为在国外生活的公民提供了更为便捷的投票服务。弗吉尼亚州的一个政府机构采用EGL快速开发了一个Web应用程序,使市民可以更加便捷的申请许可。
能否用EGL开发运行在服务器和网络浏览器上的程序?
EGL代码可以被编译并部署到服务器或者客户端(浏览器)环境中。
开发服务器端程序时,EGL代码可以被编译成Java或者COBOL并部署到多种运行环境中,包括J2EE Web服务器(例如Apache Tomcat和WebSphere应用服务器)和企业级系统比如IBM CICS,IMS或者IBM i等多种系统。EGL内嵌支持Web Service并支持Java SOAP,REST或CICS Web services等多种形式的服务。服务器端程序还可以集成数据库(例如IBM DB2,MySQL,Oracle和Microsoft SQL Server),MQ(例如WebSphere消息队列),文件以及已有程序和业务逻辑(包括Java,C,RPG,COBOL等)。
在客户端方面,EGL代码可以被编译成JavaScript/HTML并运行在所有主流网络浏览器中。EGL允许开发人员使用第三方部件库,比如Dojo工具包或者ExtJS,通过这些最新的开源技术来构建富客户端应用。EGL同时支持基于JSF的Web应用程序开发。
为什么创造EGL语言?
EGL的创造是由于我们察觉到运行时技术正在变化(比如运行时环境和中间件),但用户代码不应该有太多改变。EGL被设计成可以随着运行时环境的进化而进化。在过去的30年里,业务程序的构建过程并没有本质上的变化。每种应用程序都需要各自的方式去展现数据,定义函数,调用其他程序或服务,与文件和数据库交互或是与用户进行交互。而EGL通过更高层面的抽象使得它可以被编译成多种运行时语言,通过对任意新技术的良好兼容,用户写的EGL程序甚至可以被部署到目前并未出现的平台中去。目前,大多数编程思想还停留在用某种特定语言(比如JavaScript)为特定环境(浏览器)进行开发。而EGL打破了这种观念,不局限于任何一种运行环境而是提供一种更高层面的编程方式来适应所有的目标环境。
谁在用EGL?
EGL和它所继承的技术,被全球数以千计的用户使用。今天,大多数新客户使用EGL来开发基于JavaScript的Web应用程序。
从哪里能学习更多关于EGL语言的知识?
EGL语言指南 [http://publib.boulder.ibm.com/infocenter/rbdhelp/v7r5m0/topic/com.ibm.egl.doc/topics/egl_core_lr_intro.html]
EGL维基页面上的示例代码----[http://en.wikipedia.org/wiki/EGL_(programming_language)]
EGL语言快速指南----[http://www-949.ibm.com/software/rational/cafe/docs/DOC-3444]
IBM为何将EGL开源
以开源的形式开发EGL可以使EGL语言及其工具更快地发展,而这种成长是在IBM独自开发的模式下很难达到。EGL是唯一一种被设计成如此高可扩展的语言。将其开源会激励所有感兴趣的人为其增加新的功能,同时会使得所有使用这种新增技术的人获利。
特别是对于犹豫于是否尝试EGL的用户,将EGL技术开源还可以将EGL更好的展现在他们面前,增加对EGL的信心。
开源项目将在哪里被开发?
EGL开源项目将被放置在Eclipse.org开源社区,因为EGL开发工具是构建在Eclipse之上的并且因为EGL与众多Eclipse技术进行了集成(比如BIRT reporting,Web Tools和Data Tools)。
同时,我们已经将EGL Development Tools项目(EDT)作为新项目的名称发布在Eclipse.org上面。
EGL开源项目代码使用何种license?
所有贡献至EGL Development Tools项目的代码以及由EDT开发的项目将以Eclipse Public License作为其许可证。
为什么要在现在开源?
在过去的几年里,将EGL开源的计划已经被列入了日程。2009年,IBM为EGL提出了“免费-开源”的战略。这个战略的目的是提升EGL的认知和应用。第一阶段(免费)已经在2009年9月交付(EGL社区版)。现在我们开始了第二阶段(开源)的进程。我们坚信开源项目将会鼓励和吸引更多的开发者加入EGL大家庭。
哪些部分将进行开源?
EGL语言,编译器,Java生成器,JavaScript生成器以及相关工具将进行开源。这些组件已经存在于IBM Rational Business Developer中。这次贡献的开源项目与EGL社区版(IBM在2009年发布的免费工具)在功能上基本相同。用户可以使用贡献的开源EGL项目来开发,运行,调试由EGL生成的Java和JavaScript应用程序,生成动态Web项目并部署至Web应用服务器上。
本次贡献中的详细功能列表请参照Eclipse EGL Development Tools计划[http://www.eclipse.org/proposals/egl/]中的初始贡献一章。
IBM是否是唯一的EGL开源项目推动者?
不是。IBM将与其他众多支持者一起合作来推动EGL技术的成长与发展。项目将会把所有参与者一起列入名单。支持者有:ASIST(比利时),ClearBlade(美国),FBDA(加拿大),Nextel Engineering(西班牙),PKS(德国),Synchrony Systems(美国)和Xact(丹麦)。我们希望这个名单将随着时间推移更加壮大。
我是否可以从Eclipse下载EGL集成开发环境?
是的。我们计划提供一个独立的基于Eclipse的集成开发环境来进行EGL开发(好比为PHP开发人员设计的Eclipse集成开发环境)。同时我们还计划允许用户下载EGL工具并安装到已有的Eclipse环境中。
开发人员可以用EGL Development Tools项目做哪些事情?
开发人员可以用它来开发,运行,调试由EGL生成的Java和JavaScript应用程序并部署到动态Web项目中。这些功能在EGL社区版工具中也可以支持。这里是一个简单的Hello World视频。[http://www.youtube.com/watch?v=FxKTNgoT0cU]
哪些将不会开源,为什么?
这次初始代码贡献至Eclipse社区,我们选择了那些将会被Eclipse社区和开发社区广泛使用并且非常实用的功能部件。因此,我们选择将Java和JavaScript相关功能贡献出来,而不包括COBOL生成相关功能。COBOL部分同时还需要一个由汇编和COBOL编写的运行时部件。而EGL JSF由于需要一些其他不支持开源的IBM部件,所以未能开源。
EGL语言将如何发展
EGL语言本身(包括关键词和语法)将会在Eclipse EGL Development Tools项目中进行管理。我们将会向社区询问如何以最佳方式管理EGL语言发展的反馈信息。一个正式具体的社区驱动流程可能将会建立起来去支持语言本身的发展。
EGL技术的开源时间表是什么样的?
在2010年6月,IBM宣布了创建Eclipse社区中的EGL开源项目的意向。完善这个计划的过程将需要几个月。计划完善并获取Eclipse社区许可后,开源的EGL项目将会被创建。随后IBM将会把代码提交到项目中去。计划将于2010年底之前完成初始代码的贡献。
EGL在接下来的几年里将如何发展?
EGL的高可扩展性是设计的初衷。所以EGL的目标是可以将工作项目重新部署到新的运行平台中,而不需要对应用程序做任何基础结构或者实际代码的修改。为了支持这个目标,当下的EGL构架将会被改进并增强,从而可以更方便的开发新的生成器(用来生成其他目标语言)或者扩展现有的生成器(用来支持少量的生成变化或是生成到特定的平台或框架)。
详细信息请查看Eclipse EGL Development Tools计划[http://www.eclipse.org/proposals/egl/]的Description章节。
作为一个Rational Business Developer的客户, EGL开源项目将会对我有什么好处?
EGL开源化将会迸发出许多之前无法想象的创新点,并且会壮大EGL开源社区的开发者以及合作伙伴的数量。拥有更多相关方面的技术人员基数将会培养出更多相关方面的专家使得遇到问题可以获得更多的帮助。我们相信这会激励出EGL工具和创新的新市场,并且极大地帮助开发者更加快速的开发出高质量程序。
IBM拥有许多将其他语言迁移至EGL的解决方案。这些迁移代码可以在EGL开源工具中进行开发和编译么?
可以。IBM拥有将AG Natural,CA Ideal,CA Gen,RPG和COBOL项目迁移至EGL的多种解决方案。详情请查看Rational Migration Extension[http://www-01.ibm.com/software/rational/products/migration/]
为什么我还需要从IBM购买EGL工具?
IBM将继续销售EGL开发工具。我们的预期是这些工具将构建于开源EGL功能之上,增加开源项目没有的额外功能。比如,支持将EGL编译成COBOL并部署在IBM System z上面。IBM还将继续提供客户支持,帮助客户解决工具使用中的问题以及所开发应用在生产环境中遇到的问题。
客户将如何得到技术支持
对于拥有EGL工具相关IBM产品license的客户,客户支持问题将由IBM Support团队负责(和以前的流程相同)。支持将包括在开源项目中开发的部分(例如Rich UI Widget)。
对于使用EGL开源工具的用户,问题可以在相应的Eclipse论坛中提出,产品缺陷可以在Eclipse Bugzilla[https://bugs.eclipse.org/bugs/]中提出。
我怎样来提交产品缺陷或申请新功能?
当EGL Development Tools项目在Eclipse.org上被创建以后,缺陷和新需求可以通过Eclipse Bugzilla[https://bugs.eclipse.org/bugs/]来开出。Rational Business Developer的客户可以通过Rational Request for Enhancement(RFE)[http://www.ibm.com/developerworks/support/rational/rfe/]社区来提出新功能需求。RFE中开出的新功能需求可以是EGL中的任何部分,包括在开源项目中开发的部分。
怎样才能了解更多关于这个项目的信息?
在eclipse.org上查看项目计划[http://www.eclipse.org/proposals/egl/]。并可以在EGL Cafe[http://www-949.ibm.com/software/rational/cafe/community/egl?view=discussions]论坛或者Eclipse EGL项目论坛[http://www.eclipse.org/forums/eclipse.egl]中提出问题。
我已经等不及了,怎么能马上用EGL进行开发?
下载免费的基于Eclipse的EGL社区版开发工具.[http://www-949.ibm.com/software/rational/cafe/community/egl/ce] 并通过EGL社区版中的Hello World教学视频来快速入门。快来体验EGL开发的乐趣吧~