博科资讯软件系统总架构师解读Yigo“零代码”的银弹效应
来源:中国电子政务网 更新时间:2011-07-28

银弹在现实生活中是指能够解决棘手项目或者一件不可能的事情的方法或者技术手段。Yigo语言的“零代码”似乎让世人在信息化的无休止二次开发中抬起头来,从怀疑到认可,从认可到忠诚,从忠诚到喜悦的一系列感情变化。有人对“无码开发”持怀疑态度,有人持批判态度,有人将信将疑,又有人在了解之后成为Yigo的忠实粉丝。博科资讯系统总架构师蒋正华对此技术进行了解读。

处死IT难题“人狼”

IBM大型电脑之父佛瑞德•布鲁克斯(Fred Brooks)在1986年撰写了著名的论文《没有银弹》,文中指出,“没有任何一种单纯的技术或管理上的进展,能够独立地承诺十年内使生产率、可靠性或简洁性获得数量级上的进步”。对软件项目而言,“常常看似简单明了的东西,却有可能变成一个落后进度、超出预算、存在大量缺陷的怪物”。

这个怪物被形容为人狼——它可以完全出乎意料地从熟悉的面孔变成可怕的怪物,而且刀枪不入,唯有银弹可以将其杀死。

但银弹在何处?软件世界遭遇的却更多是由二次开发带来的不确定性、风险以及失败的惨痛教训,可以说,软件二次开发已经成为企业和软件厂商的大敌。据业内人士分析,为了应对客户提出的越来越多的二次开发的请求,国内软件厂商不得不进行相关人才的规模扩张,一方面甘于只做代码编写任务的基础性人才日渐减少,另一方面,人员的膨胀又带来了成本剧增与利润下降,越来越呈尾大不掉之势。

要摆脱二次开发的代码陷阱,以“零代码”为典型特征的无码开发技术被视为立竿见影的途径,但在该领域成功者寥寥。实际上,当博科资讯宣布YiGo语言可以实现“零代码”开发的时候,也同样伴随着非常多的质疑,不少人不相信该难题会被一家中国软件企业完全解决。

从怀疑到叹服

“用户在初次接触到Yigo语言的时候,头摇的像拨浪鼓,无码开发不可能实现,但是,当我们的技术人员当众通过Yigo语言的拖拽而形成一个业务流程的时候,客户便说:‘你们的确做到了’。”博科资讯系统总架构师蒋正华说。

众所周知,一个颠覆传统思维方式的产品的诞生,势必在引起业界普遍关注的同时也引起大家的怀疑,国际软件巨头都没有攻克的技术居然被国内软件厂商得以实现,怀疑,惊叹,业内一片哗然。

蒋正华是在2000年进入博科资讯的研发团队,此时,公司早就开始了一些构件化平台的摸索,并在2003年形成清晰的战略方向——发展Yigo语言,不写代码来开发软件。这是一场漫长而艰难的探索之旅,博科资讯几乎将由其他产品线带来的丰厚利润,大部投入了这个短期内无法带来一分钱的创新项目当中。

“我自2000年进入博科公司,2003年开始了Yigo语言的研发工作,借助原有的构建化平台研发基础,团队在沈总的支持下开始了这个在当时被认为是不可能的软件开发语言的研发,2005年,MyERP研发成功,以灵活自主配置为亮点迅速使博科资讯从专注于物流行业的专业化软件给公司向全面应用转型,小松中国、三一重机、元盛食品等优秀客户就是在那个阶段获得的。”蒋正华从Yigo语言的诞生说起,感慨颇多。“当初研发Yigo语言,初衷便是消除软件系统开发的技术门槛,实现系统开发的‘傻瓜!傻瓜!再傻瓜!’”

Yigo本质--面向管理业务的DSL(领域特定语言)

“借助Yigo语言实现‘零代码’已经是一个不争的事实,我们已通过上百个项目验证了这一点。”蒋正华表示,Yigo语言是面向管理业务的DSLDomain-Specific Language,领域特定语言),使用该语言可以实现基于标准化的管理业务描述定义,用于开发具有丰富业务模型的企业管理应用,并且这些应用系统可以集成在统一的平台上,“Yigo语言可以说是DSL的最典型代表,走在全球技术前端,完全可以说是独一无二的”。

在很多慕名而来的客户真正面对Yigo语言的时候,他们发现自己不需要构造数据库结构,不需要考虑界面和数据库的交互,只需在功能强大的工作流业务流程设计器中,通过鼠标拖拽即可自动生成管理业务应用系统。

蒋正华说:“通过使用Yigo语言,企业客户可以可是省去至少90%以上的二次开发工作量。”更重要的意义在于,Yigo语言是面向业务人员的解析型性语言,操作简单,培训方便,IT人员只需要2~3天即可学会,而业务人员3~4周便能实现系统的自主开发。

Yigo作为一种解析语言,势必要比可直接编译的高级语言在运行效率上有一定的影响,然而经过优化,在技术上可以确保其运行效率不低于后者。更重要的是,YiGo语言基于跨平台技术的管理业务语言解析和程序运行环境,可动态完成将管理业务描述语言转换为运行代码的过程,按照定义完成界面显示、数据加载、转换、校验、保存等过程。对于用户来说,节省了应用“实现”过程的技术要求,其“图表化”、“零代码化”的编程方式,使得用户“所得即所需”,从而实现了其功能上的高效性。

Yigo语言目前未能涉及的领域

但是,被业界看重的Yigo语言也绝非万能,没有也不可能实现全领域的系统无码开发,据蒋正华介绍,目前Yigo语言在两个方面是没有实现零代码的:第一点,便是软件接口。以博科资讯客户西郊国际为例,在西郊国际收费系统中,有车辆称重这个环节,需要将地磅系统通过软件接入博科资讯ERP系统中,而这样的非标准的接口便需要代码来实现。

第二个方面,复杂优化。蒋总介绍说:“博科资讯另一个由于同行的技术便是人性化的优化算法技术,公司优化应用部门由在优化算法应用领域颇有实力的归博士组成,其研发的物流线路优化系统、调度系统、生产排程等复杂优化应用在用户中取得了良好的口碑,但是,Yigo语言对此类系统的开发就无能为力了,需要代码实现。”

对于Yigo语言的“银弹效应”说法,普遍存在一个有趣的现象:没有看过Yigo开发的人听到无码开发都条件反射似地认为是“无聊的炒作”,但是,看过之后,却是条件反射似地吃惊。