- 注册时间
- 2004-11-1
- 最后登录
- 2018-4-24
版主
- 积分
- 548
|
这是国人开发的一门中文编程语言。
易语言本身是c语法特点,vb6式的rad工具。
vb6能干的它都能干,vb6不能干的它也不能干。OTL
值得一提的是,易语言4.x中有orge和opengl,dx的移植,以及中文教程。
有兴趣自己动手写游戏,却又不想啃E文的朋友或可一试。
而易语言.飞扬(ef),它是完全面像对象的语言。
语法上与C风格的,用起来和Java、C#很相似,感觉就是一个可以打中文的Java。
目前这个东西只放出了一个1.0的测试版本。
具体的简介和下载可以看这里
http://www.dywt.com.cn/download.asp
只有2m不到,东西也不是很全,比如类库的文档,只能体验一下。
那就体验吧,国际惯例先来个hello world。- //你好.ef
- 公开 类 启动类
- {
-     公开 静态 启动()
-     {
-         控制台.输出行("你好,世界!");
-     }
- }
复制代码 源代码一定要用UNICODE16LE编码。保存为*.ef(ef其实就是txt文件)
ec.exe的提示全是中文,很好理解,开始编译。- ec 你好.ef  -ecl_name="程序" -starter_cls="启动类" -out_mode=runable -out="你好.exe"
复制代码 而等效的java代码长得是这样的。- public class HelloWorld
- {
-     public static void main( String args[])
-       {
-         System.out.println("你好,世界!"); 
-       }
- }
复制代码 可以看出来,这些ef代码和java几乎一模一样。
观察"你好.exe",发现这个exe才7.5K,都可以和c编译出来的大小相比了。
再想想,有类,有GC的程序怎么可能这么小?
很快就发现,“你好.exe”必须依赖“系统.ncl”才能正常运行。
这个所谓“系统.ncl”,其实就是一个dll文件。
两个加在一块,是159k,正常。
这里发现了一个问题,虽然是号称“中文编程”,
可如果你的ef文件中用了中文标点。比如“;”写成了“;”,ec.exe就会报错。
中英间来切换标点符号,这是很烦di。
用{}来标识语句块,这个“中文编程”距离中文自然语言也就更远了。
可惜啊,现阶段,与其说ef是“中文编程”,还不如说它是“汉化编程”。
但考虑到,程序全用中文来写,会有免去很多注释的方便,硬着头皮再试一个GUI的HelloWorld。- 引入 工具,用户界面;
- 公开 类 我的窗口<基类=窗口>
- {
-     按钮 我的按钮;
-     标签 我的标签;
-     面板 我的面板;
-    
-     公开 事件 逻辑 创建完毕(创建完毕事件 事件)
-     {
-     我的面板 = 创建 面板();
-     我的面板.创建(本对象, 0, 0, 本对象.宽度(), 本对象.高度(), 0, "");
-    
-     我的标签 = 创建 标签();
-     我的标签.创建(我的面板, -1, "你好,世界!", 0, 0, 300, 300, 0, "");
-    
-     返回(真);
-     }
- }
- 公开 类 窗口程序 <基类="界面程序">
- {
-     我的窗口 主窗口;
-      公开 逻辑 创建界面控件()
-      {
-         主窗口 = 创建 我的窗口;
-         主窗口.创建(空, "窗口", 0, 0, 300, 300,
-         (整数)窗口风格.显示系统菜单 | (整数)窗口风格.显示标题 | (整数)窗口风格.显示关闭按钮,
-         "主窗口");
-         主窗口.显示(真);
-        
-         返回(真);
-     }
- }
- 公开 类 启动类
- {
-     公开 静态 启动()
-     {
-         创建 窗口程序;
-     }
- }
复制代码- ec 窗口.ef  -ecl_name="程序" -starter_cls="启动类" -out_mode=gui_runable -out="窗口.exe"
复制代码 运行窗口.exe,出现一个带标签的窗口,标签上有一句"你好,世界!"。
算上引入的*.ncl的大小,4个文件,一共4.35m,用wxWidgets的就是大。
对比用Winapi写这段程序,从<基类="窗口">和<基类="界面程序">,可以看出来,
“窗口”就窗口类,而“界面程序”里面包含了回调和消息循环。
总的来说,ef的包装还是不错的。
不过就有点奇怪了,比如,子类怎么继承父类的构造函数?
ef的文档中并没有说,聊聊几句,就把类的封装、继承和多态全带了过去。
这这例子里面居然用了“公开 事件 逻辑 创建完毕(创建完毕事件 事件)”这么奇怪的处理办法,接在父类的构造办法完成之后。OTL
结论:作为一门语言,ef还有很多不完善的地方。
相对于c#,java,也没有什么有用的改良。
(“改良”,“改进”这个词,对国人来说,还有点遥远。)
对于完全不懂编程,e文又不怎么过关的人来说,可以以这种“汉化编程”的方式,熟系编程中的共通思路。
但做为测试版,连类库文档都不放出来,显太小家子气。
所以对于有能力的人,还是别用这个东西作作品的为好。 |
|