精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python語言將如何繼續發展?

馬哥Linux運維 ? 來源:網絡整理 ? 作者:工程師陳翠 ? 2018-10-05 09:13 ? 次閱讀

不管我們如何希望PHP永遠天下第一,亦或是Java永久無敵,更或者希望C語言永遠是最好的語言。

然而,筆者今天搜索百度指數得知,Python的指數,已經高于Java和PHP的指數之和。

而Python的版本迭代也是嗖嗖的,那么新版本4.0和3.0究竟有什么區別呢?今天分享一篇Python軟件基金會的董事會成員、CPython的核心開發人員Nick Coghlan的文章,希望你會感興趣。

筆者今天在百度指數的搜索結果

一些剛剛接觸Python思想的人,會提出無法向后兼容的修改建議,這些建議并沒有針對,當前合法的Python 3代碼,給出明確的移植方案,而他們偶爾會提及Python 4000的思想。畢竟,Python 3.0時,我們允許了這類改動,為什么Python 4.0就不允許呢?

這樣的問題我已經聽過很多次了(包括有人非常擔心地說:“你已經讓向后兼容性遭到了一次破壞,我怎么知道你還會不會再來一次?”),我覺得我應該把我的答案寫下來,將來有人問及,我就可以讓他們來看這篇文章。

Python 4.0目前的期望是什么?

我目前的期望是:Python 4.0僅僅只是“Python 3.9之后的一個版本”。僅此而已。語言沒有深刻的變化,也沒有重大的向后兼容性問題,從Python 3.9到4.0,應該像從Python 3.3到3.4(或從2.6到2.7)一樣平安無事。我甚至希望在版本升遷之際,應用程序的二進制接口(PEP 384引入的功能),能夠保持穩定。

按照目前的語言功能的發布速度(大約每18個月發布一次),這意味著我們可能會在2023年看到Python 4.0,而不會有Python 3.10了。

那么Python將如何繼續發展呢?

首先,也是最重要的,PEP流程沒有任何變化,仍將持續提出向后兼容的更改,并將添加新模塊(如asyncio)和語言功能(如yield from)等,以增強Python應用程序能夠使用的功能。

隨著時間的推移,Python 3在功能方面,將領先Python 2越來越多,即使Python 2用戶,可以通過第三方模塊或Python 3的后向移植,獲得同等功能,也無法趕上Python 3的功能。

不同解釋器實現和擴展的互相競爭,將繼續探索增強Python的不同方法,包括PyPy關于JIT編譯器生成和軟件事務內存的嘗試,以及科學和數據分析社區,對面向數組編程的探索(這種方式充分利用了,現代CPUGPU所提供的向量化功能)。

與其他虛擬機運行時(如JVM和CLR)的集成,也有望隨著時間的推移,而改進,尤其是在教育領域取得的進展,可能會讓Python作為更受歡迎的嵌入式腳本語言,在更大的應用程序中運行。

對于一些無法向后兼容的更改,PEP 387提供了一個合理的方法,該方法在Python 2系列中使用多年,并且今天仍然適用:即如果認為某個功能,會引起很大的問題,那么可以將其標記為棄用,最終將其刪除。

但是,開發和發布過程中,發生的許多其他更改,并不太可能在Python 3系列中被標記為棄用:

? 這里主要強調一下Python包倉庫,這是CPython核心開發團隊和Python Packaging Authority通力協作的成果,而且Python 3.4+捆綁了pip的安裝程序,減少了向標準庫添加模塊的難度,即使你還不確定它們,足夠穩定以適應相對較慢的語言更新周期。

? “臨時API”概念(由PEP 411引入),可以在提供標準的向后兼容性保證之前,允許你設置“過渡期”來獲得更廣泛的回饋,從而有助于庫和API的構建。

? 很多累積下來的遺留行為,在Python 3轉換過程中,得到了確實的解決,現在對Python和標準庫新增功能的要求,也比Python 1.x和Python 2.x時期要嚴格得多。

