首先,不可否認的是,python確實是入門程式設計非常好的語言。
它不像其他的靜態語言,程式設計前需要考慮好所有變數(函式入參出參)型別等等,而且語法相對來說簡單易懂,而且有很多好用的第三方庫。
當初也是因為學了python才開始入門程式設計的。(上學的時候也學過j**a和c,完全沒興趣。。。)
當我有了兩三年工作經驗的時候,才開始將python作為第二門語言,轉學go。
主要原因是:
這對程式設計人員很便利,但是卻對維護人員以及其他的服務呼叫方非常不友好。因為不知道變數的型別,
一旦型別不正確,所以很容易造成程式崩潰。
舉個例子:
學過python的人都知道,a應該是個dict。如果是str型別,str沒有get方法,會報錯。
所以寫python的時候很爽,但是維護起來很累。
這是python的程式設計人員很容易養成的壞習慣。
一拿到需求就開始程式設計,邊寫邊改。很快需求就完成了。
對簡單需求來說,這樣做提高了程式設計效率。
但對後續要不斷修改的需求來說,就是一場災難。
寫著寫著發現某個地方設計的不好,要重新設計,重新寫。
又因為**寫的很隨意,導致維護也不方便。
簡單的說,就是為了效率,降低了可擴充套件性和可維護性。
個人感覺這也是為什麼很多大型的專案不使用python的原因吧。
當然,這些問題都是程式設計人員自己的問題,如果程式設計人員之前學過其他靜態語言,
或者自身程式設計功底很深。這些問題都是可以避免的。
這個是動態語言的侷限性。
拿python和go以為例
python就像是實時翻譯,而go則是翻譯好的稿子。
執行python的時候,我們需要實時把中文翻譯成英文。再念出來。
執行go的時候,只需要按稿子上的英文念出來就行。
按稿子念肯定比先翻譯在念要快。
很多時候,我們更在意程式的執行速度,這時候python就難以排上用場了。
使用python久了就會就習慣偷懶,因為python有很多三方庫,想直接用三方庫。
這樣做其實沒有問題。但是前提是你對第三方庫非常熟悉,否則之後三方庫出現問題的話難以定位。
避免自己造輪子沒錯,但是深入了解三方庫有利於後期的維護以及自身程式設計水平的提高。
總結、python因為其語法簡單以及豐富的三方庫,大大提高了程式設計人員的效率。
但是也容易讓程式設計人員養成先程式設計後思考的壞習慣。
豐富的標準庫和三方庫,遮蔽了底層細節的實現,解放了程式設計人員。
但是資料庫、網路、作業系統等知識是優秀的程式設計人員所必備的技能。
python降低程式設計門檻的同時,也拉低了程式設計師的程式設計素質。(可能說的有點過了)
(沒有任何貶低的意思)個人感覺,其他靜態語言的程式設計人員的程式設計素質普遍比只會動態語言的程式設計人員更高一些。
因為動態語言傾向於遮蔽了很多實現的細節,來提高效率,這會導致該語言的程式設計人員不關注該部分細節,也就更容易出問題。
在掌握python的同時,去學習至少一門的靜態語言,程式設計之路會走的更遠。
在學習其他靜態語言的時候,會遇到很多python沒有的問題。因為其他語言不一定有對應的三方庫。
可能需要自己造輪子,這個過程會很煩,但是對自身成長很有幫助。
以上只是個人看法,有不同意見請友善交流
不少人為什麼將Python作為黑客攻擊語言?
python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。重點是,python 是一種對初學者非常友好的語言,從應用程式開發到文書處理 web甚至是遊戲能提供支援,不少人也會將python作為黑客攻擊語言。為何python會被選用為黑客語言呢?例如不外乎這四點 支援功能強大的黑...
我為什麼不用 Linux 作為我的桌面系統
說起 linux,我還是用的比較早的。記得 2000 的時候,電腦報 上組織了乙個整版來介紹當時還鮮為人知的 linux。作為乙個喜歡 嘗鮮 的人,我趕緊去買了一張 紅帽子 6.0的正版光碟 是在聯邦軟體店裡買的,老闆說是正版,10元人民幣 回來裝。安裝還是很方便的,煩惱的是,不認識我的顯示卡和網絡...
我為什麼要學習python
引言 學習python近兩年,談談我對於python的一點小理解,也從一些方面談談自己微薄的想法,也就是我為什麼學習python 這裡我不討論python的一些有用的庫或者框架,只從語言本身,最小支援的情況下談論這門語言本身。語言的發展都是越來越接近lisp,這也是這門語言偉大的原因。下面我羅列一下...