簡單地一句話總結:
1.假如你想幫他盡快找個活兒,賺到錢,推薦php。
2.假如你想讓他成為一個高效工程師,推薦 python。
3.假如你想讓他愛上他的工作,推薦 ruby。
語言的選擇:
編程語言非常重要,不要認為他們都圖靈等價,用起來都一樣。實際上,好的語言,帶給你的東西是超乎想像的。
下面是一些看法:
1.程序員的時間遠比機器的時間寶貴:選擇開發效率最高的語言吧,不要過于在乎運行性能,如果你開發不出東西,那么跑得多快也沒用。
2.優雅的抽象勝于簡單的堆砌: 這意味著你的代碼是最簡潔而又充滿設計感的,面向對象,容易的閉包,一切都是表達式等等,而最好的抽象是語言本身能夠分層,既能夠書寫語言的語言,比如 dsl 能力強弱是個指標。
3.才華橫溢的社區勝過有難度的招聘:這種語言一定要擁有一個活躍且才華橫溢的社區,只要使用她的人,就有一種自豪感和精英意識,在社區里的每個人都自認為比別人強。即使,你不那么容易招聘到程序員,但我們不都知道,一個有才華的程序員勝過100個平庸之輩嘛?選用這種語言,能保證團隊里一起編碼的每一個人,都是高手。
4.也是最重要的,樂趣勝過一切: 靈活,好玩,永遠有新發現的魔術般的語言,只有你想不到的,沒有你做不到的,對一個真正的hacker來說,這是選擇語言唯一的理由,這也是 perl 為什么能夠長期存活的原因,因為她是 hacker 為 hacker 創作的。
如果能看完這些觀點,相信你能猜出我的選擇了 :) 是的,ruby是主流語言中我認為最出色的,最高的開發效率,最優雅簡潔的抽象能力,最有才的社區(github為中心),和最大的樂趣。
做為一個程序員,是應該去選取不同思路的語言去學習的,而且當然要選擇最有代表性的語言,在編程的世界里,主流的思路其實就兩種,一是結構化編程,一是函數化編程,面向對象只是結構化編程進化的一個階段而已,其他各種各樣的思路大多數是這兩個的分支。
社區的創造力
選擇一門語言要看這個語言社區的氣質,以及你想用他做什么東西。
mac 上可以運行那么多種語言,有很多人用 git。但卻只有 ruby 的用戶開發出了 homebrew 這樣牛逼的包管理系統,善用了 github 的諸多特性,真正的把每一個用戶都變成了潛在的 repo 貢獻者。我相信這絕對不是巧合。如果同樣的條件擺在面前,你做出了一個全新的東西而別人沒有,說明了你的創造力比別人要高。
作為 python 的使用者,我覺得 ruby 語法的優劣不太重要。但是從外部看 ruby 社區近些年持續的向外輸出一些從技術到開發上的理念,不斷的有大大小小的很酷的項目從 ruby社區中誕生的出來。使得我覺得 ruby 社區是一個很有創新氣質的社區。因此如果你學編程是想做出一個很酷的東西,那么我強烈建議你直接學習 ruby。
從 web 開發去比較
對于 web 開發,這三種語言都能勝任,但是還是有不少區別:
1.ruby 的 rails 框架確實是稱得上是快速開發的典范,但是 ruby 的語法過于靈活,有些時候對同一個處理會有很多種不同的寫法。
2.php 是老牌的網頁腳本語言,相對其他兩門而言比較成熟。php 雖然快速成型,但容易失控,尤其項目稍大的時候。
3.對于 python 來說,由于自身的簡約設計,可能應用的方面的
更多信息請查看IT技術專欄