易语言,或者汉语编程,不是什么新鲜事物,用“非英语编程语言”来进行编程也并非只有中国才有,这里有个叫“nadeshiko”的日语编程开发工具:https://code.google.com/p/nadesiko/,我相信还有很多其它“非英语”编程语言,有兴趣的可以看看。
没用过中文编程语言可以试试,国内有很多类似的东西,要指出的一点是,中文编程语言的所谓“输入的问题”没有想象中的困难,它们往往自带一个开发环境,只需要输入一个词语的拼音首字母即可完成输入(比如输入b就会弹出一个补全菜单,里面有“播放音乐“、”保存页面”等等选项,和你在常见IDE里按下.看到的一样)。(推荐学习:web前端视频教程)
以C语言为例,C语言所处的环境是,软件用汇编语言开发无法在各个不同硬件上移植,但是那个时期的硬件往往性能都比较低下,所以出现了刚好计算机编译器(早期是解释器)能识别(编译或解释),同时满足了当时开发操作系统直接操作内存的需求(具备有算术运算能力的指针)。
如果你细心点可以发现C语言的很多特征迎合了那个时代的需求,C语言里有register、auto、inline关键字,说明当时的编译器水平很差,还不能做到高效处理寄存器分配和内联。
int、short、long、char、unsigned、signed等等也恰恰描述了那个时代寄存器处理的数字常见类型有哪些。
易语言
再以易语言为例,写一个Hello World程序:
#包含 "某语言系统.接口" 整数类型 主函数() { 输出("你好世界"); 返回 0; }
其实本质和C语言:
#include <stdio.h> int main() { printf("Hello World"); return 0; }
外形几乎没有区别,能看得到的区别也就在关键字和标志符被“汉化”了。
那么这些汉化到底能对“不懂英语”的人起到多少帮助呢?
可以尝试拿上面的“中文版C语言程序”给一个没学过编程的人看,他几乎是不可能看懂的,也不可能立即用这种语言写个其他类似的程序,因为汉化了的那几个关键字和标志符尽管写成了汉字,但还是没有描述他们在实际的计算机程序中表示的是什么。
比如#include ,#开头的往往是预处理宏,而预处理宏程序的功能是在编译前对程序进行的所谓预处理,比如include功能就类似与把stdio.h里声明的东西都“复制”到当前文件,使得当前文件可以看到stdio.h里的函数原型等等内容。
而int表示的是整数类型,或者说当前计算机系统C语言编译器认为的默认宽度的整数类型,而不是无限精度的任意整数类型。
那么把这两个换成“包含”和“整数”类型之后呢?
包含的含义和include的含义还是相同,理解了include处理过程的人(或者仅仅理解它有什么作用的人)固然是会毫无顾忌地写下这行代码,而不懂的人还是不会写,其他的标识符和关键字的汉化也是一样,说到底,关于写程序的人,不是因为理解了这些符号在中文或者英文中的含义所以才会用中文或者英文编程语言写程序,而是因为他理解了这些符号在这个计算机系统和编程语言环境里的含义。
不要觉得这两种语句几乎一模一样语言对应起来很搞笑,其实很多所谓“中文编程语言”真的就是在预处理器上改改,把关键字和标准库的一些函数弄成中文,然后做个图形界面的开发环境就发布了,没有什么非常重大的科技含量。
它们的底层(尤其是后端)本质还是现有常见编程语言的常见实现(比如GCC或者Mono之类的),有的甚至在不遵循自己引用的开源软件许可证的情况下,闭源还卖钱。