众所周知,编程语言是外国人的天下,我们一入行,就失去了选择的余地,你不得不跟着外国人的思维转。
笔者从事多年的开发工作,尝试了十几种外国的编程语言,每种编程语言都有自己的特性和固有的缺陷,对其固有缺陷,我们只能望洋兴叹,因为,这些编程语言的设计者和开发者无一例外全是外国人,这里,并没有我们的发言权。
这是一个靠标准取胜的时代,对于编程语言的控制,就是对于标准的控制,我希望能看到更多的中国人加入到这场角逐中来。
我们欣喜的看到,现在也有越来越多的中国人加入到了语言设计的行列中来,虽然他们设计的语言有这样那样的不足。但是,他们的出现,代表了一种尝试,也代表了一种希望。
世界是多样化的,我们需要更多的选择,编程语言也不例外。
下面是笔者工作多年接触到的一些国产编程语言,现分列如下,包括一些简单的介绍,这些介绍主要来自语言设计者自己的描述。笔者本人也加入了一些简单的评论,不代表语言的优劣,如有纰漏,文责自负。
当然,这里列出的还远远不够全面,这只是为了抛砖引玉,引起更多的人来关注,希望大家也一起来关注国产编程语言的发展、以至成熟。
让我们一起来见证这个时代的来临。
〓〓〓〓〓〓〓〓〓〓〓〓
〓 十种国产编程语言 〓
〓〓〓〓〓〓〓〓〓〓〓〓
八卦编程语言
csm语言
dao语言
易语言
Koodoo 语言
lava语言
鲁班语言
模拟精灵LAScript脚本语言
Nuva语言
太极语言
其他基于非原创语言多中文编程语言
〓〓〓〓〓〓
〓 简介 〓
〓〓〓〓〓〓
【八卦编程语言】
八卦编程语言是一种不依赖特定自然语言的通用的可视编程语言.
英文名称是Baguic,以GUI(图形用户界面)替换Basic中的 Symbolic Instruction.
八卦编程语言的目标就是以图形界面化的方法完成Basic语言的基本功能.
八卦编程语言是一种图标语言,用它编制程序的过程实际上是对图标的操作过程.
【csm语言】
csm是由我设计的一种强类型的基于对象的编译型脚本语言.你可以读作C,S,M,也可读作"辛姆"或"森姆",它的含义是指c sharp minus.
csm是一种脚本语言,所以它的功能比宿主语言弱,从它的名称可以看出,它的大部分语法与C#相同.它的语义与C++/java/c#这些语言都有相似的地方,它的设计目标是"简单而强大".
csm是强类型的,也就是说它有自己的类型,在编译时要进行相应的类型检查.
csm是基于对象的,不是面向对象的,面向对象有三个特征,封装、继承、多态,csm都不支持,csm只支持类与对象的概念,它所定义的类只有一个层次,没有父类或派生类.
作为脚本语言,csm必须存在于一个宿主环境中,它就是软件厂商开发后发布给用户的应用程序,就是说csm为所开发的应用程序提供脚本支持,使应用程序具有可定制或二次开发的功能.
【dao语言】
Dao is an object-oriented scripting language with dynamic-typing variables supporting complex data structures.
Dao also provides string regular expression matching functionality with direct syntax supports. It has built-in numerical data types such as complex number and multi-dimensional numeric array, and their corresponding operations and computations are very convenient in Dao.
Multithreaded programming is an integrate part of Dao, and is also very easy to use.
Moreover, it can be very easily extended by writing your own C++ modules, which can be loaded dynamically in the Dao scripts, and your own C++ objects can be created and used in a similar way as Dao objects. The embedding of Dao into other C++ programs is also straightforward.
【易语言】
易语言是一个自主开发,适合国情,不同层次不同专业的人员易学易用的汉语编程语言。
易语言降低了广大电脑用户编程的门槛,尤其是根本不懂英文或者英文了解很少的用户,可以通过使用本语言极其快速地进入Windows程序编写的大门。
易语言汉语编程环境是一个支持基于汉语字、词编程的、全可视化的、跨主流操作系统平台的编程工具环境;拥有简、繁汉语以及英语、日语等多语种版本;能与常用的编程语言互相调用;具有充分利用API,COM、DLL、OCX组件,各种主流数据库,各种实用程序等多种资源的接口和支撑工具。
【Koodoo 语言】
欢迎进入Koodoo的世界, Koodoo是一种脚本语言, 特别擅长快速构造IVR(自动语音应答)、呼叫中心等语音方面的应用.
当然,Koodoo也是一种通用的脚本语言,除了面对语音方面的应用外,也可以进行文件操作、数据运算、网络通讯、数据库操作等各种应用,对这些问题都有简单的解决方法。而且,Koodoo语言xx地支持多线程,支持线程之间的通讯,所谓线程对应着语音应用中的线路。所以可以使用Koodoo语言开发数据服务、通讯服务、座席服务等网关应用。
Koodoo是一个设计精巧的高级语言,Koodoo很容易学习,它有类似C语言的简明、清晰语法,它又是一种高效率的动态脚本语言,借鉴了AWK, Python等脚本语言的精华,使用它进行开发是一个愉快的过程,Koodoo是一种南非条纹羚羊的名字,音Kudu--其实也写作Kudu,虽然没有 python那么凶猛,却也是我们这个蓝色星球上一种美丽的动物,我们借用了它的名字。
就让我们跟随Koodoo,开始语音开发的浪漫之旅吧。
【lava语言】
LAVA就是Lee(开发者的笔名)和JAVA的简称.
LAVA是一种伪编译的语言(这一点与JAVA相同,除此之外在语法上没有任何关系).
LAVA的语法极其类似c(但还是有一些不同).
LAVA程序在电脑端伪编译后,生成由一系列伪指令(伪指令长度一般为1~5字节)组成的lav文件.
lav文件通过文曲星端的LAVA解释器执行.
【鲁班语言】
鲁班是一个面向部件的整合语言(Component Oriented Scripting Language). 鲁班语言是自由源码公开语言.
鲁班的命名一是为了纪念中国历史上最伟大的土木工程师, 二是为了凸显鲁班语言和鲁班建筑工艺的神似之处鲁班是由中国人发明的计算机编程语言. 鲁班的发明人现居美国.
世界上现有的编程语言很多, 但是并不意味着我们的工具已经xx得心应手. 鲁班的发明人觉得整合语言(Scripting Language)有很大的潜力. 因为容易上手容易推广应用. 但是比较起复杂的语言象C++/Java, 整合语言有一个很大的弱点, 就是没有一个适合的部件模型(Component Model). 就象在沙子上做东西, 容易开始, 可做不大. 鲁班语言的发明正为了填补这个空缺.
鲁班是一个面向部件的整合语言. 它的语法简洁, 比一般的整合语言更易学易用. 同时鲁班又提供一个简单而又强大的部件模型. 在有必要的时候, 用户可以很容易的把鲁班代码组织成不同的部件以支持共享和再用.
简而言之, 鲁班兼有整合语言的可用性和编译语言的可管理性.
【模拟精灵LAScript脚本语言】
LAScript是基于lua的子语言、兼容lua基本语法。
【Nuva(女娲?)语言】
Nuva 是一种面向对象的动态脚本语言,它的设计目的是用于基于模板的代码生成。除了用于代码生成领域外,Nuva语言也能用于开发应用程序,如文本和数据处理、 GUI 应用程序等。
Nuva 语言的设计目的是用于基于模板的代码生成,因此 Nuva 语言中包含了专门用于模板的语言元素,编写模板更为灵活方便。
Nuva 虚拟机内置了正则表达式引擎,能够方便的进行文本处理。
Nuva 虚拟机内置了 O/R Mapping 引擎,您可以通过面向对象的方式直接存取数据库架构和数据。
Nuva 虚拟机内置了基于 HTML/XML 的界面引擎,能够方便的编写 GUI 应用程序 (Macrobject CodeAuto 就是用 Nuva 语言编写的)。
【太极语言】
太极语言语法描述形式与C/C++类似,目前太极语言的设计已有多方面超过了C++,比如面向概念的程序设计,代码组合机制……等等(当然目前还有不少不足,我会继续完善)。
太极语言既可以编译执行也可以解释执行,而且编译时是由解释执行的太极语言程序描述控制的,这对GP的实现非常有好处。
C++ templates虽然是图灵完备的,但描述能力非常不令人满意,C++0x虽有所改观,但是仍然有很大的局限性;太极语言用自控型编译技术非常好的解决了这个问题——完备的自己控制自己的编译。
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
〓 其他基于非原创语言的中文编程语言(汉化版本) 〓
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
还有一些基于一些原有语言的汉化版本,大多支持中文编程,也一起收集起来,供大家参考。
〓〓〓〓〓〓〓〓〓〓〓
〓 笔者简陋的评述 〓
〓〓〓〓〓〓〓〓〓〓〓
由于其中的一些编程语言,市面上很难看到有什么应用,笔者也难以对其加以评论,下面仅仅评论一些有实际应用的编程语言。
【易语言】
易语言是一种应用极为广泛的编程语言,笔者甚至能看到有众多的共享软件也是采用它编写的。
易语言采用汉语编程,这也是它引来争议的原因之一,很多人认为汉字输入速度较慢,但是易语言的开发工具提供了一种快速输入汉字的输入法,很好的解决了这个问题。
易语言的表格式参数是其一个很大的亮点,具有非常好的可读性。类似流程图的结构表现形式也非常不错,不过现在的大多数IDE也支持很好的表现结构化的形式,但是明显易语言的创意要早于他们。
笔者认为,易语言有一个明显的缺陷,就是源码默认不是采用文本文件的方式保存,并且也没有一个单独的编译器,而是捆绑了一个巨大的IDE,使得易语言的源代码不能脱离IDE单独编辑、编译。我想,如果易语言能够很好的解决这个问题,那么对于易语言的普及推广将是十分有益的。
【lava语言】
lava语言定位于文曲星上的软件开发,的确独具慧眼,其强大的图形库使得文曲星上的软件开发也的确变得非常容易。采用C语言的语法风格,但是又去除了有关C的一些“丑陋”语法,也不怪作者要自比Java了。
【LAScript语言】
作为一种准开发工具,模拟精灵有着非常广泛的应用,特别在初学者中十分流行。其携带的LAScript语言也随着模拟精灵的广泛传播而逐渐流行。
LAScript作为一个基于Lua语言的子语言,已经可以称得上一个真正的现代编程语言,具备了结构化编程和面向对象编程的诸多特性。
ApeML界面描述语言也非常有特色,采用html作为界面,应该是未来的方向。下面将要介绍的Nuva语言也是采用html作为界面描述语言,看样子是大势所趋啊。
【Nuva语言】
Nuva语言的语法非常简单,很像伪码,而且各种结构能够任意嵌套,的确灵活。
Nuva语言支持全面的面向对象编程,支持基于html的界面(呵呵,Vista?),也支持O/R Mapping(不知道是否类似于Lua?)。
Nuva语言可能还是一个新生的编程语言,应用并不广泛,笔者能够看到有源码的应用仅仅是CodeAuto(一个代码生成器,笔者感觉确实好用,跟 CodeSmith有一比)。
〓〓〓〓〓〓〓
〓 结束语 〓
〓〓〓〓〓〓〓
其他的一些编程语言,可能大多数还处于概念期,也有一些示例代码可以下载,但是基于缺乏明显的应用案例,笔者也就不再多做评论了,但是这不代表他们没有什么亮点,也许可能恰恰相反哦。