? “單一來源”的Python 2/3庫和框架,被廣泛接受,極大地鼓勵了在Python 3中使用“棄用功能文檔”,即使這些功能被新的、更好的功能替代。在這些情況下,文檔中設置的棄用通知,會建議新代碼應當使用的方法,但不會產生程序上的棄用警告。這樣一來現有代碼(包括支持Python 2和Python 3的代碼),可以保持不變(相應的代價是:新用戶在面對維護現有代碼庫的任務時,可能需要學習的內容會稍微多一些)。

從英語到所有語言

還有一點值得一提的是,Python 3本來沒打算,像現在這樣具有破壞性。在Python 3中所有無法向后兼容的改變中,許多嚴重阻礙代碼移植的困難,都可以歸結為PEP 3100中的一點上:

? 讓所有字符串都變成Unicode,并且擁有單獨的bytes()類型。新的字符串類型將被稱為'str'。

PEP 3100匯總了Python 3中所有爭議性不大、從而沒有必要單獨建立PEP的改動。這個特殊的變化,被認為無爭議的原因是:因為我們使用Python 2的經驗表明,Web和GUI框架的作者是正確的,即作為應用程序開發人員明智地使用Unicode意味著,確保所有的文本數據,都可以從二進制盡可能地轉換為系統的文本操作,然后在輸出時轉換回二進制。

遺憾的是,Python 2并不鼓勵開發人員,以這種方式編寫程序,這大大模糊了二進制數據和文本之間的界限,并使開發人員很難將兩者區分開,更不用說代碼了。

因此,Web和GUI框架作者,必須告訴他們的Python 2的用戶“使用Unicode文本。否則你就會在處理Unicode輸入時,遇到捉摸不定、難以跟蹤的bug”。

Python 3則不同:它在“二進制”和“文本”之間,做了更大的分離,使得編寫正常的應用程序代碼更加容易,但也使得在那些二進制和文本數據的區別,不那么清晰。

Python對Unicode的支持的這場革命,針對的是更大的關于計算文本操作移植的背景:從只有英文的ASCII(1963年正式定義),到“二進制數據+編碼聲明”模型(包括20世紀80年代后期,引入的C/POSIX語言環境和Windows代碼頁系統),以及最初的16位Unicode標準版本(1991年發布)到相對全面的現代Unicode代碼點系統(1996年首次定義,每隔幾年都有一次最新的主要更新)。

為什么要提這一點?因為改變到“默認使用Unicode”,是Python 3中最具有破壞性的、無法向后兼容的改動,而且與其他(更依賴于具體語言特性的)改動不同,它只是如何表示和操作文本數據這項大范圍的改動中的一小部分。

隨著Python 3轉換清除了一些語言特定的問題,與Python早期相比,新的語言功能的門檻提高了很多,而且沒有任何波及業界的移植的規模,比得上目前正在進行的,從“帶編碼的二進制數據”到用于文本建模的Unicode的切換。

所以我并不覺得,以后會有任何改動,能像Python 3這樣,造成破壞向后兼容、并且需要并行支持期間。相反,我希望我們,能夠在正常的變更管理流程中,適應任何未來的語言演變,任何無法以這種方式處理的提案,都會被拒絕,因為它會給社區和核心開發團隊,帶來高得令人無法接受的成本。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84460
  • Python編程語言

    關注

    1

    文章

    13

    瀏覽量

    4052

原文標題:為什么 Python 4.0 會與 Python 3.0 不同?

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Python 語言發展簡史

    Python是我喜歡的語言,簡潔,優美,容易使用。前兩天,我很激昂的向朋友宣傳Python的好處。“好吧,我承認Python不錯,但它為什么叫Pyt
    發表于 09-28 10:14

    新手如何快速學Python編程語言?

      Python是一門語法簡潔、功能強大、上手簡單的計算機編程語言,根據TIOBE最新排名,Python已超越C#,與Java,C,C++成為全球4大流行語言之一?! ?/div>
    發表于 12-20 16:05

    為何Python運行效率低?python語言入門

    Python是一款優雅的編程語言,在人工智能、云計算、大數據飛速發展的今天,Python受到了社會各界的關注,從國內的阿里、搜狐、知乎、騰訊、網易、土豆、新浪到國外的谷歌、Dropbo
    發表于 02-01 18:47

    python和別的語言比所具備的優勢

    世界上的編程語言有600多種,但真正主流使用的也僅有二三十種,且隨著計算機的發展,新的語言在不斷的誕生,過時的語言也在不斷的被淘汰,因此,IT開發人員應與時俱進學習主流編程
    發表于 04-13 14:57

    Python與其他編程語言有何不同?

    遷移到使用Python編程語言構建的擴展模塊。  其他編程語言不像Python那樣擁有豐富的支持庫。  4. Python快速
    發表于 09-16 15:54

    python適合做什么開發_python未來發展怎么樣

    本文開始介紹了pythonPython優缺點,其次闡述了python可以用來做什么開發,最后分析了Python語言在未來的
    發表于 04-26 16:32 ?8288次閱讀

    2019年機器學習將如繼續發展

    IDC報告顯示,預計機器學習工具和解決方案的企業級采用率將在本十年結束前達到65% - 并且支出將達到460億美元。平均而言,55%的企業CIO已將機器學習視為業務加速的核心優先事項之一。本文重點介紹了2019年機器學習將如繼續發展。
    發表于 10-15 15:47 ?1727次閱讀

    為什么Python是人工智能最好的編程語言Python有什么優勢

    人工智能是未來發展的一大趨勢,在人工智能發展的同時也增大了Python發展空間,都說Python是人工智能時代最好的編程
    發表于 10-23 16:42 ?15次下載

    Python語言發展歷程和特點

    無論是對于廣大學習者還是程序員,簡單就擁有了最大的吸引力。既然都能實現同樣的功能,人們有什么理由不去選擇更加簡單的開發語言呢?例如,在運行Python程序時,只需要簡單地輸入Python代碼后即可運行,而不需要像其他
    的頭像 發表于 05-25 11:00 ?9562次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>語言</b>的<b class='flag-5'>發展</b>歷程和特點

    現在的Python語言有什么優勢存在

    得益于大數據和人工智能技術的發展,目前Python語言的上升趨勢非常明顯,而且隨著產業互聯網時代的到來,未來Python語言的應用范圍會得到
    發表于 01-08 15:37 ?850次閱讀

    Python語言為什么可以得到廣泛的應用

    Python語言目前是IT行業內最為流行的編程語言之一,同時Python也是全場景編程語言之一,目前在Web開發、大數據開發、人工智能開發和
    發表于 01-10 14:55 ?1562次閱讀

    Python并不是弱類型語言

    Python是弱類型?Python并不是弱類型,Python是動態型強類型語言。
    的頭像 發表于 04-21 17:45 ?4849次閱讀
    <b class='flag-5'>Python</b>并不是弱類型<b class='flag-5'>語言</b>

    Python編程語言屬于什么語言

    Python編程語言屬于高級編程語言中的一種。它是一種通用、面向對象、解釋型編程語言Python由Guido van Rossum于198
    的頭像 發表于 11-22 14:31 ?1390次閱讀

    python語言特點有哪些

    Python是一種高級編程語言,由Guido van Rossum于1991年首次發布。它具有許多獨特的特點,這些特點使得Python在軟件開發領域變得非常流行。以下是關于Python
    的頭像 發表于 11-29 14:29 ?1052次閱讀

    面向高效電機控制的無傳感器矢 量控制技術繼續發展

    面向高效電機控制的無傳感器矢 量控制技術繼續發展
    的頭像 發表于 01-04 10:56 ?530次閱讀
    面向高效電機控制的無傳感器矢 量控制技術<b class='flag-5'>繼續發展</b>