Python 簡史

Python 之父與版本分歧
Python 之父與版本分歧

 

Python 從創立之初的沒沒無名,至今被譽為「初學者最佳語言」,在 Python 社群背後默默貢獻的「鄉民」們居功厥偉!以致於不論網頁程式設計、手機程式設計、遊戲程式設計、自動控制程式…等各行各業,它都可以佔有一席之地。在此,我們就來說說 Python 的簡史,以及它赫赫有名的「版本分歧」事件。讓 Python 的初心者,也能跟老手侃侃而談 Python 當年的風花雪月。

黎明至茁壯:Python 1.0 ~ Python 2.6

Python 是在 1989 年 12 月,由一位荷蘭人 Guido van Rossum 製作。一直到 1991 年 2 月,他把 Python 0.9 版發佈在 alt.sources 這個新聞論壇,並開始廣為人知。接著於 1994 年 1 月,發表 Python 1.0 正式版,同年成立 comp.lang.python 專屬討論區,奠定了 Python 蓬勃發展的第一步。


2000 年 10 月,Python 進入 2.0 。除了新增一些語法,及加強記憶體管理功能外,語法與 Python 1.x 沒有太大差異。隨後為了因應各界對 Python 語言的殷殷期待,開發小組一直猛加新功能到 Python 語法裡。從 Python 2.1, 2.2, 2.3…一直到 2.6 ,Python 已經變得相當「臃腫」了。許多前後時間增添的語法,不僅重複,而且繁雜矛盾,令初學者望之卻步。如何把 Python 「減肥」,去蕪存菁,當時變成迫在眉睫的一等大事。

合久必分:Python 2.6 vs. Python 3.0

於是,在 2008 年 12 月,Python 開發小組投下一顆震撼彈:Python 3.0 釋出,而且語法與 Python 2.6 大大不相容!以前用 Python 2.6 寫的程式,若要在新的 Python 3.0 平台跑,幾乎要打掉重練。Python 開發小組在想不出更好的瘦身方法之下,忍痛廢掉 Python 2.x 架構重做。這也導致目前 2.x 與 3.x 出現所謂「Python 斷層」、程式碼無法互為引用的窘境。


也因此,老練的 Python 程式設計師,在拿到一段原始碼後,一定會問個問題:「這個程式是用 Python 2 寫的?還是 Python 3?」因為 Python 2 與 Python 3 的語法差異,已經大到不全面修改,無法互相使用的地步!如果您初學 Python,拿到一段原始碼,也建議您確認一下這段 Python 程式是用 2.x 還是 3.x 語法寫成的比較好。


在一些死守 Python 2.x 語法的程式師強烈要求下,開發小組釋出 Python 2.7。除了修正 2.6 的一些問題外,盡量不添加新功能,好讓使用 Python 2.6 撰寫的程式,能有個穩定的環境來執行。但在 2014 年 11 月,開發小組宣布「不會有 Python 2.8」,並且「將於 2020 年,終止 Python 2.x 這條路線的支援」。這無疑是敲響 Python 2.x 的喪鐘!所以 Python 2.7,可以說是 Python 2.x 的「安寧病房」,這個分支只剩下不到幾年的壽命了。


那初學者該學 Python 2 還是 Python 3 呢?如果您現在才要開始學 Python,請直接學習 Python 3.x。除非您被要求維護 Python 2.x 的舊程式碼,否則購買相關書籍時,請確認購買到的是討論 Python 3.x 語法的書。若您無法確定,就直接買其他本。Python 好書不少,不用冒險去買一本可能用不到的書籍。

Python 編年史

為了讓您瞭解 Python 簡單的歷史,以下條列附上各版本號碼,與釋出時間,供讀者參考:


  • Python 1.0(1994/01)
    • Python 1.5(1997/12/31)
    • Python 1.6(2000/09/05)
  • Python 2.0(2000/10/16)
    • Python 2.1(2001/04/17)
    • Python 2.2(2001/12/21)
    • Python 2.3(2003/07/29)
    • Python 2.4(2004/11/30)
    • Python 2.5(2006/09/19)
    • Python 2.6(2008/10/01)
    • Python 2.7(2010/07/03)
  • Python 3.0(2008/12/03)
    • Python 3.1(2009/06/27)
    • Python 3.2(2011/02/20)
    • Python 3.3(2012/09/29)
    • Python 3.4(2014/03/16)
    • Python 3.5(2015/09/13)
    • Python 3.6(2016/12/23)


參考資料:維基百科「History of Python」詞條

 

希望藉由這個小節的介紹,能讓您瞭解 Python 有 2.x 與 3.x 語法上的區別,以及決定該學習哪個版本的 Python。


本文經授權轉載自《Python 簡史》,非經原作者同意不得擷取部分或全部轉載。