動靜兼濟總相宜——Java與.NET之外的語言視界


http://blog.csdn.net/myan/archive/2004/12/24/227899.aspx

動靜兼濟總相宜——Java與.NET之外的語言視界

去年的這個時候,我寫了一篇文章來總結C++的2003年,題目是《波瀾不驚》。其實當時我預料,C++的“波瀾不驚”不僅會是2003的主題,恐怕也是之後很多年的主題。不過這個預料在僅僅一年之內就被打破,今年微軟推出的C++/CLI着實翻起了一些波瀾,給本已平靜的C++世界塗抹了一縷亮色。按照Stan Lippman的說法,C++/CLI是一座橋樑,將原本屬於靜態世界的C++與動態的CLI聯繫起來。動靜結合,自然不同凡響。C++/CLI大致將於2005年推出第一個正式版,而大約要到2007年才能夠完全成熟。

目前的C++/CLI語言,從設計上來講可爲是譭譽參半。讚譽之詞不必多說,至於社羣裏的反對意見,大致是來自兩種情緒。其一是覺得C++/CLI對C++進行了專屬的改造,使得自己熟悉的C++代碼面目全非。其二是覺得C++/CLI將C++的複雜性與CLI的複雜性統統暴露出來,令人望而生畏。依我看來,第一種責難其實出於一種不必要的宗教虔誠,並不足以爲據。倒是第二種看法,頗值得我們擔憂,如果得不到很好的解決模型,我們也可以認定C++/CLI只是一小撮專家們手中的屠龍術,而很難產生更廣泛的影響。

如果把C++/CLI的喧囂撥開,看看傳統的C++,那麼2004年就不僅僅是“波瀾不驚”了,甚至可以說是“水波不興”。我甚至要頗費一番思索,才能夠列出一兩件事情,來代表C++社羣這一年的所作所爲,還要擔心讀者怪罪我小題大做。

Boost庫在2004年改進了兩版,加入了一些很棒的組件,比如序列化庫等等。標準委員會也開會接納了幾個小玩意進入C++ 0X標準。C++社羣自2000年以來,傾心於基礎庫的建設,這對於C++來說的確是必須,但是對於這個迅速變化的世界究竟能起到多大的影響,現在還很難說。其實一直以來,Boost庫的精緻程度就已經非常高,但是對外界的影響力還不夠。我當然樂於看到“三年不鳴,一鳴驚人”的局面,但是對此並不樂觀。總的來說,C++社羣要加油。

與之相對應的,在實際工程中,C++的應用還是非常穩定地發展着。只不過,人們固執地使用着傳統的、基於對象或者面向對象的風格,至多摻入少許的STL。從1998年以來,C++領袖們一直號召使用者轉向新風格,現在看來這麼多年過去了,效果並不很理想。其中主要的原因,固然是因爲通往“新風格”之路的艱辛,也一定程度上是因爲新興動態語言的替代作用。“動靜兼濟”之美,未必要通過C++自身的涅磐來達成。事實上,類似Python和Ruby這樣的動態語言,一方面提供了遠遠超越Java和C#的動態能力,另一方面又能夠方便地與C/C++交互。用它們與C/C++混合開發,毫無疑問是開發應用系統的極佳組合方案。

2004年12月1日,Python升級到2.4。從語言本身來說,2.4與2.3的差別很小,對一般開發的影響幾乎可忽略不計。但是,就在12月1日當天,ActivePython、PyWin32等主要Python實現包均同步升級到2.4版,此後數日,各主要Python軟件包均升級兼容2.4版,動作之整齊劃一,有如一家紀律嚴明的公司,充分體現了Python社羣的成熟,令人震撼。

然而,對於Python來說,本年度最令人振奮的消息是IronPython的橫空出世。Iron Python不僅向Python社羣證明了.NET平臺,也向.NET證明了Python。其開發者Jim Hugunin已經被微軟招入麾下,專職研究.NET平臺上動態語言的實現技術。Python等動態語言有望將軟件的開發效率在Java和C#的基礎上進一步提升2-5倍,所以,毫無疑問的,我們當然希望Python能夠進入.NET,成爲一等公民。不過一般來說,2005年恐怕還不可能。微軟還是非常熱衷於推銷自己發明的語言,而對於開源社羣的貢獻保持着一種官方的矜持。也許Java社羣在這方面反而要更積極一些。

日本人Yukihiro Matsumoto發明的Ruby語言,以其更純粹的面向對象支持、更一致的類型系統和爲人津津樂道的block/iterator結構而迅速崛起,逐漸呈現與Python分庭抗禮之勢。對於熟練的Python開發者來說,Ruby的吸引力並不是很大。但是對於剛剛踏入動態語言世界的C++/Java程序員來說,Ruby似乎比Python有更大的魅力。2003年8月,Ruby發佈了1.8版,這是一個比較大的升級。而2004年,Ruby再接再厲,連續推出1.8.1和1.8.2,同時,Ruby社羣成立了RubyForge網站,實現了力量的大整合,其發展勢頭更加迅猛。

腳本語言老將Perl今年把精力投入到了Perl 6上。雖然距離Perl 6的成形還很有一段路要走,但是Perl 6已經成爲熱門話題,O’Reilly甚至已經出版了一本書。而源於巴西的動態語言新丁Lua發佈了5.1版,以其獨特而小巧的設計、出奇的高效令世人驚訝。

總的來說,在動態語言領域裏,老將的優勢是支持庫豐富,新丁的特長則是語言設計優美,新老各有優勢,讓人難以取捨。如果能新老結合,豈不是很美好?這就是Parrot項目的初衷——爲動態語言提供最優化的基礎運行平臺。在2004年,其版本號升級到0.1.1。我們已經可以憧憬一個這樣的未來,即Python、Perl和Ruby自由協同,互相無拘束地調用。因此可以說,Parrot VM是比任何單個動態語言發展都更爲意義深遠的事件,如果動態語言家族實現大統一,整個編程世界將被非常深刻地影響,今天任何一個執迷於Java或.NET世界而無暇四顧的人,在不久的未來都將爲此而深感震撼。

事實上,動態語言本身的能力是有侷限的,一般而言其效率也是較差,但是與C/C++的相互結合,使得程序員在開發時得以動靜兼濟,取長補短。很多人都相信,動態語言是編程技術發展的新方向。縱觀2004,展望2005,這種預測是很有希望成爲現實的。

2004年1月26日         Boost 1.31.0發佈

2004年3月22-26日       C++標準委員會在悉尼召開第33次會議

2004年3月23日         Lua 5.1 work 0發佈

2004年4月11日         微軟發佈Visual C++ Toolkit 2003

2004年4月20日         GCC 3.4.0發佈

2004年5月27日         Python 2.3.4發佈

2004年8月              Linux Standard Base 2.0加入一個C++ ABI標準

2004年8月              微軟發佈Visual C++ 2005 Express Beta,展示新的C++/CLI

2004年10月1日         Ruby語言的權威著作《Programming Ruby》第二版問世

2004年10月             C++標準委員會在微軟總部雷蒙德召開第34次會議

2004年11月8日         Ruby 1.8.2 preview 3發佈

2004年11月19日        Boost 1.32.0發佈

2004年10月29日        Parrot 0.1.1發佈

2004年12月1日         Python 2.4發佈

發佈了49 篇原創文章 · 獲贊 3 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章