從理想上看,Python和C++是十分相似的,它們都想做萬金油。
C++是學術性的,大牛們都指著靠它揚名立萬,設計哲學是『什么都想要』,首先要兼容C要快,其次是別的語言有的咱都要有,別的語言沒有的咱也要有。但是一方面C語言本身也不是很完善(比如頭文件這樣的粗暴的機制),另一方面為了運行時的爽快把新功能的臟活累活全往預處理、編譯上扔,導致C++的晦澀、艱深。用C++寫代碼有點像是用文言文寫公文,逼格滿滿,文采飛揚,需要耗費大量的精力在內容以外的地方。而看文言文公文(C++代碼)是痛苦,首先你得熟悉各種反人類的語法(傳值/傳址/move語義、預處理、函數指針……),通曉歷代典故(effective C++, ……)
Python的想法不一樣,Python的核心是簡潔直接清晰,Python認為好的方式只有一種,它也只呈現那好的一面。Python的語法本身就是一種偽代碼的佳實踐,而且這個『偽代碼』還是可以運行的。這造就了Python較低的使用門檻和極高的編程效率。用Python開發只要『有事兒說事兒』就好。ruby on rails火的那幾年,有人問guido叔(Python作者)怎么看,guido說的大概是:Python不需要殺手級應用,因為如果是這樣的話,Python在其它方面的作用就被忽略了。
python大的問題在于性能。性能問題其實是在設計時容易被誤解的部分。C++以『接近C語言的性能』橫行多年。隨著物理硬件性能的顯著提升以及軟件復雜性的顯著提升,人們開始對性能有了正確的看法。
首先,有些時候性能并不重要。IO密集型的業務大部分時間都在等待IO,節省不到1ms讓開發量增加幾倍似乎不是很劃得來。
其次,有些時候程序員的效率比機器的效率重要。對于很多復雜的邏輯性功能,使用加清晰的語言比晦澀的語言給程序減少的負擔,可以大大增強軟件的質量。(尤其是公司給的待遇招不到知乎上的大牛程序員的時候)
于是,Python/Ruby/Java開始崛起了。
上一篇:Python的應用前景如何?
下一篇:怎么學習python比較好?
掃碼匿名提建議
直達CEO信箱