新聞中心
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),大通企業(yè)網(wǎng)站建設(shè),大通品牌網(wǎng)站建設(shè),網(wǎng)站定制,大通網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,大通網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
上世紀(jì)90年代初,Python面世了。近30年來(lái),關(guān)于它的“炒作”一直沒(méi)有少過(guò)。當(dāng)然,編程界花了至少20年的時(shí)間才認(rèn)識(shí)到它,但自那以后,它的流行程度遠(yuǎn)遠(yuǎn)超過(guò)了C、C#、Java甚至Javascript。
盡管Python目前在數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域,以及某些程度上在科學(xué)和數(shù)學(xué)計(jì)算領(lǐng)域占據(jù)著主導(dǎo)地位,但與Julia,Swift和Java等新語(yǔ)言相比,它確實(shí)有其劣勢(shì)。
是什么讓Python如此受歡迎?
Python迅速發(fā)展的主要原因是易于學(xué)習(xí)和功能強(qiáng)大。這使得它對(duì)初學(xué)者,包括那些由于C、C++等語(yǔ)言語(yǔ)法艱澀且陌生而對(duì)其望而卻步的人,都非常有吸引力。
該語(yǔ)言從根本上廣泛強(qiáng)調(diào)代碼的可讀性。憑借其簡(jiǎn)潔而富有表現(xiàn)力的語(yǔ)法,它允許開發(fā)人員在不編寫大量代碼的情況下表達(dá)想法和概念(例如在C或Java等低級(jí)語(yǔ)言)。Python非常簡(jiǎn)單,可以與其他編程語(yǔ)言無(wú)縫集成(例如將CPU密集型任務(wù)卸載到C / C ++),這對(duì)多語(yǔ)言開發(fā)人員來(lái)說(shuō)是一個(gè)加分項(xiàng)。
Python用途廣泛的另一個(gè)原因是大型企業(yè)(包括FAANG)以及無(wú)數(shù)小型企業(yè)對(duì)其的大量使用。如今,Python包里幾乎包含了可以想到的任何東西——用于科學(xué)計(jì)算的Numpy,用于機(jī)器學(xué)習(xí)的Sklearn和用于計(jì)算機(jī)視覺的Caer。
Python也有缺點(diǎn)
它運(yùn)行很慢,非常慢
顯而易見,在未來(lái)很長(zhǎng)一段時(shí)間里,速度都是開發(fā)人員的主要關(guān)注點(diǎn)之一。
Python之所以“慢”,實(shí)際上有兩個(gè)原因——Python被解釋為與編譯相反,最終導(dǎo)致執(zhí)行速度較慢;以及它是動(dòng)態(tài)類型的(Python在執(zhí)行過(guò)程中自動(dòng)推斷變量的數(shù)據(jù)類型)。
事實(shí)上,“Python很慢”這一說(shuō)法對(duì)初學(xué)者影響很大。這是真的,但只是部分事實(shí)。以Python中可用的機(jī)器學(xué)習(xí)庫(kù)TensorFlow為例,這些庫(kù)其實(shí)是用C++編寫的,并可以在Python中使用,某種程度上構(gòu)成了圍繞C++實(shí)現(xiàn)的Python“裝飾器”。Numpy,甚至Caer,在一定程度上也是如此。
它有一個(gè)GIL(I)
Python速度緩慢的主要原因之一是存在GIL(全局解釋器鎖),它一次只能執(zhí)行一個(gè)線程。雖然這可以提高單線程的性能,但它限制了并行性,開發(fā)人員必須實(shí)現(xiàn)多處理程序而非多線程程序來(lái)提高速度。
不是內(nèi)存密集型任務(wù)的最優(yōu)解
當(dāng)對(duì)象超出范圍時(shí),Python會(huì)自動(dòng)進(jìn)行垃圾回收。它旨在消除C和C++在內(nèi)存管理方面的所涉及的許多復(fù)雜問(wèn)題。由于指定數(shù)據(jù)類型的靈活性(或缺乏靈活性),Python消耗的內(nèi)存量可能會(huì)迅速爆炸增長(zhǎng)。此外,運(yùn)行時(shí)可能會(huì)彈出Python未關(guān)注的錯(cuò)誤,最終減緩開發(fā)過(guò)程。
移動(dòng)計(jì)算中的弱存在
隨著臺(tái)式機(jī)到智能手機(jī)的巨大轉(zhuǎn)變,很明顯,我們需要更強(qiáng)大的語(yǔ)言來(lái)構(gòu)建手機(jī)軟件。盡管Python在臺(tái)式機(jī)和服務(wù)器平臺(tái)上具有很強(qiáng)的代表性,但是由于缺乏強(qiáng)大的移動(dòng)計(jì)算處理能力,Python往往會(huì)在移動(dòng)開發(fā)上失敗。
近年來(lái),這一領(lǐng)域有了很大進(jìn)步,但是這些新添加的庫(kù)與Kotlin,Swift和Java等強(qiáng)大的競(jìng)爭(zhēng)對(duì)手相比仍有差距。
其他語(yǔ)言的興起
最近,Julia,Rust和Swift等較新的語(yǔ)言強(qiáng)勢(shì)入局。它們借鑒了Python,C/C ++和Java的許多優(yōu)秀設(shè)計(jì)概念——Rust基本保證了運(yùn)行時(shí)的內(nèi)存安全性和并行性,并提供與WebAssembly的一流互操作性;由于支持LLVM編譯器工具鏈,Swift幾乎與C一樣快;而Julia為I/O密集型任務(wù)提供了異步I/O,并且速度非常快。
Python從來(lái)就是很好的編程語(yǔ)言,它從來(lái)沒(méi)有超越C/C++和Java。它是一種通用的編程語(yǔ)言,強(qiáng)調(diào)人類可讀的、以英語(yǔ)為中心的語(yǔ)法,允許程序和應(yīng)用程序的快速開發(fā)。
歸根結(jié)底,Python和其他語(yǔ)言一樣,是一種工具。有時(shí)候,它是很好的工具。有時(shí)候不是。大多數(shù)情況下,只是 “還不錯(cuò)”。
Python作為一種編程語(yǔ)言會(huì)消亡嗎?筆者不這么認(rèn)為。
那么,它的魅力正在消失嗎?也許有一點(diǎn),但只是一點(diǎn)點(diǎn)。
網(wǎng)站標(biāo)題:Python曾是程序員的“瑞士軍刀”,而如今正被慢慢取代
網(wǎng)頁(yè)鏈接:http://www.fisionsoft.com.cn/article/cddgics.html


咨詢
建站咨詢
