"\u003Cdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fe16ee85a87954c19b98d691cd77aa949\" img_width=\"1280\" img_height=\"719\" alt=\"Python三十年技術演變史\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E導語:一切都始於1989年的那個聖誕節,Python的誕生並不算恰逢其時,它崛起充滿了機遇巧合,也有其必然性。三十年間,Python技術不斷更迭,生態逐漸完善,加上互聯網、大數據、以及人工智能這一波波浪潮的推波助瀾,Python漸漸從小衆最終站上了現在的高度。\u003C\u002Fp\u003E\u003Cp\u003E從歷史發展的角度出發,我們才能看清Python崛起的偶然性和必然性。本文將結合技術和產業的發展,全面透析Python的演進之路,幫助讀者理解是什麼造就瞭如今的Python。\u003C\u002Fp\u003E\u003Cblockquote\u003E作者 | 宋天龍,TrueMetrics 合夥人出品 | AI科技大本營(ID:rgznai100)\u003C\u002Fblockquote\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch1 class=\"ql-align-center\"\u003E\u003Cstrong\u003EPython 1.0時代:起源與誕生\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EGuido van Rossum(下面簡稱Guido)是Python語言之父,他於1982年從阿姆斯特丹大學獲得了數學和計算機碩士雙學位,期間他接觸了很多的語言,包括Pascal,C,Fortran等。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在那個計算機資源貧乏的年代,像計算機一樣思考並編程是每個程序員必須面對的事情,這讓他非常苦惱;同時他又非常欣賞shell,shell簡單易編程的特性讓程序員更加專注於設計和邏輯本身,但shell本質上是一個功能的調用,它沒有自己的數據類型,更無法全面調用計算機功能,因此shell也不算是一門“語言”。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E因此,他希望找到一種語言既可以像使用shell一樣簡單,又可以和C語言的功能相媲美。不過這種語言在那個年代並不存在。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E \u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F5f3649aa1884403b91a4b5e869ae76a2\" img_width=\"700\" img_height=\"467\" alt=\"Python三十年技術演變史\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E1989年的聖誕節,Guido開始編寫Python語言的編譯器。Python這個名字來源於他喜歡的電視劇Monty Python’s Flying Circus,而不是表面意義上的“蟒蛇”。他希望這個新的語言,能符合他的理想:介於C和shell之間,功能全面、易學、易用又可拓展。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E1991年,第一個Python編譯器誕生,這標誌着Python的第一個版本正式誕生。它基於C語言,並具備了基礎的類、函數、異常處理等功能特性,同時具備可擴展性。Python語法很多來自C,但又受到ABC語言的強烈影響。例如來源於ABC語言強制縮進的規定本身可以讓Python容易讀,但如果縮進出錯卻會影響編譯和執行。Python本身不以性能爲重,但當確實需要考慮性能時,Python程序員卻可以深入底層來編寫C程序,並編譯爲.so文件引入到Python中使用。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EPython語言的魅力在於讓程序員可以花更多的時間用於思考程序的邏輯,而不是具體的實現細節,這一特性也得到Guido同事的歡迎。他們在反饋使用意見的同時也參與到Python的改進中來,因此最初Guido和一些同事構成了Python的核心團隊,當然,核心決策者還是Guido本人。隨後,Python的使用拓展到研究所之外,並吸引了越來越多的程序員。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E但是,最初Python的使用非常小衆,因爲在那個計算機資源非常有限的年代,大家都傾向於最大化榨取計算機資源並提升運算效率,而Python顯然不是爲此而生。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch1 class=\"ql-align-center\"\u003E\u003Cstrong\u003EPython 2.0時代:崛起\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F4c167003bddf4e468579c9f14e0dd558\" img_width=\"2500\" img_height=\"1825\" alt=\"Python三十年技術演變史\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E最初發布時,Python在設計層面存在一些缺陷,例如以滿足跨語言、跨平臺進行文本轉換、處理的要求的Unicode字符編碼標準在1994年才正式公佈,所以一直以來Python 2及之前的版本對Unicode的支持並不完全。相信大家在使用Python 2版本處理中文時都遇到過各種問題。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E2000年發佈的Python 2.0標誌着Python的框架基本確定。重要框架方向包括:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E簡單明確\u003C\u002Fstrong\u003E。在設計Python\u003Cspan\u003E語言時\u003C\u002Fspan\u003E,開發者傾向於選擇沒有或者很少有歧義的語法。由於這種設計觀念的差異,Python源代碼通常被認爲比Perl具備更好的可讀性,並且能夠支撐大規模的軟件開發。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E面向對象\u003C\u002Fstrong\u003E。任何Python的元素都可以視爲對象,包括數據類型、類、函數、實例化元素等,完全支持繼承、重載關係,這有益於增強代碼的複用性。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E動態類型\u003C\u002Fstrong\u003E。任何對象的數據類型都無需提前定義,拿來即用。即使在之前已經預先定義,後期也可隨時修改。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E膠水特性\u003C\u002Fstrong\u003E。Python本身被設計爲可擴充的,並非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕鬆地使用C、C++、Cython來編寫擴充模塊。例如在Google對於Google Engine使用C++編寫性能要求極高的部分,然後用Python或Java\u002FGo調用相應的模塊。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E可嵌入\u003C\u002Fstrong\u003E。你可以把Python的功能嵌入到C\u002FC++程序中,從而實現Python功能在其他語言中的功能實現。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E生態系統\u003C\u002Fstrong\u003E。Python有強大的標準庫,同時支持第三方庫和包的擴展應用,甚至可以自定義任何庫和包。Pypi(https:\u002F\u002Fpypi.org\u002F)是其第三方庫的倉庫,在這裏你幾乎可以找到任何領域內的功能庫。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E解釋器機制\u003C\u002Fstrong\u003E。Python支持多種解釋器,例如CPython(官方版本,基於C語言開發,也是使用最廣的Python解釋器)、IPython(基於CPython之上的一個交互式解釋器)、PyPy(一個追求執行速度的Python解釋器,採用JIT技術對Python代碼進行動態編譯)、Jython(運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行)、IronPython(和Jython類似,只不過運行在微軟.Net平臺上)。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E1965年,戈登·摩爾提出了著名的摩爾定律,其內容爲:當價格不變時,集成電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,性能也將提升一倍。在隨後超過半個世紀的時間裏,個人計算機的發展日新月異,已經由資源不足向資源過剩轉變。這客觀上爲Python的應用提供了基礎條件——只有在資源過剩的條件下,程序員纔不會過度關注榨取性能。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E隨着Python自身功能的完善以及生態系統的擴展,Python在Web開發、網絡爬蟲、數據分析與數據挖掘、人工智能等應用方面逐漸嶄露頭角。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003EDjango和Flask引領的WEB開發模式\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E2004年,目前最流行的WEB框架Django誕生。2010年,另一個流行的輕量級WEB框架Flask誕生。Django是一個WEB解決方案“全家桶”,其功能大而全,包含了幾乎所有WEB開發相關的組件和功能,它可以大大節省開發者在基礎組件、選型、適配等方面的時間和精力;而Flask只包含基本的配置,默認依賴於兩個外部庫也可以自由替換,給開發者提供最大的自主空間。這兩類完全相反方向上的WEB開發模式,幾乎可以爲所有開發者提供了很好的選型參照物:無論開發者想要一站式還是最大化自主解決方案,Python都能滿足。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E此後,以豆瓣、春雨醫生、知乎、Dropbox、YouTube、CIA(美國中情局)等爲代表的企業和機構都基於Python做網站開發,預示着Python應用到WEB開發領域逐漸成爲一種新興趨勢。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E人人都能勝任的網絡爬蟲\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EPython自帶的標準庫中,urllib、urllib2、requests庫對於簡單網頁的抓取實現非常簡單,即使在面對海量數據抓取需求時,第三方庫Scrapy也能應對自如;再配合正則表達式庫re、網頁代碼解析BeautifulSoup、html和xml解析庫lxml、多線程庫threading等特性,使得Python在應用到網絡爬蟲任務上時,只需要很少的開發量便能迅速完成任務。基於Python簡單易學的特性,幾乎人人都能開發網絡爬蟲。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E比shell更好用的自動化運維工具\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EPython是跨語言和平臺的,幾乎所有Linux系統和MAC系統都自帶Python庫,Windows系統也可以自定義安裝。Python默認的os、sys等庫可實現與操作系統的交互和執行功能,更重要的是Python還能直接執行系統終端命令。因此,使用Python編寫的系統運維和管理腳本在可讀性、性能、代碼重用度、擴展性幾方面都優於普通的shell腳本,在自動化運維方面應用廣泛。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E數據分析與科學計算三劍客\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E2008年發佈的Numpy、scipy和2009年發佈的pandas是數據分析與科學計算的三劍客。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003ENumPy(Numeric Python的簡稱)是Python科學計算的基礎工具包,也是Python做數據計算的關鍵庫之一,同時又是很多第三方庫的依賴庫。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EScipy(Scientific Computing Tools for Python的簡稱)是一組專門解決科學和工程計算不同場景的主題工具包,它提供的主要功能側重於數學、函數等,例如積分和微分方程求解。Pandas(Python Data Analysis Library的簡稱)是一個用於Python數據分析的庫,它的主要作用是進行數據分析和預處理。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EPandas提供用於進行結構化數據分析的二維表格型數據結構DataFrame,類似於R中的數據框,能提供類似於數據庫中的切片、切塊、聚合、選擇子集等精細化操作,爲數據分析提供便捷。另外,Pandas還提供了時間序列的功能,用於金融行業的數據分析。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E除此之外,很多大型公司也都在使用Python完成不同類型的其他工作,其中不乏世界知名公司,如國外的Google、Facebook、NASA 、雅虎、YouTube等,國內的網易、騰訊、搜狐、金山等。例如谷歌在Google Groups、Gmail、Google Maps等項目中將Python用作網絡應用的後端;在Google Cloud Platform中的Google Cloud Storage本地部署環境中,gsutil也在Python 2基礎上開發和應用。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch1 class=\"ql-align-center\"\u003E\u003Cstrong\u003E後Python2與Python3時代:AI讓Python大放異彩\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E \u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Faf2c191e711b4b4183163e439181b8bf\" img_width=\"2048\" img_height=\"1434\" alt=\"Python三十年技術演變史\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E2008年12月,Python 3發佈。Python 3相對於Python 2的早期版本(主要是Python2.6之前)是一個較大的升級,它在設計的時候沒有考慮向下兼容,所以很多早期版本的Python程序無法在Python 3上運行。爲了照顧早期的版本,推出過渡版本2.6——基本使用了Python 2.x的語法和庫,同時考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語法與函數。同時,Python還提供了Python 2到Python 3的Python文件轉換功能,以幫助開發者升級。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E2010年7月發佈了Python 2.x系列的最後一個版本,主版本號爲2.7。大量Python 3的特性被反向遷移到了Python 2.7,2.7版本比2.6版本進步非常多,同時擁有大量Python 3中的特性和庫,並且照顧了原有的Python開發人羣。Python2.7也是當前絕大多數Linux操作系統最新版本的默認Python版本。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E從2008年開始,Python 2與Python 3是並存發展的。但在2018年3月,Guido在郵件列表上宣佈Python 2.7將於2020年1月1日終止支持,這意味着之後Python 2將不再被統一維護,與之對應的是主流第三方庫也不會再提供針對Python 2版本的開發支持。Python 2的時代即將過去。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E這一時期,Python繼續以其獨特魅力吸引更多的開發者加入,但真正讓Python大放異彩的卻是AI(人工智能)的爆發。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EAI並不是一個新生事物,而是從20世紀50年代就開始出現,隨後經過了大概20年的黃金時期,又分別在20世紀70年代和90年代兩次進入寒冬期。從2006年開始,神經網絡、深度學習的出現,讓AI進入爆發期。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在AI領域,Python擁有很多相關庫和框架。其中最著名的是:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003Esklearn\u003C\u002Fstrong\u003E:一個老牌機器學習庫,其neural_network庫可用來做神經網絡訓練。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003EPyTorch\u003C\u002Fstrong\u003E:由Facebook於2016年發佈,它基於曾經非常流行的Torch框架而來,爲深度學習的普及邁出了重要一步,到目前爲止它已經是人們用來做學術研究的首選方案。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003ETensorFlow\u003C\u002Fstrong\u003E:谷歌於2015年研發的第二代人工智能學習系統。藉助谷歌的強大號召力以及在人工智能領域的技術實力,它已經成爲目前企業真實生產環境中最流行的開源AI框架。更重要的是,它也是第一個(應該也是唯一一個)經過真實大規模生產環境(Google)檢驗過的框架。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在互聯網領域,Facebook和Google都是全球IT企業的標杆,具備行業領導力和風向指示意義。他們基於Python開發的AI庫(PyTorch和TensorFlow)已經成爲目前最流行的AI庫,而且“到底選擇PyTorch還是Tensorflow”仍然是一個具有爭議性的話題。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在AI時代,主要應用場景包括:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E計算機視覺\u003C\u002Fstrong\u003E:通過特定的圖片模式訓練,讓計算機理解圖像中的物體甚至內容。在這一領域我們熟悉的場景包括圖像識別、目標識別和跟蹤。例如人臉識別便是圖像識別的典型領域,廣泛應用到企業員工考勤、門店客戶識別、機場等公共領域反恐識別等。2011年,吳恩達創立的谷歌大腦項目,能夠在沒有任何先驗知識的情況下,僅僅通過觀看無標註視頻學習到識別高級別的概念就能知道哪個是貓。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E語音識別\u003C\u002Fstrong\u003E:該過程是計算機將人類的自然語言識別並轉換爲文字的過程,廣泛應用工業、家電、通信、汽車電子、醫療、家庭服務、消費電子產品等各個領域。身邊熟悉的場景例如通過語言對導航、APP、車載設備等做指令輸入,以及電信客服系統中的語音業務查詢和辦理。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E自然語言理解\u003C\u002Fstrong\u003E:自然語言理解是一類任務的總稱,而並非是單一任務。它旨在讓計算機理解人類的語言所表達的表層和深層含義。目前場見的應用場景包括自動問答系統、機器翻譯、信息檢索和過濾、信息抽取等。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E個性化推薦\u003C\u002Fstrong\u003E:個性化推薦是一個相對成熟的領域,但基於深度學習和神經網絡,可以將大量的複雜、抽象特徵的數據預處理工作最大程度的簡化,甚至可以將海量特徵經過簡單處理後便直接丟到模型中便能獲得比例理想的效果。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003E遊戲和競技\u003C\u002Fstrong\u003E:在該領域,很多科技公司用經過訓練後的AI與人類進行對弈。早在20世紀90年代,由IBM開發的“深藍”與卡斯帕羅夫的世紀之戰已經引起了世界的轟動;在2017年AlphaGo又擊敗排名世界圍棋冠軍柯潔,再一次讓世人感受到AI的強大威力。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在不同的領域,Python都能扮演非常重要的角色,因此,在國外的各大榜單中,Python都已經成爲最受歡迎的語言(或至少是之一)。不只在商業領域流行,國內很多地區和教育機構正將Python納入教材之中。比如Python進入山東小學六年級的教材,浙江信息技術教材將放棄VB,改用Python 語言,Python列入全國計算機二級等級考試大綱等。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Ch1 class=\"ql-align-center\"\u003E\u003Cstrong\u003EPython的未來發展\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F798ea91fdd3a432f9c2560c25b0c1d17\" img_width=\"2500\" img_height=\"1875\" alt=\"Python三十年技術演變史\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在Python發展過程中,Guido一直是核心人物,甚至被稱爲“終身仁慈獨裁者”,但在2018年經歷了退出管理層風波之後,他又在2019年以五大指導委員之一的身份重回決策層。這爲Python迎來了新的治理方案:指導委員會模式。這種模式意味着Python的未來將從Guido一人決定變爲5人決定,雖然比很多開源語言仍然有民主化空間(例如PHP的改進由社區投票決定),但也算是一種從專制到民主的進步。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E有關Python的每個提升計劃,都是在PEP(Python Enhancement Proposal)列表中——每個版本新特性和變化都通過PEP提案經過社區決策層討論、投票決議,最終纔有我們看到的功能。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E目前,Python的最新穩定的主版本是3.7,Python 3.8也已經有了預覽版,大概在2023年左右Python 4便會問世。在之後的時間裏,Python會如何發展?我們可以從Python軟件基金會的董事會成員、CPython的核心開發人員Nick Coghlan的信息中略知一二:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E首先\u003C\u002Fstrong\u003E,Python的PEP流程和制度沒有任何變化,通過增加新模塊和功能來增強的基礎能力。隨着Python 2在2020年不再維護,社區在Python 3的資源和投入會相應增加。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E其次\u003C\u002Fstrong\u003E,不同解釋器的實現和功能擴展還將繼續增強,方向包括PyPy關於JIT編譯器生成和軟件事務內存的嘗試,以及科學和數據分析社區,對面向數組編程的探索等。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E再次\u003C\u002Fstrong\u003E,嵌入式應用的增強,核心是與其他虛擬機運行時(如JVM和CLR)的集成和改進,尤其是在教育領域取得的進展,可能會讓Python作爲更受歡迎的嵌入式腳本語言,在更大的應用程序中運行。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E \u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E最後\u003C\u002Fstrong\u003E,對於爲了兼容和維持Python 2的部分功能而存在於Python 3中的原有代碼,在後續版本中應該會逐步優化甚至去掉。而對於其他更改,則會根據情況棄用、提出警告、逐步替代以及保留。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cem\u003E(*本文爲 AI科技大本營約稿,轉載請聯繫微信 1092722531)\u003C\u002Fem\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6716361956858528270
相關文章