人生苦短,為何要用Python

前言

作為一個非計算機專業的人,接觸過的編程語言其實也不算少了。入門的經典C語言就不必說了,用過C#,C++做一些小軟件,現在主要用Python偶爾加R輔助,再加上曾嘗試寫過一兩行代碼的IDL和Matlab。正所謂貪多嚼不爛,哪一個都沒能精通甚至談的上熟練使用。出國留學之後,希望能做一些和機器學習相關的內容,網上搜羅一遍,看各種語言之爭,最後決定從Python入手,至少到目前覺得Python值得我投入那麼多時間去學習掌握它。

機器學習|人生苦短,為何要用Python

下面我們就從目前比較流行的開發技術Java來說起,因為Java已經幾年蟬聯開發語言的寶座(TIOBE[1]排名):

機器學習|人生苦短,為何要用Python

一、從流行的Java看IT技術的趨勢

1. Java成功的基因

因電視機機頂盒、微波爐等硬件應用開發,Java起於1990年,發佈於1992年;但從Java誕生開始,Java除了能解決一些硬件開發項目以外,一直默默無聞;

但從1990年,第一款瀏覽器[2]誕生開始,就一直糾結於靜態頁面缺乏良好的交互性,Java發揮嵌入式優勢(嵌入瀏覽器中動態執行)提供Applet技術實現,暫時解決了早起網頁的交互性(鄙人就是在2000年左右看見第一款用JavaApplet編寫的網頁3D菜單而被Java所吸引)。後來瀏覽器廠商(NetScape公司)借鑑Java的語法,制定了Javascript語言標準,才算徹底解決了網頁的動態交互問題。

1998年,當時的Sun公司,把Java細分為J2SE、J2ME、J2EE、JCard等應用技術領域,通過在美國證券交易所取得完整的企業信息管理與交易系統的商業成功,開始逐步取代當時的ASP與PHP(後來PHP在國內藉助頁遊春回二度就是題外話了)佔領取企業開發市場的。其中J2EE(現在官方稱呼已經更名為JavaEE)在企業中藉助開源,如火如荼發展處各種各樣的開源框架技術,取得目前所擁有的霸主地位。

Java的成功目前主要在於兩個市場:(1)移動開發市場(主要是Android,J2ME在2008年就基本上隨著Nokia的被收購,丟失市場份額);(2)企業開發市場。這兩個市場的成功不是偶然的,都是基於Java的兩個基因:嵌入式與互聯網基因。

機器學習|人生苦短,為何要用Python

Java的故事

2. Java的定格

當中國信息化基本上完整結構性建設後,現在面臨的是大量企業因信息化產生的業務數據的處理問題與價值挖掘的需求。而傳統的信息化建設將面臨天花板。有一個跡象可以反饋出來:很多高等院校的外包服務專業開始取消,部分軟件學院開始改名為數據科學和大數據應用。

正是因為Java對信息化建設的成功,開啟了一個新的時代【大數據時代】,傳統的Java儘管擅長構建大數據信息化框架,卻不擅長數據的分析處理;工程師們開始嘗試新的技術:Scala語言,R語言,Matlab語言,Python語言等等。

機器學習|人生苦短,為何要用Python

Java、大數據與數據分析

從目前各種跡象(企業招聘,語言排名等)看來Python應該是暫時領先,這得力於Python的厚積薄發。下面是鄙人個人出於職業求職原因,在Boss直聘2年來關注的職業信息:

機器學習|人生苦短,為何要用Python

算法工程師與Python工程師

二、選擇Python不僅僅是選擇一門語言

1. 選Python就是選擇趨勢

語言本身不具備生命力,其生命力來自企業應用(正如軟件開發是一種寄生產業一樣,沒有產業就沒有信息化;產業是朝陽產業,軟件開發就欣欣向上;所以軟件開發除了選技術,還要在掌握技術後,選擇產業;比如現在很多人選擇電商開發就是一種潮流)

所以我們選擇Python不是因為Python本身,而是產業因為數據處理的需求,選擇了Python,我們也選擇Python就是選擇了數據分析的企業需求與職業機會。Python綁在螃蟹上就是螃蟹價,綁在白菜上就是白菜價。

我們選擇Python就是選擇了一種企業技術趨勢--數據分析,可能在N年後,Python會被其他語言替代(Swift語言,Julia語言,Go語言都虎視眈眈,奔新的技術趨勢而來。不過我認為因為都是新興語言,還是缺乏積累,可以值得關注,不值得消耗過分的學習成本)。

下面是Python的發展,其歷史沉澱足矣支撐企業新技術開發。

機器學習|人生苦短,為何要用Python

Python的發展足夠厚重,只是缺少一個機會

Python長期在學術界與科研界使用,當算法等從學術殿堂走向產業的時候,Python被選擇是絲毫不奇怪的。

2. Python所代表的企業技術趨勢

實際上P數據分析僅僅是開始,因數據分析的商業應用觸發,數據分析從框架剝離出來,形成單獨的技術:數據科學;當剝離數據後,核心就是算法,而算法是人工智能的強項,人工智能散發第三春,開啟商業應用之路。

機器學習|人生苦短,為何要用Python

大數據應用->數據科學->人工智能

其實Java在企業信息化的成功應用後時代,應該是智能時代,以智能算法為核心的新的商業應用蓬勃發展:智能算法像水銀一樣傾洩到各種傳統商業應用,產生各種創新。

三、我們選擇Python用來做什麼?

既然我們選擇了Python,就決定我們把Python當成一把斬刀,既在傳統應用有所作為,也在新興領域建功立業。

實際上,作為一門語言,很多Java能實現的,使用Python都能實現,但在運維,科學計算是Python的傳統領域強項(Python早起的初衷是給非計算機專業的人群開發的)

1. 傳統領域(語言本身的功能)

系統運維,網絡編程,GUI用戶界面,數據庫(關係數據庫與NoSQL數據庫)訪問,數據解析(正則表達式與JSON、XML數據),遊戲(OpenGL),Web服務開發,自動化測試,其他第三方獨特的應用(文檔處理等等)

2. 新興領域(語言具備的計算功能)

數據計算,

機器學習深度學習(神經網絡),數據分析數據採集(爬蟲),計算框架(Tensorflow等),數據可視化


分享到:


相關文章: