Python爲什麼這麼厲害?

1. 語法本身的區別只是為了省事。語法糖,越大的項目中越不重要。比如:

和:

節約了一行代碼。但是在不支持此語法糖的語言中,只是簡單/麻煩的區別,而不是能/不能的區別。

2. 函數模型/對象模型決定思考方式。支持FP的語言中,程序員就按照FP的方式來寫代碼。支持OOP的語言中,程序員就按照OOP的方式來寫代碼。

3. 語言的適用領域只與庫有關,與語言本身無關。比如網頁爬蟲,大家都用Python,是因為Python有很多優秀的網絡爬蟲庫。如果說任意一門語言,有一天有人寫了一個比Python的爬蟲庫更簡單、更好用、更強大、更高效的庫,會不會改變Python在網頁爬蟲領域的優勢?我覺得完全有可能。只是現在既然已經有一個優秀的網絡爬蟲庫(並且能滿足當下的所有需求),大家都不願意重複造輪子而已。就像C++在GUI領域的優勢是因為有MFC、Qt等,Ruby在web領域的優勢是因為有Rails。而且從產品角度來說,比如我現在要做一個網站,應該用啥寫。優先考慮的不是語言,而是庫。也就是說,相比較的是Rails和django哪個更適合我網站上面的這些功能,而不是比較Python和Ruby。

4. 程序員的情懷。有些程序員有語言傾向,這很正常。不然就不會整天在網上爭論

  • Python和Ruby哪個更好,
  • PHP是最好的編程語言。

甚至有人要用自己最喜歡的語言來實現這門語言本來沒有的功能(參考node.js)。

如果有足夠多的時間和足夠多的程序員,肯定會讓每一門語言在每一個領域都有優秀的庫(參考猴子與打字機)。

5. 全文完。

以上純屬個人觀點,如有反對,敬請忽略。


菜鳥學Python


Python厲害的原因在於這些年有越來越多的人使用,越來越多人使用是因為很多不會編程的搞科研的人員只需要學習一點python的知識就可以處理比較複雜的問題。由於python本身作為膠水語言在處理科學計算的時候比java等方便,又是開源的,因此有很多關於科學計算和機器學習的包。比如文本處理中Stanford提供的nltk工具可以非常方便的處理文本和語言、gensim的機器學習工具等有大量的現有的模型的實現,包括主題模型、層次主題模型、非參數聚類等。同時由於tensorflow等框架的流行也導致了很多人開始學習python。

但是實際作為業務支撐的話應該是C與Java為主。python適合做科學計算,編寫機器學習模型和數據挖掘算法的好工具。


分享到:


相關文章: