再談非主流工業語言

robbin發表於2011-03-22
今天看到Fenng同學的發言:[quote="fenng"]"Ruby/RoR優雅?我倒是覺得恰恰是這個“優雅”導致了Ruby/RoR永遠不能達到PHP那樣的影響力。永遠別忘了“Worse is better”."[/quote]

這是一個很典型的觀點,類似的觀點其實有很多,例如:Mac優雅?我倒是覺得恰恰是這個“優雅”導致了Mac永遠不能達到PC那樣的影響力。永遠別忘了“Worse is better”."

其實這個結論是完全正確的,這個世界上充斥著“Worse is better”的東西:VB絕對是個垃圾的語言,但是他戰勝了Delphi;IE絕對是個垃圾的瀏覽器,但是他戰勝了Netscape,現在也一直領先著Firefox;MySQL的資料庫特性絕對不如PostgreSQL,但是市場佔有率遙遙領先;MacOSX作業系統的優秀毋庸置疑,但是Windows是絕對的霸主。

然而這種觀點的邏輯性卻很詭吊,因為他的隱含意思大約是這樣的:XXX就是再好,也不如YYY在市場佔有率大/商業成功/影響力廣,所以XXX就是worse的,YYY就是better的。換句話來說就是:成王敗寇,成功了就是好東西,不成功了就是壞東西。

我想引用一下potian在2006年寫的一篇部落格[url=http://agileprogrammer.blogspot.com/2006/08/blog-post_29.html]“非工業主流”程式語言[/url],因為原文被牆,所以我全文轉帖一下:

[quote]什麼是“非工業主流”程式語言。

我不知道如何下一個嚴格的定義。簡單地說,就是不被絕大多數程式設計師所使用的程式語言。

看看tiobe的語言排行榜,你可以瞭解我在講什麼。Java、C、VB、C++和PHP佔據了70%的份額,它們是當之無愧的工業主流語言。而 Ruby儘管連連升級,排名13位,份額也不過是0.804%,Lisp/Scheme連連下挫,目前僅為0.586%,如果你仔細尋找,在The Next 50 Programming Languages的標題下,Erlang,Lua,Scala縮在角落裡,這些“可憐”的語言當然是非主流的。自然,你不不太可能認為PL/SQL 、 Visual FoxPro、 VB.NET和Lisp、Ruby、Erlang、Lua是同類,我也這樣想。

或許你和我曾經或正在感到非常振奮,那些你我日常的程式語言高居前列,並引以為豪。但是事情並不是完全象我們想像的一樣。

編寫程式需要樂趣,很難說工業主流語言能夠提供你更多的樂趣。我所知道的很多程式設計師在白天忙乎完手上的Java,C++工作後,晚上會帶著一種神祕的快感摸索一些可能自己一輩子也不會用於謀生的語言。

當然,這可能是厭倦造成的,但是當你發現一個苦思冥想、或者需要n多語言規則、框架、n多所謂的高深理論解決的問題,在另外一種語言中是最最簡單的一個特性,恐怕這種懊惱的感覺不是可以輕易描述的。譬如,當你天天為C/C++的記憶體釋放絞盡腦汁的時候,當你為垃圾收集在Java的出現而歡呼的時候,你是否知道30年前,那已經是Lisp的一個標準構造了。當你天天面對著無窮無盡的併發要求,糾纏不清的哲學家吃麵頭皮發麻的時候,你可能很想知道Erlang 20年前就讓極大規模的併發和可靠性處理變成小事一樁。

編寫程式還需要創造價值,一個非凡的產品在獲得巨大利潤的同時,更會帶來一種心底而生的自豪感。[color=red]如果要擔心工作的問題,那麼主流語言是你必不可少的謀生工具。但是如果你從頭建立一個公司,希望用有限的資源和人力製造出強有力的產品,一個與眾不同的產品,那麼你需要祕密武器,這些武器是什麼呢?當然可以有很多,但其中最有殺傷力的武器之一無疑是程式語言--高生產力,適合某一領域的非工業主流語言。[/color]這種例子並不罕見,例如:
Beating the Averages
Making Money from Erlang
google

[color=red]也許,你喜愛的語言被成千上萬的人使用並不是那麼令人自豪的事情;自私一點地說,缺乏同伴或許能夠帶來更多的樂趣和財富[/color][/quote]

我想表達的一種觀點就是: 一個worse但是商業成功,被大多數人接受的東西並不必然成為適合你的東西:例如Mac確實不如PC普及,但是Mac適合我,我用起來很爽,工作效率很高;IE瀏覽器確實很普及,甚至很多網站專門為IE設計,但是我用chrome很爽,工作效率很高;php很普及,但是我用rails的開發效率非常驚人。

Erlang之父Joe Armstrong用Erlang這種非主流做產品開公司賺了千萬身家,Rails之父DHH也用rails這種非主流做37signals賺了千萬身家,[url=http://www.iteye.com/news/20392-DHH-driving-racing-car]現在開保時捷賽車做職業車手[/url],就是potian本人,也用Erlang和Rails這兩個非主流做視訊監控軟體,做出來一個紐交所上市公司。非主流究竟是讓你不恥於使用的東西,還是能夠給你帶來成功的祕密武器呢?

對於JavaEye網站來說,我們已經充分從Rails這種非主流程式語言當中獲得了巨大的收益,JavaEye的全職Rails程式設計師從來沒有超過2個人,換了任何一個像JavaEye這種規模的網站,都不可能用這麼少的研發人員達到這麼驚人的開發效率和維護效率。

所以我們決定長期建設和培養一支有相當規模的Ruby研發團隊,用來支撐我們在網站研發以及移動領域的擴張性需求,為此,我們將長期招聘Ruby程式設計師,也歡迎應屆畢業生實習,培養成為未來的Ruby工程師。

[url=http://www.iteye.com/jobs/714]JavaEye招聘Ruby工程師 [/url]

[url=http://www.iteye.com/topic/964151]JavaEye網站召喚你的加入[/url]

我們非常有信心,特別是看到同行這麼不願意採用Rails的時候,我們可以用Rails這種高效的祕密武器,在移動應用領域以驚人的速度做出來創新型產品,從而建立競爭性優勢。

正如potian所說:[quote][color=red]也許,你喜愛的語言被成千上萬的人使用並不是那麼令人自豪的事情;自私一點地說,缺乏同伴或許能夠帶來更多的樂趣和財富[/color][/quote]

相關文章