Python 為何能成最強程式語言?!

2021-03-01 CSDN

「我累了,需要很長時間的休息。」

2018 年 7 月,在 PEP 572(Python 改進提案) 被接受後的第三天,由於仍然不斷面對著別人的質疑,反饋意見不斷襲來,讓這位一手締造新的程式語言帝國的圖靈獎獲得者 Guido van Rossum 感到疲憊不堪,老頭兒已經 62 歲,累了。

從 Guido van Rossum 的郵件內容可以看出,他已經厭倦了運營該組織。他寫道,「我不想再為 PEP(Python 改進提案 PEP 572)勞神了,而且儘管我做著艱難的決定,卻發現仍然有很多人不滿意。」

從 Python 最初的締造者,到被社區質疑宣布「退位」, Guido 都保持著他程序人生的那份執拗,當然還有他的「仁慈」。

與其他程式語言的創造者一樣,Guido van Rossum 也有著屬於自己的技術高光時刻。他出生在荷蘭,1982 年在阿姆斯特丹大學獲得數學和計算機科學碩士學位,不過,他最愛的還是與編程相關的活兒。

那時,使用最廣泛的語言是 C 語言、Pascal、彙編語言,但這些語言是為了讓機器能更快運行,對計算機硬體的「壓榨」太過飽和。

作為程式設計師的 Guido 當時很是困惑,用 C 語言來實現一個功能完全沒有問題,但效率太低,編寫過程需要耗費大量的時間 。使用 Shell 也可以,許多 C 語言下上百行的程序,在 Shell 下只用幾行就可以完成。Bourne Shell 作為 UNIX 系統的解釋器已經長期存在,它能將 UNIX 的許多功能連接在一起,實現系統運維、文件處理等任務,不過在處理像數據運算、系統調用這些任務時卻非常麻煩。

那麼有沒有一種語言可以像 C 語言那樣能夠全面掌控計算機的資源,同時又能像 Shell 語言那樣簡單易用呢?Guido 這樣想——也許其他很多程式設計師都這樣想過。

他考慮了荷蘭 CWI (Centrum Wiskunde & Informatica, 數學和計算機研究所)開發的 ABC 語言,當時他就在那裡參與設計了 ABC 語言,可以讓語言簡潔易用,易於學習,以教學為目的。

不幸的是,ABC 語言沒有成功,Guido 後來將其歸咎於非開放的原因。而當有機會重新設計新的程式語言時,Guido 不會第二次掉進這個坑。

1989 年,為了打發無所事事的聖誕節假期,Guido 開始寫 Python 語言的編譯/解釋器,Python這個名字來自他所喜歡的電視劇 Monty Python's Flying Circus (一部情景幽默劇)。兩年後,Python 第一個版本終於問世,Guido 用 C 語言寫了編譯器,並能調用 C 庫。它還包括類、函數、異常處理、包含表和詞典在內的核心數據類型以及模塊為基礎的拓展系統。

由於 Python 的編寫吸收了 C 和 ABC 語言的優點,比如用 def 定義函數、強制縮進,雖然對經常使用某一類語言的人來說,在轉向  Python 這種「雜交」的新語言邏輯時,總會有點彆扭,但在適應之後你的感受會完全不同,Guido 認為沒有必要糾結於此,而這只是其中一部分。

事實證明,Python 作為結合了解釋性、編譯性、互動性和面向對象的腳本語言,讓很多程式設計師得到了解放,隨即流行起來,吸引了大量程式設計師開始改進這門語言,從此,他們又多了一把開啟計算機世界大門的鑰匙。

(2018 年 IEEE 頂級程式語言交互排行榜和 2017 年排行榜前十名對比圖,在 IEEE 評選的多項指標中 Python 位居榜首)

自那以後,隨著計算機性能的提高,Python 開始廣受歡迎,它成熟、對象庫多,適用於腳本操作和數據分析。而在如今在人工智慧時代,Python 在所有程式語言中獨領風騷。

Python 有這樣的成績當然也離不開 Python 開發者,他們來自世界各個角落,為其發展添磚加瓦,如 Python 標準庫中的正則表達參考了 Perl,而 lambda, map, filter, reduce 函數則參考了 Lisp。開發者們還為社區建立了 newsgroup,網站(python.org),以及相關基金 (Python Software Foundation)。當然,能做到這些離不開 Python 之父一開始就倡導的開放原則。

