對於電腦而言,所有的—無論機器語言、組合語言還是高階語言—都沒太大差別,它只認識0和1。
想這個,完全沒意義。絕大多數程式設計師不會徒手用機器語言來寫程式—這很蠢。他們總是會選擇一門高階語言來編寫程式碼。而且,他們總有最心愛的語言,並且非常忠於它。
在 Paul Graham 的世界裡,Lisp 是最強大的語言。他年幼時曾是 Basic 語言的迷戀者。後來,“我只想說,我認為 Lisp 語言在(程式設計能力曲線)最上方。”他在《黑客與畫家》中寫道。這時候,他和合夥人一起編寫了“Viaweb”,也就是後來的“Yahoo Store”。
聽上去,其他程式設計師有點蠢。不選擇最強大的那種語言就是很蠢的事。但在其他語言 Fans 的世界裡,它一樣強大,甚至可能會更強大。這種爭論在程式設計師的世界裡從來沒有停止過,而且越來越頻繁。
單純從技術的角度而言,他們都對。無論哪種語言—只要不嫌麻煩,不怕執行太慢—都能完成哪怕再複雜的任務。只不過,除錯或者抓那些 BUG 時,總歸都是個問題。有時候,一個程式設計師可能都沒辦法讀懂另外一個程式設計師的程式。
這聽上去,就像那個笑話一樣:“我會兩種語言—英語和克林貢語。可是為什麼找不到女朋友?”很簡單,女朋友聽不懂克林貢語。
而且,這個世界並不僅僅是程式設計師的,還是產品經理的,同時還是 CEO 們的。在程式設計師們的眼裡他們可能長得像呆伯特一樣可笑,但他們可能更加清楚什麼產品是被需要的。這也是為什麼 JAVA 遠遠超過 Lisp,佔據市場份額第一的原因之一。雖然後者思想的先進性無人能夠企及,但前者更實用,而且大多數人能夠理解。
這和程式設計師界內部的爭論一樣,他們和產品經理間的事情也從來沒有停止過。
但幸運的是,技術的變化很快。在和產品經理漫長的鬥爭中,程式設計師們終究能夠戰勝後者—他們的選擇才是讓世界進步的原動力。因此,當 James Gosling 和他的程式設計師們厭倦了C和 C++ 時,JAVA 才會誕生。
那麼,未來,程式設計師們又會做怎樣的選擇讓 JAVA 滾下佔據多年的第一名呢?