先說一個不正經(jīng)的思路:Python的優(yōu)勢在于培訓(xùn)市場還沒有飽和,所以漫天的廣告
言歸正傳,先說點不好聽的缺點:
慢節(jié)奏的生活是很多人羨慕的,但是運行速度慢的程序可不是工程師想要的。Python慢到有點發(fā)指的地步,比V8上的JS還慢不少.(研究一下描述符,你會發(fā)現(xiàn)python調(diào)用對象方法的開銷好大!)但是python創(chuàng)始人也說了,一般程序的瓶頸在于20%的代碼,所以你可以把那20%的代碼用C重寫(反正python是膠水語言,用C重寫部分代碼也沒什么大問題)
動態(tài)類型屬于寫的時候爽翻天,一直寫一直爽,但是到了出bug或者重構(gòu)的時候就傻眼了。
但是,如果大部分工程師有比較好的寫unittest的習(xí)慣的話,還是可以通過unittest起到保護(hù)作用并且?guī)椭a理解。
再來說說優(yōu)點:
很多動態(tài)語言都有類似功能,任何東西都可以傳來傳去。class可以,函數(shù)也可以。
不少其他語言像c#也提供這種運算重載。重載的好處就在于很多復(fù)雜的運算可以像平常普通int運算一樣方便。比如矩陣的運算,完全可以和課本里面學(xué)到的運算一樣沒有任何違和感,降低了學(xué)習(xí)難度。
對于初學(xué)者而言,Python是一個很好的入門語言。Python也已經(jīng)作為很多院校的教學(xué)編程語言。這其實也主要得利于Python可以應(yīng)用在很多場景,不管是爬蟲還是后端服務(wù)開發(fā),還是數(shù)據(jù)分析或者現(xiàn)在火爆的機(jī)器學(xué)習(xí)人工智能。