如今,隨著大數據、AI 技術蓬勃發展的助力,Python 一躍成為了這個時代最受歡迎的程式語言之一,而且與  Python 相關的應用已遍地開花。

細數 Python 主要的應用方向,有自動化運維、WEB 開發、網絡爬蟲、數據分析、雲計算、人工智慧等,Python 在這些應用中是首選程式語言。

在 Python 社區,Guido 被程式設計師們稱作「仁慈的獨裁者(BDFL)」,獨裁者現已退居二線,但他的 Python 一路高歌近 30 年,生命力卻愈加強大,其前沿應用也不斷得到拓展。

語言簡潔,學習易上手,Python 語言因此廣受程式設計師的追捧,而其在就業、薪資待遇上也沒有讓人失望。去年,職友集通過分析來自全國的 12809 份樣例資料,顯示全國 Python 工程師的平均月資能夠達到 19160 元,其中 20 - 30K 的工程師數量更是超過了四成。對程式設計師而言,Python 可能是一門投入小,但見效快、回報還高的程式語言。

如果你想了解 Python 前沿應用和技術實踐,作為技術潮流的推動者,CSDN 為所有感興趣的開發者提供了一個探討和學習 Python 的契機。

4 月 13 日-4 月 14 日,CSDN 將在北京主辦「Python 開發者日( 2019 )」,匯聚十餘位來自阿里巴巴、IBM、英偉達等國內外一線科技公司的Python 技術專家,還有數百位來自各行業領域的 Python 開發者。

大會議題除了運維、開發等大家熟知的 Python 應用領域外,還將重點圍繞人工智慧、雲計算、大數據等新領域,為與會者分享 Python 在不同場景下的的應用優勢和實戰經驗。此外,針對不同層次的開發者,大會還安排了深度培訓實操環節,講師手把手教你輕鬆實現打怪升級。

目前購票通道已開啟,早鳥票限量發售中,3 月 15 日之前可享受優惠價 299 元(售完即止)。歡迎點擊閱讀原文報名參加。


演講嘉賓(已確定)

魏貞原

演講主題:Python 在機器學習領域的應用與實踐

講師介紹:IBM 高級項目經理,《機器學習 — Python 實踐》與《深度學習 — 基於 Keras 的 Python 實踐》作者,世界500強企業的數據分析團隊 Leader,主要負責銀行客戶的複雜系統開發,在 Python 的 Web 開發、數據分析、機器學習與深度學習方面有多年的實踐經驗。

張校捷

演講主題:基於 PyTorch 實現 NLP 的深度學習技術及應用

講師介紹:英偉達(NVIDIA)資深深度學習架構工程師,負責基於 CUDA 的深度學習框架的優化。目前主要使用的技術棧是作為深度學習框架後端的 C/C++/CUDA,以及深度學習框架前端的 Python,對主流的深度學習框架如 PyTorch 和 TensorFlow 比較熟悉,並對其在計算機視覺(CV)和自然語言處理(NLP)方面的具體應用有一定了解。

 

秦續業

演講主題:用 Mars 來並行和分布式執行 Numpy

講師介紹:阿里巴巴技術專家,Python 愛好者。致力於將 Pyhton 生態和大數據計算結合,編寫並開源了Mars 框架。Mars 是一個基於張量的超大規模的統一計算框架,支持使用 Numpy 接口對超大、多維數據進行計算。目前,正在嘗試使框架兼容 Pandas DataFrame, 以支持表類型數據計算。

   

宋天龍

演講主題:Python 在 Google BigQuery Machine Learning 中的應用

講師介紹:TrueMetrics 合伙人,前 Webtrekk 中國區技術和諮詢負責人,前國美在線數據分析經理, 資深數據分析領域專家。在電子商務、零售、銀行、保險等多個行業擁有豐富的數據項目工作經驗,參與過企業級項目包括流量數據倉庫建設、DMP、網站流量系統建設、企業 BI、RTB 和 DSP、決策支持平臺、站內個性化推薦、站外個性化營銷等大型數據工作項目。著有《Python 數據分析與數據化運營》、《企業大數據系統構建實戰:技術、架構、實施與應用》、《網站數據挖掘與分析:系統方法與商業實踐》。

王威

