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