大家一定看膩了諸如Python簡單易用、靈活性高之類好像說了很多,又好像什麼都沒說的介紹。我們說點接地氣的——風頭正勁的Python。
現在Python很熱,熱到什麼地步?
我經常在App裡看到有一條視頻廣告,形式略有不同,但總的來說角色就兩個,一個很凶的主管和一個很困擾的下屬,很凶的主管布置了一個很急的活,困擾的下屬撓耳撓腮,委屈說用電子表格根本不可能趕得出來,很凶的主管這時更凶了,啪啪啪一通操作,說用Python只要5分鐘就出來了,還不快去學!
我覺得這條廣告最有意思的地方,在於兩個角色都西裝革履,一看就很不程序員,更像是習慣一臉嚴肅坐在CBD裡吹冷氣的商務人士,以前我以為這是廣告策劃的一個Bug,每次看到這裡都被這反差萌逗樂,直到有一天,有位做金融的朋友問我說Python好不好學,我才知道Python真的已經火出圈了。
先說一點,雖然現在不管圈裡圈外,只要說到做數據分析、機器學習甚至人工智能,好像已經言必稱Python,不過,這些領域並非天生就得是Python,別的不說,就說人工智能。
人工智能領域出了很多語言,如果你早個幾年學習人工智能,可能連Python的影子都看不見,大家一般推薦的都是LISP、Prolog,哪怕是業內人士看這些語言都是又古老又偏門,尤其是Prolog,好像除了人工智能就沒別的地方能見到,但是Prolog做規則推導有奇效,大家也就一直沿用下來了。
現在呢?現在不怎麼提了,一來是因為基於統計的機器學習一直占據了人工智能的頂流位置,規則推導說得不多,二來是Python迅速崛起,人稱“人工智能第一語言”,就連規則推導都可以用Python來做。
另一個例子是數據分析,早前都是R語言的天下,後來是R和Python兩分天下,現在人工智能的東風一起來,R完全無法招架Python 迅猛發展的勢頭,所以這些前浪就理所當然被拍在了沙灘上。
但是,這是結果,現在我們要問的是:為什麼Python能成為“人工智能第一語言”呢?
現在Python很熱,所以介紹Python的文章特別多,大家一定也看膩了諸如Python簡單易用、靈活性高之類好像說了很多,又好像什麼都沒說的介紹。我們說點接地氣的。
在我來看,Python最大的優點就是**“拎包入住”**。
如果大家去租房,一定能看到一個詞,叫“拎包入住”,這個詞經常作為租屋的重要賣點,也反映出消費者對租屋的一個重要需求。
什麼叫拎包入住?租房行業對這個詞的准確定義有爭議,很多人在糾結家私家電齊全到底是不是等同於拎包入住,不過意思是清楚的,我作為租客,啥都不用准備,只需要把行李拉過來就可以住下了,這就是拎包入住。
換句話說,有不少租屋是達不到拎包入住的標准的,本來我只是要滿足“住”的需要,可是因為租屋條件有欠缺,導致我不得不先客串一回裝修師傅,需要先做一些其它的准備,然後才能做我想要做的事。
好了,說回編程語言。很多人喜歡從語言風格、語法設計甚至語法糖等等角度來比較編程語言的優劣,不過,我更看重另一樣東西:生態環境。
以前我們說C++多麼多麼爆紅,後來又說Java多麼多麼爆紅,現在又輪到了Python,到底這些“網紅語言”的成功背後靠的是什麼?真的只是因為編程語言自身的優秀設計嗎?
我認為,一款編程語言是否流行,設計當然是很重要的因素,但生態環境的成熟可能是更為直接的原因。我們經常能聽到的一個關於編程的問題是,A語言早就已經過時了,現在已經有了新興的B語言,為什麼現在還要用A語言開發項目呢?
這個問題通常有兩種可能,一種是項目已經用A語言做了大量開發,替換成B語言又得高樓平地起,另一種是B語言還太新,某個專業領域還沒有可用的或者好用的庫,同樣也得高樓平地起。這兩種都可以歸結為同一個原因:使用B語言並不能拎包入住。
Python的成功,同樣是因為能夠拎包入住。
回想一下前面的廣告,說用Python只要5分鐘就能把看似做不完的工作做完,為什麼?
不是因為Python語言設計有多麼多麼精巧,別人要寫一萬行,Python只要一行就搞定,而是Python有非常成熟的生態環境,你扔一個任務過來,用Python不用從頭開始,只要找到對應的庫,一句import加幾行代碼,可能結果就出來了。
從始至終,你都只需要關注任務本身,而不需要思考編程語言怎麼處理實現,沒什麼雜七雜八的東西需要浪費時間。這就叫拎包入住。