數據領域最強編程語言Python和R要合作了!
策劃 & 編輯 | Natalie
組稿 | Natalie,Vincent
AI 前線導讀:是的,你沒有看錯,數據科學領域從業者最離不開的兩大編程語言,當紅炸子雞 Python 和「過氣網紅」R 真的要展開合作了。近日,URSA 實驗室宣布,R 和 Python 正攜手合作,旨在讓使用不同編程語言的數據科學家能夠更輕鬆地協作,避免不同語言開發人員的過多重複工作,這或許會成為今年最雄心勃勃的交叉事件。有網友對這次合作發表評論道:「這個真的蠻歷史性時刻的」,不過也有網友調侃「兩個最慢的語言正在合作」,你怎麼看?
更多優質內容請關注微信公眾號「AI 前線」,(ID:ai-front)
Ladies and 鄉親們,爭奪數據分析領域最好用編程語言的兩大重量級選手:Python 和 R 語言,竟然宣布:合!作!了!
如果你身處數據分析領域,那麼你一定遇到過或者聽說過這個兩難抉擇——在進行數據分析時,到底使用哪種語言更好,R 還是 Python?
「最好的編程語言」之爭曠日持久,數據科學領域也不例外。網上經常出現諸如「我想學習機器學習,我應該用哪個編程語言」或者「我想快速解決問題,我應該用 R 還是 Python」等這類問題。儘管這兩種編程語言目前都是數據分析社區的佼佼者,但是它們仍然深陷「哪一種才是數據科學家的首選編程語言」的爭論之中。
但是各位,從今往後,你們可以不用再糾結這個問題了。
數據科學領域最強編程語言之爭
在介紹合作相關事宜之前,我們照例先回顧一下這兩種編程語言的前世今生,以及他們在編程江湖當中的恩怨情仇。
前世今生
Ross Ihaka 和 Robert Gentleman 於 1995 年基於 S 語言創造了開源語言 R,目的是專註於提供更好和更人性化的方式做數據分析、統計和圖形模型。
起初 R 主要是在學術和研究中使用,但近來工業界也發現了 R 的好,這使 R 成為在企業中使用的全球發展最快的統計語言之一。
而 Python 由 Guido van Rossem 創建於 1991 年,主要強調效率和代碼的可讀性。希望深入的數據分析或應用統計技術的程序員是 Python 的主要用戶。
當你越需要在工程環境中工作,你會越喜歡 Python。它是一種靈活的語言,在處理一些新東西上表現很好,並且注重可讀性和簡單性,學習曲線比較平緩。
恩怨情仇
這兩種編程語言是怎麼結下樑子的?還得從機器學習和數據分析說起。
機器學習和數據分析之間的差異有些難以言明,但二者最主要的不同就在於:比起模型的可解釋性,機器學習更加強調預測的準確性;而數據分析則更加看重模型的可解釋性以及統計推斷。
於是乎 ,由於 Python 更看重預測結果的準確性,它成為了機器學習的一把利器。而 R 作為一種以統計推斷為導向的編程語言,在數據分析界也得到廣泛應用。
但是,這並不是就給這二位定了性,除了各自的領域別的都幹不成了。實際上,Python 也可以高效地完成數據分析工作,R 在機器學習中也具有一定的靈活性。它們都擁有相當多的資源庫去實現彼此特定的函數功能,比如 Python 就有很多資源庫來提高自己統計推斷的能力,R 也有很多包可以提升預測的準確率。
由於二者的這些特性,網路上對於 Python 和 R 到底誰強誰弱的爭論一直沒有定論,就連在學界和業界的使用率也一直你追我趕。
不過,隨著近幾年人工智慧的普及,越來越多學校開展了 Python 語言的編程課,轉型人工智慧的企業也加大了對 Python 語言的投入力度。根據 Stack Overflow 2018 年開發者調研報告顯示:Python 的排名有所上升,今年已經超過了 C#,正如它去年超過了 PHP。Python 堅定主張要成為「最快速成長的主流編程語言」,至於 R 語言,則被遠遠甩在後面。
看似人氣差距越來越大,有人戲稱他們一個當季網紅,一個「過氣網紅」。但也有技術大佬對於這種誰是最佳編程語言的爭論感到不滿,進而提出了一個想法:為什麼不讓他倆合作呢?
這次合作由誰發起?
技術大佬 Hadley Wickham 和 Wes McKinney 共同促成了這次合作。
Hadley Wickham 是編程語言 R 最重要的開發人員,Wes McKinney 則是編程語言 Python 最重要的開發人員之一。
Wes McKinney 在 2008 年創建了 pandas project,pandas 是一個開源的 BSD 許可的庫,為 Python 編程語言提供了高性能、易用的數據結構和數據分析工具(對,就是你在 Python 里超級常用的那個 pandas 庫)。此外,他還撰寫了 Python for Data Analysis 一書,幫助推廣 Python 在數據科學領域的應用。他是 Apache Software Foundation 的成員,並且是 Apache Arrow 和 Apache Parquet 的 PMC 成員,曾任 DataPad 的首席執行官和共同創始人。
Hadley Wickham 則是許多在數據科學領域使用最廣泛的 R 軟體包的創建者,如 ggplot2、dplyr 和其他許多軟體包。他寫了幾本關於 R 語言的書,如 R for Data Science 和 Advanced R。Hadley 是 RStudio 的首席科學家,同時也是 Ursa Labs 關於 R 語言支持和一般 API 設計和可用性的技術顧問。
上個月,McKinney 宣布成立 USRA 實驗室——一個致力於改進數據科學工具的創新組織。本次 Python 和 R 的合作就是 USRA 實驗室與 Wickham 所在的公司 RStudio 之間的合作項目,RStudio 目前負責維護 R 語言最受歡迎的用戶界面。USRA 實驗室的主要目標是讓使用不同編程語言的數據科學家能夠更輕鬆地協作,避免不同語言開發人員的過多重複工作。除了改進 R 和 Python,他們還希望其工作能夠改進其他開源編程語言的用戶體驗,比如 Java 和 Julia。
Python 和 R 都可以免費使用,並且經常被認為是數據科學領域中的競爭對手。但 Wickham 和 McKinney 都認為這種競爭是沒有必要的。事實上,他們認為通過合作可以使這兩種編程語言對數百萬用戶更加有用。
Python 和 R 強強聯手
對於在科技公司(如谷歌、Facebook 等)工作的數據科學家、研究人員和數據記者來說,Python 和 R 都是必不可少的工具。開發者最頭痛的問題是,當他們的同事使用另一種不同的編程語言時,協作往往難於上青天。URSA 實驗室將通過打造適用於所有編程語言的新標準,使與使用其他數據科學語言的人共享數據和代碼變得更加容易。開發者們將這一行動稱作為對「互操作性」的改進。Wickham 和 McKinney 已經一起創建了一個在 Python 和 R 中都可以使用的文件格式。
Wickham 和 McKinney 表示,除了想讓協作變得更容易,還有另外一個原因促使他們展開這個合作項目:使用不同編程語言的開發者總是在重複解決同一個問題,卻沒能把他們從中學到的經驗教訓分享給其他人。
Wickham 舉了一個例子,在每一種編程語言中,開發人員都要會計算平均值。這對於用戶來說非常簡單,不管是在 Python 還是 R 中都只需要一行代碼。但是對於語言的開發人員來說,找到用一行代碼執行計算的最佳方法卻是一個棘手的問題。R 和 Python 的開發人員都傾向於用 C++ 和 C 語言來解決這個問題,這兩種語言對於開發人員來說很好用,但對普通用戶來說卻很棘手。Wickham 認為,在理想情況下,如果一種編程語言的開發人員找到了做某事的最佳方法,那麼這個方法應該應用於其他所有語言。這也是 USRA 實驗室的核心任務。
Wickham 和 McKinney 補充道,這個合作項目除了解決技術問題,也希望讓不同的編程語言社區和平共處。他們認為使用這些語言的人合作得越多,數據科學領域就能發展得越好。
「我希望這次合作能結束 R 和 Python 之間毫無意義的爭鬥,」Wickham 說,「因為這兩種語言都很棒。"
參考資料:
http://wesmckinney.com/blog/announcing-ursalabs/
https://qz.com/1270139/r-and-python-are-joining-forces-in-the-most-ambitious-crossover-event-of-the-year-for-programmers/
今日薦文
※Python:數組練習
※Python玩出新花樣!還在擔心表白說不出口?
TAG:Python |