王垠:我為什么不再公開開發Yin語言

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

  有些人可能知道我在設計一個程序語言,叫做 Yin 語言。最開頭宣布要做這個語言的時候,很多人熱血沸騰,可是過了不久,我發現自己很不喜歡這樣的氣氛,越來越厭倦跟人討論,所以后來悄悄地丟掉這些人,淡出了。我現在想告訴你我是怎么想的。

  我從來沒有想讓 Yin 語言流行起來。我對程序語言的認識,其實超乎所有人的想象。我默默地看著各種新語言扯著各種幌子,不吸取歷史教訓,繼續犯一些古老的錯誤,或者犯一些我根本不會犯的新錯誤,或者解決一些根本不需要解決的問題。這些語言缺少的不是功能,而是簡單和優雅。要達到簡單和優雅,必須要有品位,而品位就像一個藝術家的心,是非常難得到的。沒有經過 Indiana 式教育的人,是幾乎不可能達到這種品位的。就算 Friedman 培養出來的那么多學生,也極少有人可以達到我這種地步。我清楚的知道,其它語言設計者是完全沒法達到我的一些精華思想的。我很希望他們設計出那樣的東西,這樣我就不需要親自動手了,然而至今沒有發現任何人可以做到,甚至根本沒有想到。這些想法,早在多年前就已經被我在多個原型中實現過,所以具體做起來不會是問題。在我的心目中,Yin 語言就像原子彈的技術。我不想搞核擴散,我并不想讓所有人都得到它。我曾經覺得應該把它與全世界分享,后來我發現,你越是愿意分享,別人越是不拿你的東西當回事。我覺得這個世界不配擁有這樣的語言,因為人類是那么的愚蠢,而世界對我是如此的不友好。在資本主義這種獎勵貪婪人的制度下,Yin 語言被所有人掌握,很可能不是在造福世界,而是一種災難。所以即使我把 Yin 語言做出來了,它也只會屬于少數人,我不想讓這樣的技術落到貪婪或者愚蠢的人手里。

  我很不喜歡人們對于一個新語言的反應。我不會因為人們對我設計的東西顯示出盲目的熱血沸騰而受到鼓舞,因為越是盲目熱情的人,越可能腦子有問題,越可能在將來浪費我的口水,有理也說不清。我宣布開發 Yin 語言的第一天,就有人想把其他語言的社區的概念放到它身上。就像很多語言都搞得像宗教一樣,一下子出現了好些想做Yin 語言傳教士的人。有些人太積極了,未經我同意就建立了 IRC 聊天室之類的東西,還有人立即買了個域名給 Yin 語言(然后控制權還沒有給我)。他們其實沒有想到,那些都不是我想要的。我很不喜歡其他語言的宗教性質,社區意識,陣營意識。我感覺有很多人其實只是想搶占第一把交椅,就像很多其他語言的狂熱分子一樣。他們讓我感覺,從一開頭我就已經失去了對這個語言的控制,仿佛它不再是我的設計。Yin 語言跟其它語言不一樣,它不應該有一個社區,不應該成為一個宗教,因為我是一個科學家,我的設計完全出于理性的思考。

  我也不喜歡很多人對 Yin 語言膚淺的贊美或者質疑。有些人激動地對我說:美國人,日本人,都有可以設計語言的人了,我們中國終于也有了! 有的人甚至建議讓它看起來像中文,符合中國人的思維方式。這些說法顯示出人們對語言設計的無知和品位的低下。日本人做出了什么語言呢?我只知道一個日本人造的語言,它是一個徹底的垃圾 :P 而且一個程序語言本來就跟人類語言扯不上任何關系,只不過有些關鍵字是人類語言的單詞而已。也沒有所謂符合中國人的思維方式一說,因為人腦其實根本就不是用人類語言在思考。人腦的思維方式更像是一種程序語言,一種電路,而不是人類語言。只有需要跟另一個人交流的時候,人腦才會把內部的數據結構轉換成人類語言,就像 Java 的 toString ()方法一樣。這就是我現在正在做的事,我很清楚我現在給你們打的這些字,不可能完全符合我的思維,也就是言不達意。所以無論把一個語言設計得像中文或者像英語,最后都是一個錯誤,因為普通的程序語言(比如C)早就在很多方面超越了人類語言,沒有人類語言特有的那些歷史遺留問題。SQL 和 COBOL 之類的語言試圖設計得像英語,結果惹出更多的麻煩事,得不償失。想要一個程序語言有中國特色,其實顯示出國人的自卑心理,也是在貶低我的價值。中國第一對我來說毫無意義,這讓我感覺他們其實認為 Yin 語言跟國產 Linux是一類的。要知道,我是世界上最強的語言設計者之一(很可能沒有之一),我的價值是不限定于任何國家的。

  還有的人開始發送各種 github issue,請求他們在其他語言(比如 Ruby)里用過,認為重要的特性。有人要求我給這個語言定性,一本正經的要我說明這是什么范式的語言。有人義正言辭的索取 1.0 版本的 specification。有人開始質疑我的一些設計,甚至自作聰明的做了改動。有人質疑我為什么不用正則表達式來做 lexer,跟我說 Java 的 lexer 多么的嚴謹,因為它用了正則表達式 這一切都讓我覺得越來越傻,越來越無語,越來越浪費時間和口水。他們不知道,他們頭腦里的很多概念幾乎全都不存在于我的腦子里。我不喜歡有人自作聰明,覺得好像自己懂很多似的,好像還可以評價甚至教育我。每一次不恥下問都發現似乎有人真以為我不懂,以為自己是專家了。Yin 語言也許根本不符合任何一種語言范式,然而它也不會像 Scala 一樣弄成個大雜燴。它應該是天衣無縫的設計,就像一句名言說的:一個設計師知道他達到了完美,并不是當他不能再加進任何東西,而是當沒有任何東西可以被去掉。

  另外,很多人認為重要的特性,很有可能是有問題的。他們不明白,現有程序語言的問題,不是沒有實現某些特性,而是實現了多余的特性,有問題的特性。如果錯誤的特性被加了進去,一旦有人開始用這個語言,就再也沒法去掉了。所以作為一個優秀的語言設計者,我的一項重要任務是防止多余或者有問題的特性進入語言里。我也很不喜歡有人拿我的語言,我的開發實力跟其它語言作對比,因為比較本身就是一種不尊重的行為。比如有些人質疑 Yin 語言有沒有 Go 語言好,其實是在貶低我,因為我的水平跟 Go 語言的設計者根本不是一個檔次的,Go 語言的設計者當我的學生都不合格。

  所以,Yin 語言的設計開發其實仍然在緩慢地進行中,然而已經不再公開,不再開源。我覺得所謂開源精神純屬扯淡,很多人開源不過是為了提高自己代碼擴散的速度,提高知名度,這樣可以帶來利益,其實沒有人真的是想做什么貢獻的。這樣的虛偽行為帶來了開源社區的代碼質量普遍低下,各種浮夸之風盛行,有人卻看不出來。我不是 Paul Graham,我不會吹牛,揚言要做個叫 Arc 的 Lisp 方言,結果最后做出來的東西連退步都不是(not even a step backwards)。我是有真正的實力,受過系統的精深的教育的,然而我真的有自己的困難和自己的生活。太多不合格的程序語言設計者占據了重要的語言設計崗位,很多公司已經完全不明白誰才是真正的專家。由于沒有經濟支持,我的大部分時間得用來做其他工作。設計語言是一個吃力不討好的活,我想找到其它事情,甚至進入另一個領域,利用我的特殊品味來創造更大的價值。我不是工作狂,我也需要休閑和娛樂。我已經為技術耗費了太多的生命,我覺得我的人生是不完整的。為自己工作其實仍然算是工作,工作和生活需要平衡。我需要享受生活,需要陪我的貓咪,需要跟朋友玩,所以顯然是不會浪費周末明媚的陽光,蹲在家里寫代碼的。所以 Yin 語言的開發雖然在進行,進度是不會很快的。即使我完成了,可能也不會給很多人用的。所以你們還是繼續忍受現有語言和系統的扯淡和煎熬吧 :)


Cnblogs www.yinwang.org 2015-08-23 08:57:31

[新一篇] 如果你也用Chrome,你會發現這樣一條警告

[舊一篇] 理想的程序員
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表