動態語言和虛擬機實現, 暨介紹一下我設計的一個新型的動態語言(1)

學習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寫一套界面出來. 就是說, 寫擴展模塊的壁壘一下子減輕了大部分, 雖然不是全部. 難道不令人激動嗎??




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章