大數據文摘出品
作者:曹培信
21世紀是編程的時代,幾乎人類所做的一切,但凡跟網際網路沾點邊,都可能涉及到計算機編程,後臺的程序跑出的結果通過大大小小的屏幕呈現在我們面前,人們已經覺得這是理所當然的。
於是有的人就認為,在不遠的未來,編程是人人必備的技能。今年11月15日,年過半百的SOHO中國董事長潘石屹在微博上宣布,正式開始學習Python。
但是世界上有99.7%的人不會編程,如果你屬於其中一個,那麼你估計會覺得程序就像魔法一樣,正如一位科幻小說作家寫道: 「任何足夠先進的技術看起來都像是魔法。」
當然,程序並非魔法,然而,它既難懂又複雜,現在科技公司的代碼基數以百萬行作為單位,無論你在手機上想實現什麼功能,程式設計師第一個想到的就是,這個代碼該怎麼寫?學會編程在這個社會似乎已經如此重要,以至於少兒編程都已經成了培訓機構趨之若鶩的新「藍海」。
但是四、五歲的小孩真的有必要學編程嗎?或者說你已經工作了大半輩子、年過半百了,還有必要像潘石屹一樣去學python嗎?
Python之父Guido van Rossum最近接受了一次訪談,在訪談中他表示:「並非每個人都需要知道(計算機)裡面發生了什麼。」
Python誕生的初衷:讓程序化繁為簡
我們可以回顧一下python的誕生,python是以蒙提 · 派森(Monty Python)的超現實喜劇片命名的,20世紀80年代末,Guido Van Rossum為荷蘭國家數學和計算機科學研究中心Centrum Wiskunde&Informatica(CWI)開發分布式系統。因為當時的程式語言存在缺陷,他決定創建一種新的語言—— 一種更易於使用又功能強大的語言。
「我的初衷就想著,好吧,為什麼我不開發一種自己的語言,我可以利用現有的ABC語言,但將開發規模從需要三年完成的大項目縮小到自己可以在三個月內完成的小項目,於是python誕生了。」Van Rossum說到。
讓程序化繁為簡是python背後哲學的核心,python是一個直譯語言而不是編譯語言,這意味著程式設計師可以立即得到他們正在編寫的代碼的反饋,而不需要在每次修改後花時間重新編譯它。
Python是如此的簡潔,以至於Van Rossum說:「在python中,你鍵入的每個符號都是必需的。」
儘管JavaScript在全球25億部Android手機上運行著,但是對於通用編程和教育,python已經成為默認標準。
「在python 中,有一大堆常見的編程任務是很容易的,」 Van Rossum 說。 「對於那些還不是程式設計師的人來說,想成為一名程式設計師,python這樣的語言可以讓他們更容易達成目標。」 事實上,許多院校的計算機科學專業正在從Java轉向python,因為對於初學者來說,掌握python要容易得多。
起初的想法是讓每個人都會編程
在發明python前後很長一段時間裡,Guido van Rossum堅持的想法是要讓每個人都會編程,所以他要將語言設計的更加簡潔和易懂。
這也是Guido van Rossum發明python的出發點之一,將程式設計師的時間成本在語言中進行考慮,這使得python在傳播的過程中流露出一種社會哲學。
Van Rossum在和別人談論python時非常支持一個觀點,那就是多花一點時間,讓你的代碼在將來更容易被別人理解。
通過高質量的工作來表達你對他人和他們時間的尊重,這是Van Rossum默默地在世界上傳播的一種精神。「你編寫代碼主要是為了與其他程式設計師交流,在一定程度上,也是為了將你的意志強加給計算機。」他說。
Van Rossum在20年前發起了一個短暫的項目——CP4E (Computer Programming for Everybody,每個人的計算機編程),如今這個目標伴隨著python的傳播產生的已經幾乎達到了。
「我通常不是一個非常有遠見的思想家,人們總是問我,python 的下一步是什麼,我從來不知道,但我那時候似乎戴上了最有遠見的帽子——認為每個人都應該學習編程。」 個人計算機已經存在了20年,但它們大多數只是被當成美化了的打字機和計算器。
Van Rossum問道: 「這些人都有電腦,卻很少有人學習編程,這難道不瘋狂嗎? 」
從那以後,他一直致力於通過python的改進使編程更容易學習和更容易上手,現在是3.7版本,python也成為了世界上最流行和使用人數最多的幾種語言之一。
「計算機只有有用的東西,並非每個人都要知道裡面發生了什麼」
儘管Van Rossum仍然認為編程是非常有價值的技能,比如解決問題、遵循目標的方向、理解方向的含義等等,但是他也發現,「有些編程入門對孩子們來說很有趣,但並不是所有的孩子都覺得有趣,我不認為應該把它作為課程的必修部分。」
與此同時,由於軟體的發展,尤其是網際網路軟體的發展,人們對計算機編程的需求也減少了,這些軟體可以讓你直觀地完成過去需要編程才能完成的工作。
「我不太確定這個項目是否還需要繼續了,」 Van Rossum 在談到CP4E時說, 「我認為計算機現在已經做到了這一點,計算機只是有用的東西,不是每個人都需要知道裡面發生了什麼。」
Python正成為業餘人員的最愛
儘管Van Rossum以及放棄了CP4E這個項目,但是python本身正在為很多非專業編程的人員提供了編程的機會。
越來越多的人在各種領域使用python,Van Rossum 說:「目前關於python意外成功的流行理論認為,在某種程度上,python已經進入了數據科學、機器學習和一般的科學數據處理領域,對每個人來說,像他們的同事和競爭對手一樣使用相同的語言而不是嘗試不同的東西,會顯得相對容易一些。」 儘管一開始它只是專業程式設計師的工具,Van Rossum 說,「 python 現在也是業餘愛好者的語言,我的意思是這也是最好的方式。」
一個成功的開源軟體項目,比如python,對於初學者來說必須易於學習,這個python做到了;但是對於更高級的用戶想要解決的現實世界的問題,也必須有實際的應用。
對於初學者來說,都希望事情簡單,所以他們所有的大腦都用來學習編程環境的複雜性,而對於高級用戶來說,他們更需要能幫助他們應付一些相互聯繫的抽象功能的複雜性。
「如果你用python編寫一個原型,然後讓它工作,通常這不是很難的事情,」 Van Rossum 說,「然後你可以扔掉第一次寫的程序,根據你所學到的東西再寫一次同樣的東西,你仍然可以用python編寫,但第二個版本會比第一個版本好得多。」
因此,python長久的吸引力還來自於這可以從頭開始的樂觀。 「如果你在編寫和調試代碼方面投入了更多的時間,那麼你就不會那麼敢於拋棄一切重新開始。」 Van Rossum說。
從剛開始想讓每個人都學會編程,到後來認識到並非所有人都要學編程,Van Rossum自己也沒預料到python最終卻成為了業餘愛好者的最愛,也就是說,既不是人人都會,也不拒人於千裡之外,對不想學的人來說,當然可以不學,而對於想嘗試的人來說,用python入門則再好不過。
在訪談最後提及他的30年python之旅的感悟,Van Rossum也表示:「你不會總是得到你最初所追求的結果,但也許你得到的結果是一樣好的、甚至更好。」