成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python即將出局?Julia和Swift能取而代之嗎?

開發(fā) 前端
Rust仍在努力適配機(jī)器學(xué)習(xí),所以我認(rèn)為Swift和Julia是取代Python并最終統(tǒng)治數(shù)據(jù)科學(xué)的語言。一起來看看Python面臨的困境吧。

上世紀(jì)90年代,Python作為一種通用編程語言誕生了。盡管語句簡潔,Python在最初十年的使用情況卻并不樂觀,它也沒能真正成為開發(fā)者使用的編程語言。當(dāng)時(shí),Perl是編程首選,Java已在面向?qū)ο缶幊填I(lǐng)域站穩(wěn)腳跟。

[[346967]]

當(dāng)然,一切編程語言都需要一定的成熟時(shí)間,只有它比現(xiàn)有工具更適合編程,才會被廣泛使用。Python在21世紀(jì)初期的第一個(gè)機(jī)遇就是,人們意識到Python的學(xué)習(xí)曲線比Perl簡單,還能與其他語言互相操作。這種特性讓大量開發(fā)者使用Python編程。Django的出現(xiàn)終結(jié)了Perl, Python勢頭更猛了,但仍然無法與其“后輩”Java和JavaScript相提并論。

快進(jìn)到現(xiàn)在,2019年StackOverflow開發(fā)者年度調(diào)查報(bào)告顯示,Python已超越Java成為第二受歡迎的語言。

Python還是10年來發(fā)展速度最快的編程語言。Python的普及很大程度上得益于2010年大數(shù)據(jù)的出現(xiàn)及機(jī)器學(xué)習(xí)、人工智能的發(fā)展。企業(yè)迫切需要發(fā)展迅速、門檻低的編程語言以管理大規(guī)模數(shù)據(jù)和科學(xué)計(jì)算任務(wù),而Python能完美解決這些問題。

除了以上優(yōu)勢,Python還是一種動(dòng)態(tài)類型的解釋型語言。更重要的是,它得到了Google的支持,后者為Tensorflow購買了Python,這使其成為數(shù)據(jù)分析、可視化和機(jī)器學(xué)習(xí)的首選語言。

然而,盡管對機(jī)器學(xué)習(xí)和人工智能的需求在新十年也將不斷增加,但Python的好景卻不長了。如同其它編程語言一般,Python本身也有缺陷。這些缺陷讓它能輕易被其它更適合完成企業(yè)常規(guī)任務(wù)的語言所取代。哪怕有R語言坐鎮(zhèn),Swift、Julia和Rust等新編程語言的出現(xiàn)也對數(shù)據(jù)科學(xué)的現(xiàn)任王者構(gòu)成了極大威脅。

Rust仍在努力適配機(jī)器學(xué)習(xí),所以我認(rèn)為Swift和Julia是取代Python并最終統(tǒng)治數(shù)據(jù)科學(xué)的語言。一起來看看Python面臨的困境吧。

Python缺乏類型安全性,運(yùn)行速度非常慢

[[346968]]

圖源:unsplash

所有的好事都要付出代價(jià),Python的動(dòng)態(tài)類型化也不例外。動(dòng)態(tài)類型可以輕松快速地編寫代碼而無需定義類型。然而,尤其是當(dāng)代碼庫變大時(shí),代碼運(yùn)行更容易出問題,開發(fā)人員在生產(chǎn)環(huán)境中運(yùn)行代碼時(shí)會更艱難。編譯器很容易發(fā)現(xiàn)的 BUG,在Python中反而無法識別,這樣就會產(chǎn)生開發(fā)障礙,最終降低大規(guī)模應(yīng)用程序的開發(fā)速度。

更糟糕的是,不同于編譯代碼,Python的解釋程序每次執(zhí)行時(shí)都要分析每行代碼。相比于其它語言,Python開銷更大,程序性能低得多。

而Julia能避免上述問題。Julia雖是動(dòng)態(tài)類型語言,但是它有實(shí)時(shí)編譯器。其JIF編譯器要么就是在執(zhí)行前生成正確的機(jī)器代碼,要么就是使用先前已儲存、緩存的編譯,這讓它擁有與靜態(tài)類型語言一樣的性能。

更重要的是,Julia有一個(gè)稱為多分派的關(guān)鍵特性,類似于OOPs的函數(shù)重載(雖然僅能用于運(yùn)行程序)。多分派的強(qiáng)大之處在于它能夠處理不同的參數(shù)類型,而無需創(chuàng)建單獨(dú)的函數(shù)名或嵌套的if語句。這有助于編寫更加緊湊的代碼,也是數(shù)值計(jì)算的一大勝利,它可以輕松地通過擴(kuò)展解決方案來處理所有類型的參數(shù)。

Swift甚至更勝一籌。Swift是靜態(tài)類型語言,LLVM編譯器(低級虛擬機(jī)器)對其進(jìn)行了高度優(yōu)化。它能快速編譯成匯編代碼,這讓Swift超高效運(yùn)行,速度可比擬C語言。

此外,Swift擁有更好的內(nèi)存安全和管理工具,即自動(dòng)引用計(jì)數(shù)(Automatic Reference Counting)。與garbage收集器不同,只要引用計(jì)數(shù)歸零,ARC就會回收內(nèi)存,因此更為準(zhǔn)確。

作為提供類型注釋的編譯語言,Swift和Julia比Python速度更快,功能更強(qiáng)大。僅僅這一點(diǎn),可能就足以讓開發(fā)人員推薦它們。

Python在并行性方面有局限性

Python最大的缺點(diǎn)不是速度慢,而是并行計(jì)算的局限性。簡單地說,Python使用GIL(全局解釋器鎖)——它會通過阻止多個(gè)線程同時(shí)執(zhí)行,來提高單個(gè)線程的性能。該過程有一個(gè)很大的障礙:開發(fā)人員不能使用多個(gè) CPU核心來進(jìn)行密集的計(jì)算。

我們在利用Python與Tensorflow、PyTorch 等C/C++庫的互操作性方面做得不錯(cuò)。這一點(diǎn)眾所周知,我也十分贊同。但是Python包裝器并不能解決所有調(diào)試問題,最后還是得靠C和C++檢查底層代碼。從根本上說,Python的優(yōu)勢在低層無效,這點(diǎn)足以讓Python出局。

這一因素很快將決定Python的衰落、Julia和Swift的崛起。Julia專門用來解決Python的缺陷,主要有三個(gè)特性:協(xié)同程序(異步任務(wù))、多線程和分布式計(jì)算,這些特性都展示出并發(fā)和并行編程的無限可能,這種結(jié)構(gòu)使Julia能夠以比Python更快的速度執(zhí)行科學(xué)計(jì)算并解決大數(shù)據(jù)問題。

另一方面,Swift有一切開發(fā)移動(dòng)應(yīng)用所需的工具,能夠進(jìn)行并行計(jì)算。

[[346969]]

圖源:unsplash

Swift和Julia都擁有Python的互操作性和強(qiáng)大的支持

雖然在速度、多線程和類型安全方面有不足之處,但Python有包含大量庫和程序包的巨型生態(tài)系統(tǒng)。在Python面前,Swift和Julia在機(jī)器學(xué)習(xí)領(lǐng)域仍然是個(gè)“弟弟”,擁有的庫數(shù)量非常有限。然而,Julia和Swift比Python更強(qiáng)的互操作性大大彌補(bǔ)了二者庫支持的不足的缺點(diǎn)。

Julia不僅允許程序員使用Python代碼(反之亦然),還能與C語言、R語言、Java以及幾乎所有主要編程語言的進(jìn)行互操作。這種多功能性能有力推動(dòng)這種語言的發(fā)展,增加它被數(shù)據(jù)科學(xué)家迅速采用的機(jī)會。

另一方面,Swift通過PythonKi 庫提供了與Python的互操作性。Swift(起源于蘋果)最大的賣點(diǎn)是它得到了谷歌的大力支持,十幾年前收益于全力支持而崛起的正是Python,可真是風(fēng)水輪流轉(zhuǎn)。

另外,Swift的創(chuàng)建者Chris Lattner正在谷歌的AI brain團(tuán)隊(duì)工作,這表明Swift正在被重點(diǎn)培養(yǎng),以在機(jī)器學(xué)習(xí)領(lǐng)域的取代Python。

Tensorflow團(tuán)隊(duì)通過S4TF項(xiàng)目投資了Swift,這進(jìn)一步證明了該語言不僅僅是Python的修飾版。相反,Swift 憑借其差異化的編程支持和像C語言一樣的低層級工作能力,將有可能被用來取代支撐深度學(xué)習(xí)的工具。

[[346970]]

圖源:unsplash

隨著數(shù)據(jù)量的不斷增加,Python的致命弱點(diǎn)很快就會浮現(xiàn)。注重易用性和快速編碼能力的日子一去不復(fù)返,速度和并行計(jì)算才是游戲的主角。Python 作為一種通用語言,將不再解決這些問題。Python終會退場,而Julia和Swift似乎就是候選接任者。

不過,我并不是說作為編程語言的Python會立刻消失,它會一點(diǎn)一點(diǎn)淡出人們的視線。Python在數(shù)據(jù)科學(xué)中的地位將逐漸降低,專門為深度學(xué)習(xí)而設(shè)計(jì)的語言才是未來主流。

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2020-09-22 15:16:49

Python編程語言Julia

2020-06-18 15:41:42

CSS :is() :where() 瀏覽器

2016-01-08 09:54:01

云計(jì)算云業(yè)務(wù)/云廠商

2009-11-11 09:09:29

Windows 7嵌入式操作系統(tǒng)

2019-11-01 16:23:52

存儲云存儲數(shù)據(jù)

2016-08-18 00:44:38

Python編程語言

2009-12-09 10:47:22

藍(lán)水IBM

2012-06-27 09:24:19

果凍豆Android 4.1

2012-06-07 08:58:33

資源即服務(wù)云計(jì)算

2022-10-08 09:03:16

JuliaPython機(jī)器學(xué)習(xí)

2022-09-05 09:02:32

Julia編程語言

2021-09-18 10:09:01

數(shù)字經(jīng)濟(jì)

2022-01-14 11:47:15

UbuntuLTSGNOME 版本

2023-03-02 15:30:49

2016-07-04 10:39:19

Swift 3亮點(diǎn)

2010-08-18 08:53:59

暴雪

2011-09-05 14:16:44

Delphi XE2

2020-05-06 09:15:40

Python Julia編程語言

2014-03-17 10:28:52

PythonJulia

2023-01-20 12:11:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品自在在线观看 | 一本岛道一二三不卡区 | 91精品在线播放 | 亚洲成人免费在线观看 | 国产精品国产精品国产专区不蜜 | 91精品国模一区二区三区 | 亚洲国产aⅴ精品 | 啪啪免费 | 欧美一区不卡 | 亚洲第1页 | 久久久99国产精品免费 | 一区二区三区欧美 | 天天插天天操 | 国产精品国产精品国产专区不卡 | 亚洲一区二区免费 | 日韩欧美视频 | 99只有精品 | а天堂中文最新一区二区三区 | 国产乱人伦精品一区二区 | 日本a视频 | 久久精品国产免费 | 欧美久久一区二区三区 | 一区二区日韩精品 | 91精品久久久久久久久 | aaaa一级毛片 | 伊人影院99 | 国产精品久久在线观看 | 日韩电影中文字幕 | 国产精品99久久久久久www | 久久一区二区三区电影 | 欧美日本韩国一区二区 | 久久99精品久久久 | 国产精品久久久久久久久久久久 | 国产乱码精品一品二品 | 久久99精品久久久久久秒播九色 | 亚洲精品视频在线 | 欧美日韩亚洲一区二区 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品亚洲成在人线 | 一区二区三区在线免费观看 | 九九热精品视频 |