首先,從語(yǔ)言本身的角度來(lái)看:
C#可以看作是一種編譯語(yǔ)言(嚴(yán)格地說(shuō),是一種混合語(yǔ)言),Python是一種解釋性語(yǔ)言。
C的優(yōu)勢(shì)?速度越來(lái)越快。由于編譯只進(jìn)行一次,運(yùn)行時(shí)不需要編譯,因此編譯語(yǔ)言的程序執(zhí)行效率很高。
同時(shí),編譯是一把雙刃劍。如果修改了代碼,則需要重新編譯整個(gè)模塊,并根據(jù)操作系統(tǒng)環(huán)境編譯不同的可執(zhí)行文件。
魚和熊掌不能兼得。Python的優(yōu)點(diǎn)是它具有很強(qiáng)的跨平臺(tái)能力。代碼修改不需要停止。缺點(diǎn)是每次運(yùn)行時(shí)都要解釋。
然而,隨著軟硬件的快速發(fā)展,解釋運(yùn)行時(shí)間與編譯后運(yùn)行時(shí)間的時(shí)差將越來(lái)越小,Python語(yǔ)言“優(yōu)雅”、“清晰”、“簡(jiǎn)單”的優(yōu)勢(shì)也越來(lái)越明顯。
其次,從類庫(kù)生態(tài)的角度來(lái)看:
Python有大量的第三方類庫(kù)。在其他一些語(yǔ)言中,實(shí)現(xiàn)一個(gè)函數(shù)可能需要幾十到幾百行代碼,而Python可能會(huì)調(diào)用其他語(yǔ)言的下一個(gè)輪子,只需要幾行代碼甚至一行代碼。然而,c#一開始是基于Windows平臺(tái)的,后來(lái)可以是跨平臺(tái)的、開源的。第三方類庫(kù)的數(shù)量沒有python那么多。
最后,從發(fā)展前景來(lái)看:
人工智能,大數(shù)據(jù)時(shí)代已經(jīng)到來(lái),數(shù)據(jù)清洗和分析是python的強(qiáng)項(xiàng),人工智能中有很多基于python的優(yōu)秀框架。如果有人說(shuō)Python效率低下,如果我的硬件不符合標(biāo)準(zhǔn),我需要效率,那么人們更愿意使用C/C而不是C#。
總之,c和Python之間的排名差距越來(lái)越大。