講師介紹:平安科技智能引擎部高級算法研究員,中國科學院數學與系統科學研究院數學研究所博士,畢業後從事人工智慧算法尤其是計算機視覺算法的相關研究,直接針對業務需求實現相關算法解決業務痛點,接觸的業務主要包括各類發票和證件的檢測、識別以及信息提取,訓練出來的通用識別模型達到業界領先水平,使用在平安科技的各項需要文字識別的業務場景中。目前完成的項目中,使用的主要語言就是 Python。

除上述演講嘉賓外,還有博世(中國)投資有限公司大數據分析師王紅星,天雲大數據算法團隊總監譚可華已確認參會演講。

更多重磅嘉賓正在確認中,敬請期待...

相關焦點

  • 計算機程式語言 | Python 語言淺析
    Python 已經成為最受歡迎的程序設計語言之一。2011年1月,它被TIOBE程式語言排行榜評為2010年度語言。自從2004年以後,python的使用率呈線性增長。由於Python語言的簡潔性、易讀性以及可擴展性,在國外用Python做科學計算的研究機構日益增多,一些知名大學已經採用Python來教授程序設計課程。
  • Python究竟是一門什麼樣的程式語言?
    可以用三句話概括python的獨特魅力:為速度而生——python入門快至一小時,開發速度堪稱非凡;優雅解決問題——python語法簡單,不會再因繁瑣結構分心;充滿可能性——上能建google,下能開發腳本,python實現所有可能性。
  • 利用Python進行遊戲腳本編程,不愧是最強的腳本語言!
    缺乏自省能力 [TR2: introspection]:C++ 有自己的方式知道一個類中包含哪些成員,但是這種方式需要編寫過多的加載和存儲對象的代碼,而在一些腳本語言中這只需調用一個內建函數就可以完成。C++ 是靜態的,而腳本語言是動態的。簡單地說,C++ 的程序運行地很快,但是腳本語言能讓你編碼更快。所以,C++ 應該只用在你希望優化運行時性能的地方。
  • 數據領域最強程式語言Python和R要合作了!
    儘管這兩種程式語言目前都是數據分析社區的佼佼者,但是它們仍然深陷「哪一種才是數據科學家的首選程式語言」的爭論之中。但是各位,從今往後,你們可以不用再糾結這個問題了。在介紹合作相關事宜之前,我們照例先回顧一下這兩種程式語言的前世今生,以及他們在編程江湖當中的恩怨情仇。
  • PHP vs Ruby vs Python:三種程式語言誰最強?
    就跟所有腳本語言一樣,Python代碼酷似偽代碼。這種程式語言具有優雅的設計和語法規則,這讓它即便在擁有多個程式設計師的開發團隊中也具有相當強的可讀性。它支持構建電腦程式的結構和元素的多種方法,包括面向對象編程和函數式編程。
  • Python程式語言主要應用領域介紹
    Python在系統編程領域的作用:Python語言在作業系統服務的內置接口,被稱為Shell 工具。Python程序可以搜索文件和目錄樹、可以運行其他的應有程序或是用進程或線程進行並行處理... Python標準庫綁定了POSIX 以及其他常規作業系統工具。
  • Verilog到底能不能算是程式語言?
    希望大家看完文章多點「在看」和「點讚」,喜歡的話也點個分享這樣芯司機的推送才能繼續出現在你的訂閱列表裡才能繼續跟大家分享集成電路設計行業的優質內容啦~知乎上刷到一個問題,問性能最強的程式語言是什麼再來看Verilog,符合程式語言描述的語法和語義,然後通過綜合(編譯)生成bit流文件,下載到FPGA上,FPGA根據這個bit流文件,然後將內部的LUT、D觸發器等基本單元任意組合實現組合電路和時序電路。最終使FPGA能實現各種硬體功能。請問這樣還不算程式語言算什麼?這是我方的第一個論點。
  • 程式語言性能實測,Go 比 Python 更勝一籌?
    作者 | Pawel Dziubałka, Sebastian Karasiewicz出品 | AI科技大本營(ID:rgznai100)網際網路上有非常多的精彩代碼,它們成了構建各種基礎設施的基礎。編寫出色代碼的基礎取決於開發人員的技能及其選擇的語言。這不可避免地導致開發人員之間的衝突,而衝突不僅關乎技能水平,而且主要關乎他們偏愛的語言(甚至有可能發生史詩般衝突)。當你將兩種出色的程式語言(例如Golang(Go)和Python)放在一起時,最有可能出現這種情況。現在讓我們退後一步,消除個人偏見和偏好,單純地從優點和功能的角度評估這兩種語言,熟練地平整好比賽場地。
  • python+C、C++混合編程的應用
    NS3的選擇是使用C/C++來模擬核心部件和協議,用python來建模和擴展。這篇文章介紹python和c/c++三種混合編程的方法,並對性能加以分析。混合編程的原理首先要說一下python只是一個語言規範,實際上python有很多實現:CPython是標準Python,是由C編寫的,python腳本被編譯成CPython字節碼,然後由虛擬機解釋執行,垃圾回收使用引用計數,我們談與C/C++混合編程實際指的是基於CPython解釋上的。
  • 所有的程式語言先會編譯成C,再編譯成彙編,才能在機器上運行?
    首先這種認識是不正確的,所有的程式語言要轉化成機器語言然後才去運行,肯定不會轉化成C語言去運行,因為C語言還是要匯總成機器語言去運行。
  • 2020 年 11 月程式語言排行榜,Python 超越 Java ?
    TIOBE 2020 年 11 月份的程式語言排行榜已經公布,官方的標題是:Python 勢如破竹,超越 Java。/python-tutorial.html**Python3.x 教程:**https://www.runoob.com/python3/python3-tutorial.html
  • 為什麼 Python 不是未來的程式語言?
    Python 現在如此火爆,已發展成為一種非常通用的語言,無論是從入門級選手到專業技術數據挖掘、科學計算、圖像處理、人工智慧,Python 都可以勝任。它會是未來的程式語言嗎?它是完美無缺的程式語言嗎?有人發出了不同的聲音。此前,InfoQ 中文站曾編譯過相關文章,今天,我們翻譯並分享了 Rhea Moutafis 對 Python 的看法,權當一家之言吧!
  • Python、Java、C#、Perl 創始人聚首,程式語言要變天?
    與Guido van Rossum的觀點相似,他進一步補充說,在設計一種程式語言的時候,無論你做出怎樣的決定,都必須堅持到底。在設計程式語言的時候,你需要謹慎地決定「不」將哪些東西引入到這種程式語言中。通常,人們會向你提出他們的建議,但你無法真正改變程式語言的本質。雖然你無法真正改變語言的基本性質,但是你可以進行擴展。基本上你有兩個選擇:要麼堅持語言的本質,要麼開發一個新的程式語言。
  • Python—程序語言入門
    主要教法     講授演示法+上機操作   教學過程一、複習鞏固1、什麼是編程2、Python--我們和計算機溝通的語言所想要表達的意思——>編程軟體翻譯成二進位——>計算機接收並執行常用、最流行的幾種程序語言:C、C++、c#、Java 、VB、python
  • Python 腳本語言
    Python是解釋性語言,代碼在執行時會一行一行的翻譯成CPU能理解的機器碼。如:在Windows上寫Python程序,放在Linux上也是能運行的。  Python是一個面向對象的語言,在Python裡面一切皆對象。  -- 腳本語言  定義:為了縮短傳統的 <編寫--編譯--連結--運行> 過程而創建的計算機語言。
  • python現在正式成為第二流行的程式語言
    來自:https://techdator.net/python-is-now-officially-the-second-most-popular-programming-language
  • 量子程式語言格局
    類似於經典計算機,量子計算機也需要一種「語言」來與其交流,這個「語言」就是經常聽到的量子程式語言。程式語言通過發送指令並從量子計算機接收輸出,以此達到與量子計算機交流的目的。編程有不同的級別:從向計算機提供特定指令的彙編語言(也稱為量子機器指令集)到已經可以進行底層編程量子算法的高級語言。為了對量子程式語言有一個基本的了解,接下來,將引入一些特定的概念。
  • 程式語言趨勢排行榜
    2018年12月的TIOBE程式語言排行榜已經出爐,意料之中的是Python重回前三,Java和C仍然保持很好的勢頭。
  • Rust FFI 編程 - 其它語言調用 Rust 代碼 - Python
    與此同時,使用 Rust 語言對已有產品和工具進行性能優化或安全性提升,以及開發其它語言的擴展,這樣的案例也越來越多。像被大家廣泛使用的 curl 工具,其開發者 Daniel Stenberg 已採用 Rust 實現的 HTTP 協議庫 hyper 來提供內存安全的 curl。
  • Python3 (1) Python語言簡介
    Python簡介Python是一種易於學習的程式語言。