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