-
1 # Devops旭
-
2 # 修煉IT基本功
先說結論:python的效能,語言編譯特性,程式碼可閱讀性在一定程度上制約了python在企業級開發中會逐漸落後於golang
先從python角度表述:
1.個人認為python是一個動態語言,它不能在編譯期間,找出潛在的語法問題,語言在執行時校驗引數的屬性和合法性,雖然方便了開發,但是卻犧牲了很多效能,並且在除錯階段,也會存在各種各樣的問題
2.python因為歷史包袱原因,有python2和python3,對於一個新手來說,這也是一個潛在的學習門檻,因為有些歷史專案是使用python2開發的,如果該專案你需要維護,也需要你去學習和適配python2的語法
3.python更大程度上來說屬於一種指令碼語言,它的優點就是開發速度快,能夠快速上線,帶來的缺點也是顯而易見的,程式碼難以維護,特別是企業級專案,一個業務模組的開發100個人可能有50種不同的寫法,雖然最後執行結果是一樣的,但是後期如果有其他人來維護你的程式碼,那麼對於維護者將是一個非常痛苦的事情,甚至重構的成本會低於你修改的成本,當然,如果你的公司有python開發的一些規範,或者一些示例模組工程,可能能夠很大程度上避免上述的情況
4.python的企業級工程化的輪子相對於其他的語言比較少,我並不是說python開源的框架少,python頂級開源框架肯定很多,我只是說企業級業務開發框架比較少
再從golang的角度表述
1.golang是一門年齡相對小的年輕語言,未來活力無限,目前屬於比較火的語言,歷史包袱也比較少,沒有版本不相容,語法不相容的明顯問題,並且一些新的特性正在慢慢加入到golang最新的版本中
2.golang是一門靜態語言,能在編譯過程中,找出你的語法錯誤,方便你的開發
3.golang的效能,golang的效能是超過python和java,並且無限接近c和c++,並且擁有垃圾自動回收機制,也這是它的新語言亮點
4.從語言特性來說,golang的繼承雖然不需要從紙面上用關鍵字來說明,但是卻能夠很好的把這個特性完美地表現出來,這樣的一個特性,能夠更大程度上的啟用golang的活力,能夠編寫出很多易於維護的優美的程式碼,這樣企業開發成本和維護成本也會大大降低
5.golang對docker和k8s的同語言的天然親和性,能夠更加方便專案雲端部署,降低企業的運維成本和機器成本
回覆列表
python是一個很靈活的語言,但是裡面一切皆變數,帶來了很大的不確定性,如果不是高手,很容易造成生產級的事故。而go,首先作為編譯型需要,執行速度遠超python,同時容器的爆火也推進了go的發展,使越來越多的公司傾向了go,而且在很多系統的銜接處,透過go可以提高效能,也使很多公司轉向了go。但總的來說,語言要看場景,不能一概而論。