官术网_书友最值得收藏!

第2版代序

要有光

—《世界需要一種什么樣的語言》節(jié)選—

什么才是決定語言的未來的思想呢?或者我們也可以換個角度來提出這個問題:世界需要一種什么樣的語言?

特性眾多、適應性強,就是將來語言的特點嗎?我們知道現在的C#與Java都在這條道路上前進。與特定的系統相關,就是語言的出路嗎?例如曾經的VC++,以及它面向不同平臺的版本。當然,與此類似的語言,還有C,以及匯編語言等。

這些例舉其實都是在特定環(huán)境下的特定語言,所不同的無非是此處的環(huán)境的大小。這其實也是程序員的心病:我們到底選Windows平臺,還是Java平臺,或者Linux系統,再或者是……我們總是在不同的廠商及其支持的平臺中選擇,而最終這種選擇又決定了我們所使用的語言。這與喜好無關,也與語言的好壞無關,不過是一種趨利的選擇罷了。所以你在使用著的也許只是一種“并不那么‘好’”,以及并不能令你那么開心地編程的語言。你越發(fā)辛勤地工作,越發(fā)地為這些語言搖旗鼓噪,你也就離語言的真相越來越遠。

當然,這不過是一種假設。但是,真相不都是從假設開始的嗎?

語言有些很純粹,有些則以混雜著稱。如果編程世界只有一種語言,無論它何等復雜,也必因毫無比較而顯得足夠純粹。所以只有在多種語言之間比較,才會有純粹或混雜的差異:純粹與混雜總是以一種或多種分類法為背景來描述的。

因此我們了解這些類屬概念的標準、原則,也就回溯到了種種語言的本質:它是什么、怎么樣,以及如何工作。這本書,將這些分類回溯到兩種極端的對立:命令式與說明式、動態(tài)與靜態(tài)。我講述除靜態(tài)語言(一般是指類似C、C++、Delphi等的強類型、靜態(tài)、編譯型語言)之外的其他三種類型。正是從根底里具有這三種類型的特性,所以JavaScript具有令人相當困擾的混合語言特性。分離它們,并揭示將它們混沌一物的方法與過程,如歷經涅磐。在這一經歷中,這本書就是我的所得。

多年以來,我在我所看不見的黑暗與看得見的夢境中追尋著答案。這本書是我最終的結論,或者結論面前的最后一層表象:我們需要從純化的語言中領悟到編程的本質,并以混雜的語言來創(chuàng)造我們的世界。我看到:局部的、純化的語言可能帶來獨特的性質,而從全局來看,世界是因為混雜而變得有聲有色。如果上帝不說“要有光”,那么我們將不能了解世象之表;而世象有了表面,便有了混雜的色彩,我們便看不見光之外的一切事物。我們依賴于光明,而事實是光明遮住了黑暗。

如同你現在正在使用的那一種、兩種或更多種語言,阻礙了你看到你的未來。

周愛民

2009年1月于本書精簡版序

主站蜘蛛池模板: 广宁县| 岳池县| 逊克县| 互助| 四平市| 崇义县| 江陵县| 蕲春县| 新干县| 义马市| 黎城县| 务川| 金阳县| 调兵山市| 林口县| 兰州市| 叙永县| 临泽县| 闵行区| 台东县| 佳木斯市| 香格里拉县| 洛扎县| 吉安市| 阿克陶县| 靖州| 新田县| 克什克腾旗| 五原县| 台东县| 徐汇区| 泰和县| 盐山县| 临邑县| 琼海市| 香港 | 江陵县| 新沂市| 邵阳县| 裕民县| 桃园市|