您的位置:首页 > 其它

动态语言和虚拟机实现, 暨介绍一下我设计的一个新型的动态语言(1)

2008-01-08 15:23 459 查看
学习scheme的过程里面, 对动态语言大有感悟, 发现一种比较新颖的方式来实现动态语言

现在有不少动态语言了, 比较看重的数python, 和ruby. 关于ruby, 我也有过一点点接触, 第一感觉十分不愉快. ruby有很多的perl的痕迹. (补充一点, perl多年来没有更新, 说难听点, 有点夕阳无限好的感觉)
所以, 我最看好的当属python.
python作为一个成熟的动态语言, 发展得十分威猛. 有多个实现, 官方的有CPython, 由老大控制着Python这个语言的根基. 其他的有几位英雄, 像Jython, IronPython, 等等, 提供了Python和JDK和.NET平台的无缝连接. 端的是异常威猛.
动态语言+开发平台, 使得Python直接进入企业级开发的领域.

后面这两种, 都是Python语法+ 虚拟机技术来实现的. 从本质上而言, 和CPython无甚区别. 但是, 事实上, 这一平台的分离, 使得语言的互通性变得十分简单. 都是在虚拟机上跑的, 反正大家都是说的同一种语言, 互通共有, 成了一件自然而然, 水到渠成的事情.

不知道有多少人做过Python的扩展, 用C/C++给Python写扩展模块. 这种方式是非常好的, 用C来写模块, 完成需要高性能的功能的实现, Python作为胶水语言, 把各个模块集成到一起. 在生产效率和运行效率之间得到一个平衡, 既得到了良好的性能, 又把程序员从牛刀杀鸡的情景中得以解放.

比如写UI, 大家以前或者现在都是用C++来完成的. 其实挺郁闷的, GUI里面并不需要搞这么麻烦. 用Python来完成最合适了, 字符串处理, 内存资管理, 等等, 会减少很大的工作量.
(未完待续)

不过, 写模块扩展本身并没有这么简单, 还是需要一点知识的. 有一些工具帮助大家, swig 或者boost的python模块. 情况会好很多, 但并没有好多少.

这个时候, 虚拟机上的python的优势就凸显出来了. ironpython可以无缝的访问.net平台, 你什么都不用做, 就能直接使用.net里面的winform写一套界面出来. 就是说, 写扩展模块的壁垒一下子减轻了大部分, 虽然不是全部. 难道不令人激动吗??
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