編程語言發展得非常之快,後起之秀中Python顯然最為耀眼。簡明優雅、易於開發,“人生苦短,我用Python”並非一句戲言,Python成為許多工程師們心中“最美的語言”是有道理的。但是,有人就有江湖,編程的江湖亦是如此。迅速崛起的Python,免不了要被拿來和其他語言比較,而“Python如此火爆,我需要學嗎?”也成為了很多人的困惑…
最近在社區裡也有關於Python的討論:“為什麼要用Python”?大家談到了,動態語言的靈活性是把雙刃劍,Python的三方庫,效率問題,等等。
最近用Python這種動態類型變量語言越用越煩躁,每次點完頓號都想摔電腦,太不方便了,啥方法提示都沒有。這種明顯降低編寫效率,無有效提示的竟然說適合新手。當然周邊支持類庫確實多,隨便拉一個都能寫個自動圖像識別點確認實現游戲掛機。如果說動態類型是趨勢,GOOGLE新出的(09年發布)go語言宣城綜合所有優點,不還是采用靜態類型麼。計劃放棄用Python了但是公司裡面天天吹Python。
Python和java的比較,其實金庸的天龍八部裡面說得很清楚,Python類似鸠摩智的小無相功,靠著小無相功內力催動,能夠輕松搞定少林寺72絕技,但是當實現復雜的大的項目的時候,如果沒有搞懂底層的東西,會被反噬。java類似北冥神功,威力無窮,和小無相功同出一門,但是適用范圍沒有小無相功那麼大,只針對天山派的武功才能發揮出威力。從這裡可以看出,在以效率優先的華為派,當然是鼓勵大家學習Python,這樣即便無法拿下72絕技,也能各自學個一招半式闖江湖。
Python合寫些小工具輕巧便捷,運維工具之類的,提示關聯找個好的IDE就行了和語言沒關系。go交叉編譯易,部署簡單,適合搞服務器做些高並發之類的場景。Java適合搞業務或者大型項目,主要是生態好,工具多,會的人多維護方便,像go依賴管理非常不便,Python的性能還是不行。當然只要你給力其實用啥高級編程語言都可以把項目完成出來,只是熟練度,語言成熟度,開發是否便捷的差異。就像前端的人玩js,搞一個nodejs把後端也玩出來了。
對Python真的是很無語。三方庫雖然多,然而難用之極,API返回的究竟是變量函數句柄還是類?完全不知道。除非在固定領域經常使用Python,能過對領域專用API爛熟於心,否則沒有help沒有文檔,只能翻源碼猜啊我去!根本不適合新手好嗎? 根本不是信手拈來的語言好嗎?一引用三方庫就各種依賴各種版本不匹配,2.x和3.x都叫Python長得完全不一樣啊!如果你需要花1天時間寫核心代碼,那麼之前需要2天做准備好啊有麼有!
工程師E:
作為Python和Go都略懂的人,簡單表達一下觀點: