一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 編程技術 - Python“王者”地位不保!Julia和Swift后來居上

Python“王者”地位不保!Julia和Swift后來居上

2020-09-22 23:17今日頭條為AI吶喊 編程技術

在過去的十年里,Python 一直統治著數據科學和機器學習,但是 Julia 和 Swift 后來居上,正準備超越Python。

Python 是20世紀90年代發布的一種通用編程語言。

Python“王者”地位不保!Julia和Swift后來居上

雖然 Python 語法簡潔,但它在第一個十年中并不為人所知,也沒有真正進入開發人員的工作中。Perl 是首選的腳本語言,Java 已經成為面向對象編程領域的主流。當然,任何語言的成熟都需要時間,只有當它比現有的工具更適合開發任務時才會被采用。

對于Python來說,這一時間最早出現在21世紀初,那時人們開始意識到它比 Perl 更容易學習,并且提供了與其他語言的互操作性。

這個發現讓非常多開發人員將 Python 集成到他們的應用程序中。Django 的出現最終導致了 Perl 的滅亡,Python 開始獲得了更多的發展契機。雖然流行程度還比不上比Python更新的 Java 和 JavaScript。

快進到現在,根據2019年 StackOverflow 開發者調查,Python 已經超越 Java 成為第二流行的編程語言。

Python 是最近十年發展最快的編程語言。Python 的流行與20世紀10年代大數據的出現以及機器學習和人工智能的發展密不可分。企業迫切需要一種能夠幫助管理大規模數據和科學計算任務的低門檻快速開發語言。Python 非常適合這些領域的挑戰任務。

除了這些有利因素之外,Python 是一種支持動態類型的解釋語言。更重要的是,它得到了 Google 的支持,Google 投資開發了Python的深度學習框架 Tensorflow,這讓 Python 得以成為數據分析、可視化和機器學習的首選語言。

然而,雖然機器學習和人工智能的需求還在不斷增長,但是 Python 不會一直都站在巔峰,它也會有老去的一天。像每種編程語言一樣,Python 也有自己的弱點。這些弱點讓 Python 很容易被更適合企業需求的編程語言所取代。雖然已經有 R 語言了,但是 SwiftJulia 和 Rust 等較新語言的出現實際上對當前的數據科學之王構成了更大的威脅。

Rust 還在努力追趕著各大機器學習社區的步伐,因此,我相信 Swift 和 Julia 將是推翻 Python 并最終統治數據科學的語言。

Python缺乏類型安全性,速度非常慢

所有的好東西都是有代價的,Python的動態類型特性也不例外。動態類型化可以在不定義類型的情況下,讓快速編寫代碼變得更加容易,但是,這會增加代碼運行時產生 BUG 的風險,特別是當代碼庫大小增加時,開發人員在生產環境中運行代碼時會更加艱難。編譯器很容易發現的 BUG,在 Python 中反而無法識別,這樣就會產生開發障礙,最終導致大規模應用程序的開發過程放慢。

更糟糕的是,與編譯的代碼不同,Python 的解釋器在執行時要分析每一行代碼。與其他語言相比,不僅導致開銷變大,還大大降低了程序的性能。

Julia 可以讓你避免這些問題。盡管它是動態類型的,但它有一個實時編譯器。JIT 編譯器要么在執行前生成機器代碼,要么使用先前存儲的緩存編譯,這能讓 Julia 與靜態類型語言一樣具有優秀的性能。更重要的是,它有一個稱為多分派的關鍵特性,類似于 OOPs 的函數重載,雖然只能在運行程序的時候有用。多分派的強大之處在于它能夠處理不同的參數類型,而無需創建單獨的函數名或嵌套的 if 語句。這個功能不僅可以幫助開發人員編寫更加緊湊的代碼,也是數值計算的一大勝利,因為與 Python 有所不同,我們可以輕松地通過擴展解決方案來處理所有類型的參數。

還有更好,那就是,Swift 作為一種靜態類型的語言,因其 LLVM(低級虛擬機)編譯器而得到了高度優化。LLVM 讓快速編譯成匯編代碼成為可能,這能讓 Swift 超高效運行,達到了幾乎與 C 語言一樣快的速度。此外,Swift 擁有更好的內存安全和管理工具,即自動引用計數。與 garbage 收集器不同,ARC 具有更高的確定性,因為只要引用計數歸零,它就會回收內存。

作為提供類型注釋的編譯語言,Swift 和 Julia 比 Python 更快,功能更強大。僅僅這一點,可能就足以讓開發人員推薦它們,而不是使用較舊的語言,考慮很多其他因素。

Python在并行性方面有局限性

如果說慢不是 Python 很明顯的缺點,那么這種語言在并行計算方面的局限性絕對是最明顯的缺點了。

簡而言之,Python 使用 GIL(全局解釋器鎖),它會通過阻止多個線程同時執行,來提高單個線程的性能。該過程有一個很大的障礙:開發人員不能使用多個 CPU 核心來進行密集的計算。

在此,我必須要同意一個觀點,即在利用 Python 與 Tensorflow、PyTorch 等 C / C ++ 庫的互操作性時,我們目前已經做得很好了。 但是 Python 包裝器并不能解決所有調試問題。當檢查底層代碼時,我們還是要依賴于 C 和 C ++。 從本質上講,我們不能在低層次上利用 Python 的優勢,這也是 Python 與眾不同之處。

這一因素很快將決定 Python 的衰落、Julia 和 Swift 的崛起。Julia 是一種專門用來解決 Python 缺點的語言。它主要提供三個特性:協同程序(異步任務)、多線程和分布式計算,所有這些特性都顯示并發和并行編程有無限可能。這種結構使 Julia 能夠以比 Python 更快的速度執行科學計算和解決大數據問題。

另一方面,Swift 擁有開發移動應用所需的所有工具,在并行計算方面沒有問題。

Swift和Julia都擁有Python的互操作性和強大的支持

雖然 Python 在速度、多線程和類型安全方面存在缺點,但它擁有一個巨大的生態系統,擁有大量的庫和包。在Python面前,Swift和Julia在機器學習領域仍然是嬰兒,他們擁有的庫數量非常有限。然而,它們與 Python 的互操作性彌補了 Julia 和 Swift 中缺少庫支持的不足。

Julia 不僅允許程序員使用 Python 代碼(反之亦然),還支持與 C、R、Java 以及幾乎所有主要編程語言的互操作性。這種多功能性肯定會給這種語言一個很好的推動,并增加它在數據科學家中被迅速采用的機會。

另一方面,Swift 通過 PythonKit 庫提供了與 Python 的互操作性。Swift(起源于蘋果)比較大的賣點是它得到了谷歌(Google)的大力支持,谷歌幾十年前就全力支持 Python。

另外,Swift 的創建者 chrislattner 現在正在谷歌的 AI brain 團隊工作,這一事實表明 Swift 正在被培養成機器學習領域 Python 的替代者。Tensorflow 團隊通過 S4TF 項目投資了 Swift,這進一步證明了該語言不僅僅是 Python 的包裝器。相反,Swift 憑借其差異化的編程支持和像 C 一樣的低級工作能力,將有可能被用來取代底層的深度學習工具。

結論

隨著數據量的不斷增加,Python 的致命弱點很快就會被發現。易用性和快速編寫代碼的能力已不再重要,速度和并行計算才是游戲的主角,Python 作為一種通用語言,將不再解決這些問題。Python 會消失,而 Julia 和 Swift 似乎是接任 Python 的候選人。

但是,我們要注意的是,Python 作為一種編程語言不會很快消失。而是在數據科學中的地位將逐漸倒退,因為專門為深度學習而設計的語言才是主流。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩福利网 | 男人日女人的逼视频 | 国产欧美日韩精品一区二 | chinese老头和老太交hd | 青青国产精品 | 亚洲无总热门 | 国产亚洲女人久久久久久 | 2022国产麻豆剧传媒剧情 | 精品一区二区三区免费观看 | 亚洲 欧美 清纯 校园 另类 | 国产精品嫩草影院在线看 | 丰满大乳欲妇三级k8 | 精品视频免费在线观看 | 69pao强力打造免费高速 | 亚洲美女aⅴ久久久91 | www.日日日 | 波多野结衣中文字幕乱七八糟 | 亚洲人成绝费网站色ww | 香蕉免费一区二区三区 | 国产成人精品日本亚洲网址 | 亚洲精品福利你懂 | 国产欧美一区二区三区免费 | 亚洲 欧美 在线观看 | 日本动漫xxxxxx| 四虎影院4hu | 亚洲AV无码一区二区三区乱子伦 | 人妖女天堂视频在线96 | 门房秦大爷在线阅读 | 欧美视频在线一区 | 婷婷去我也去 | 黑人巨大videosjapan高清 黑人好大 | 美女扒下内裤让男人桶的图片 | 免费看视频高清在线观看 | 国产99久久精品 | 天天色综合6 | 99国内精品久久久久久久黑人 | 亚洲第一区二区快射影院 | 99久久久久国产精品免费 | 国产成人精品一区二区仙踪林 | 欧美一区精品二区三区 | 韩国日本香港毛片免费 |