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