

就程式語言面言,BASIC(“Beginners' All-purpose Symbolic Instruction Code”,即初學者通用符號指令程式碼)並不是我今天會選擇的語言。
當然,在它最初於上世紀 60 年代誕生時,行號和單字元識別符號確實是一種進步。
可到了它的全盛時期(我主觀認為是在 70 年代末到 80 年代初),開發者已經有了更好的選擇,例如 Pascal、Lisp、Forth,甚至是 C。
然而,BASIC 卻無處不在!它成為了許多老式計算機的預設介面,比如 Commodore 64。為什麼會這樣呢?我認為(雖然沒有確鑿證據),這是因為 BASIC 的設計目標是讓任何人都能使用——而不僅僅是那些經驗豐富的程式設計師。
如今,有一種不同的程式語言,有一種語言以歷史包袱繁重卻深受歡迎而聞名,尤其是在那些不認為自己是程式設計師的人群中。
這門語言就是 Python——而 Python 就是現代的 BASIC。
回顧 BASIC 的歷史
起源背景
BASIC 由達特茅斯學院(Dartmouth College)的約翰·G·克門尼(John G. Kemeny)和托馬斯·E·庫爾茨(Thomas E. Kurtz)於 1963 年創造(參見《托馬斯·E·庫爾茨紀念文》。
如果你對其歷史感興趣,可以收聽《計算之誕生》播客中有一集關於 BASIC 的內容,這是一檔非常精彩的播客節目。
Commodore BASIC
我與 BASIC 的故事始於我使用的第一臺電腦——Commodore 64。那臺計算機直接啟動進入 BASIC 環境。當時我沒有意識到,但要執行程式,必須輸入 BASIC 程式碼。換句話說,每個使用者其實都是“隱藏的程式設計師”!我不記得寫過比 10 PRINT "HAHA"; 20 GOTO 10 更復雜的程式,但我至少學會了命令和引號的用法。
QBasic
後來,我決定學習如何讓計算機“為我所用”,所以必須學習程式設計。幸運的是,我的 MS-DOS 計算機自帶了一個令人驚歎、功能齊全的開發環境——QBasic。沒錯,BASIC(特別是 QBasic)就是我嘗試學習的第一種程式語言。儘管那時我尚未接觸到子程式,但至少掌握了條件語句、迴圈和陣列的基礎知識。
無論如何,BASIC完成了它的使命——它讓我這樣一個非程式設計師,學會了編寫一些簡單的程式,而沒有感到絕望並從此放棄計算機。我想,我算是 BASIC 的一個成功案例吧!
題外話:我最近找到了一盒老式軟盤,其中有一張寫著我名字的“雙密度”軟盤,裡面存有我 1997 年左右用 QBasic 編寫的多個程式。這些程式碼……質量並不怎麼樣,畢竟當時我還不知道子程式的存在。
聊回 Python
優點與缺點
說實話,我並不是很喜歡 Python。雖然 Python 有著基於縮排的“優雅”程式碼塊結構,但我個人覺得其語法並不美觀(比如格式化字串、星號運算子的過載、條件位於中間的三元運算子等等)。
此外,Python 在版本更新時打破相容性的頻率也超出了我的預期(甚至容忍度)。而且,儘管 Python 的包生態系統非常廣泛,但也因此帶來了我對供應鏈的擔憂。
然而,儘管我有這些抱怨,Python 確實有許多吸引人的地方:
● 幾乎無處不在。
● 自帶“電池”,即一個功能豐富的標準庫。
● 簡單易用(至少對於日常使用來說是這樣)。
Python 遠非完美,但在很多情況下,它已經足夠好了。
為什麼說 Python 是新的 BASIC?
那麼,為什麼說 Python 是新的 BASIC 呢?答案很簡單:因為 Python 已經成為非程式設計師群體首選的程式語言。它已經達到了“臨界質量”(critical mass),可以說 Python 已經贏得了勝利!
當然,這更多隻是一種觀察而不是原因。實際上,我並不清楚為何人們最初傾向於選擇 Python,但如果要我猜,可能是以下幾點的綜合作用:
● Python 出現的時候,世界正急需一種比 Perl 更美觀、更不容易出錯的指令碼語言。
● Python使用縮排來代替大括號來定義程式碼塊,這一點被大眾認為是“優雅”的——雖然我不這麼認為,但既然我使用 Lisp,顯然我是個異類。
● Python 的標準庫中通常包含了你所需要的一切。
● Python對數學友好,因此在物理學、金融等領域研究中站穩了腳跟,從而拓寬了它的生態系統和影響力。
● Python 聰明地借鑑了更復雜語言的便捷功能,同時仍保持了自身的相對簡單性。
● Python 從未被某個訴訟纏身的大公司所壟斷。
換句話說,這可能是:巧妙的設計、社群管理和偶然性的結合。
證明 Python 統治地位的鐵證
儘管我成年後有意避開了 Python,但最近我還是向它妥協了——我用 Python 寫了一個個人工具程式。原因很簡單:我知道 Python 擁有我需要的一切,而且我相信 Python 的生態系統已足夠穩固,能讓我寫的程式在未來很長時間內都能執行。
所以,如果連我這樣一個討厭 Python 的人都預設使用 Python,那麼我認為:Python 就像曾經的 BASIC 一樣,已經佔領了世界。
最後,我想問大家一句:Python 的統治還會持續多久?
編輯:萬能的大雄 參考:https://log.schemescape.com/posts/programming-languages/python-as-a-modern-basic.html
相關閱讀: