戲說R語言系列3

R是一門很“古老”的語言预柒,可以追溯到20世紀70年代的貝爾實驗室葱蝗。那時候數(shù)值計算的主要語言是Fortran拟逮,這種語言對計算機很友好剥扣,一般對計算機友好的語言對人都不太友好巩剖,貝爾實驗室的John Chambers和他的同事挺身而出,提出了一個想法钠怯,就是下面這張圖佳魔。

可以算是R語言的族譜

這張圖的意思大概就是在Fortran上面再加一層人機交互語言,而且要非常友好呻疹,就像用手機點外賣一樣方便吃引,這種語言就是S語言。S語言一經(jīng)推出刽锤,就廣受好評镊尺,然后廣受好評至1998年,走到人生巔峰并思,獲得美國計算機協(xié)會ACM“軟件系統(tǒng)獎”庐氮,這是迄今為止“唯一”被ACM授獎的統(tǒng)計系統(tǒng)。組委會評價到:“S語言史無前例的改變了人們分析宋彼、數(shù)據(jù)可視化弄砍、數(shù)據(jù)操作的方法,由于John Chambers的洞察力输涕、品味和努力音婶,S成為了一種聰明的、被廣泛接受的莱坎、經(jīng)久不衰的語言......”衣式,歷史上獲得這一殊榮的的還有: Unix、 TeX檐什、TCP/IP碴卧、 Web、 Apache乃正、 Make..住册,2002年是Java,大家對這些是不是覺著很眼熟瓮具?

S語言之后的命運就沒那么“經(jīng)久不衰”了荧飞,它后來走向了商業(yè)化道路凡人,成為了S-plus,隨著R語言的開源和不斷強大叹阔,S-plus的用戶漸漸地轉(zhuǎn)到了R語言划栓。S語言的發(fā)明人John M. Chambers最后也成為了R語言的核心團隊成員(這個核心小組只有二十幾個人)。S-plus幾經(jīng)轉(zhuǎn)手条获,然后...然后就沒了忠荞。如今R語言大會還會經(jīng)常邀請John Chambers,他依然在R語言社區(qū)延續(xù)著他的思想帅掘,并繼續(xù)作出貢獻委煤,可是當(dāng)我們轉(zhuǎn)過身去,想起S語言的故事修档,不免唏噓不已碧绞。

S語言風(fēng)光無限的時候,它的新西蘭方言版小兄弟R語言也開始嶄露頭角吱窝。1993 年讥邻,新西蘭奧克蘭大學(xué)的統(tǒng)計學(xué)家 Ross Ihaka 和 Robert Gentleman 創(chuàng)造了 R。這解釋了R語言為啥叫R的原因院峡,因為兩位創(chuàng)始人都姓R兴使。新西蘭確實是好地方,除了盛產(chǎn)奇異果照激,還產(chǎn)統(tǒng)計學(xué)家发魄。例如前兩集已經(jīng)提到的 Hadley Wickham,出生在新西蘭漢密爾頓的一個統(tǒng)計學(xué)世家俩垃,他父親 Brian Wickham 在康奈爾大學(xué)獲得動物繁殖專業(yè)的博士励幼,該學(xué)科大量使用統(tǒng)計學(xué);而他姐姐則擁有加州大學(xué)伯克利分校的統(tǒng)計學(xué)博士學(xué)位口柳。

這段家譜摘自統(tǒng)計之都里的一篇文章“Hadley Wickham:一個改變了 R 的人”苹粟。統(tǒng)計之都還有一篇專訪 “COS 訪談第 9 期:Hadley Wickham ”。另外跃闹,圖靈社區(qū)還有另外一篇專訪“《R包開發(fā)》作者Hadley Wickham:數(shù)據(jù)結(jié)構(gòu)“神童”(圖靈訪談) ”嵌削。還有一篇 R語言的前世今生對R語言的介紹更為詳盡。把這幾篇放在一起看辣卒,是一件很有意思的事掷贾,有些內(nèi)容解答了大家對R語言的一些疑惑睛榄。

例如荣茫,圖靈社區(qū)對Wickham的訪談里,稱Wickham有個統(tǒng)計學(xué)家的妹妹场靴,而在統(tǒng)計之都的訪談里啡莉,稱Wickham有個統(tǒng)計學(xué)家的姐姐港准。我在第一集里也是說Wickham有個統(tǒng)計學(xué)家的妹妹,到底是姐姐還是妹妹咧欣,有點搞不清浅缸,不過,這個不是大問題魄咕,更重要的可能是下面這些衩椒。

由于該語言是為數(shù)據(jù)分析量身定制,并且某些地方它與眾不同(例如數(shù)據(jù)結(jié)構(gòu)的索引方式以及數(shù)據(jù)強制存儲于內(nèi)存中)哮兰,因此熟悉其他語言的程序員往往覺得 R 非常奇怪毛萌。

“數(shù)據(jù)強制存儲于內(nèi)存中”,這在當(dāng)時是挺先進的想法喝滞,后來的hadoop是外存(就是硬盤)計算阁将,計算比較慢。R語言從誕生到現(xiàn)在右遭,一直都是內(nèi)存計算做盅。但內(nèi)存相比硬盤比較貴啊,市面上1T的硬盤2500元窘哈,這個價錢大概只能買好一點的32G內(nèi)存吹榴,所以,內(nèi)存會成為計算的瓶頸滚婉。

“數(shù)據(jù)結(jié)構(gòu)的索引方式” 我猜是指腊尚,R的數(shù)據(jù)索引是從1開始的,其他語言是從0開始的满哪。這個我倒是不覺著R奇怪婿斥,反倒覺著其他語言奇怪,小明家有三口人哨鸭,第0人是爸爸民宿,第一人是媽媽,第二人是小明像鸡。這個也是我一直想問程序員的活鹰,為啥要從0開始索引呢?當(dāng)然只估,這個在實際工作中并不算一個大問題志群。

R 作為一門編程語言似乎名聲不太好,但我(Wickham蛔钙,下同)覺得那不是事實锌云。我認為 R 的核心是一門優(yōu)雅的編程語言,只是因為絕大部分的 R 用戶都不是程序員吁脱,所以伴隨著這個優(yōu)雅的核心的桑涎,是大量冗長乏味的代碼彬向。R 其實和 Javascript 很像,有一本書叫做《JavaScript 語言精粹》(JavaScript: The Good Parts)攻冷,它試圖提煉出 Javascript 優(yōu)雅的一面娃胆。

Wickham這點說的很準確。像我這種不是程序員的R用戶等曼,我自己也曾嘗試著用R語言的shiny開發(fā)交互式web應(yīng)用里烦,我寫的代碼肯定是冗長乏味的,特別是UI部分禁谦,前端工程師修改起來非常的痛苦招驴。后來我把UI部分交給前端工程師做,我自己專注后端的開發(fā)枷畏。

“R 其實和 Javascript 很像”别厘,這點可能是說,Javascript也是一種語法不是那么嚴謹?shù)恼Z言拥诡,非常靈活触趴。高度靈活的副作用是,這會導(dǎo)致性能減慢渴肉。由于性能瓶頸的出現(xiàn)冗懦,R語言又向其他語言延伸,例如用 R 調(diào)用 C++ 以獲得更快的速度仇祭,這也是R語言目前為提高性能所采用的最普遍的方法披蕉,不過這增加了R用戶的學(xué)習(xí)成本,畢竟大多數(shù)R用戶并不是程序員出身乌奇。

但 Wickham依然保持樂觀没讲,而且很多商業(yè)公司也開始介入R的發(fā)展:

隨著越來越多的高級編程人員學(xué)習(xí)R語言,以及越來越多的R語言使用者變成經(jīng)驗豐富的編程人員礁苗,我想會出現(xiàn)越來越多的高效率R包爬凑。
......我認為,商業(yè)公司(這里指IBM和微軟)的介入對R的持續(xù)發(fā)展以及R作為一種編程語言的不斷完善都具有偉大的歷史意義试伙。R目前在很多公司的項目中充當(dāng)關(guān)鍵作用嘁信,這意味著基于R語言開發(fā)的資源會越來越多。特別令人興奮的是疏叨,我目前參與了R財團的工作(https://www.r-consortium.org)潘靖。作為商業(yè)公司回饋R社區(qū)的有效方式,R財團把他們的資金用于R開發(fā)蚤蔓,幫助更多的R語言使用者卦溢。

希望大家還是要堅持使用R語言。作為一門接口語言,R語言一直在接口的易用性上保持著最高的標準既绕,這也是廣大R語言開發(fā)者和R語言核心團隊不斷沖突的一個原因。如果僅僅是比較接口的易用性上涮坐,例如比較python和R接口的易用性上凄贩,下面這段統(tǒng)計之都對陳天奇(經(jīng)常參加比賽的同學(xué)應(yīng)該都知道他,他開發(fā)了著名的XGBoost袱讹,同時也是mxnet的核心成員)的訪談中疲扎,可以看到一些細節(jié)。這段對話里捷雕,何通是XGBoost的R包開發(fā)者椒丧。

何:python 和 R 涵蓋了幾乎所有 kaggle 用戶的選擇。
陳:是的救巷,于是我就去學(xué)習(xí)了一下 python 里一個叫做 ctypes 的功能壶熏,它可以直接調(diào)用 C 的代碼,于是我花了兩天時間寫了一個 python 的接口浦译,并在比賽的論壇里發(fā)布了出來棒假。
......
何:寫工具的目的也是希望有別的用戶來用。
陳:對的精盅,我最后也會去用比較易用的接口(笑)帽哑。我本來的想法是我不需要用 python 或者 R,我只需要用 c++ 讀一個配置文件就行了叹俏,結(jié)果后來我也去用 python 了妻枕。
何:我之前也用 XGBoost 的 python 接口,自從寫了 R 包之后就再也沒用過 python 接口了(笑)粘驰。
陳:大家都比較懶嘛屡谐,而且這樣的偷懶挺好的。

這里面有一個細節(jié)蝌数,XGBoost的python接口是在兩天之內(nèi)開發(fā)的康嘉,何通開發(fā)的R接口,肯定就沒那么容易了籽前,R語言核心團隊成員總會挑各種各樣的毛病亭珍。所以,有時候我們經(jīng)常會看到python的接口總是最早發(fā)布出來的枝哄,而R語言的接口總是要遲很久才會看到肄梨,一方面R語言開發(fā)者比較少,另外一方面是挑毛病的人比較多(這并不是壞事挠锥,這段對話里众羡,XGBoost的R接口似乎是要好那么一些的)。

參考:
http://dirk.eddelbuettel.com/papers/chirug_mar2018_extending.pdf
https://en.wikipedia.org/wiki/John_Chambers_(statistician)
https://cosx.org/2015/09/hadley-wickham-the-man-who-revolutionized-r/
https://cosx.org/2013/09/a-conversation-with-hadley-wickham
http://www.ituring.com.cn/article/273090
https://www.cnblogs.com/chenkai/archive/2013/05/16/3082889.html
https://cosx.org/2015/06/interview-of-tianqi

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓖租,一起剝皮案震驚了整個濱河市粱侣,隨后出現(xiàn)的幾起案子羊壹,更是在濱河造成了極大的恐慌,老刑警劉巖齐婴,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件油猫,死亡現(xiàn)場離奇詭異,居然都是意外死亡柠偶,警方通過查閱死者的電腦和手機情妖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诱担,“玉大人毡证,你說我怎么就攤上這事∧柘桑” “怎么了料睛?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長摇邦。 經(jīng)常有香客問我秦效,道長,這世上最難降的妖魔是什么涎嚼? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任阱州,我火速辦了婚禮,結(jié)果婚禮上法梯,老公的妹妹穿的比我還像新娘苔货。我一直安慰自己,他們只是感情好立哑,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布夜惭。 她就那樣靜靜地躺著,像睡著了一般铛绰。 火紅的嫁衣襯著肌膚如雪诈茧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天捂掰,我揣著相機與錄音敢会,去河邊找鬼。 笑死这嚣,一個胖子當(dāng)著我的面吹牛鸥昏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姐帚,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吏垮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起膳汪,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤唯蝶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遗嗽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粘我,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年媳谁,在試婚紗的時候發(fā)現(xiàn)自己被綠了涂滴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片友酱。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡晴音,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缔杉,到底是詐尸還是另有隱情锤躁,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布或详,位于F島的核電站系羞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏霸琴。R本人自食惡果不足惜椒振,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梧乘。 院中可真熱鬧澎迎,春花似錦、人聲如沸选调。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仁堪。三九已至哮洽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弦聂,已是汗流浹背鸟辅。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留莺葫,地道東北人剔桨。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像徙融,于是被迫代替她去往敵國和親洒缀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 統(tǒng)計之都有一篇對Rstudio公司創(chuàng)始人J.J. Allaire的專訪。感興趣的同學(xué)可以抽空看看树绩。 https:/...
    eryesanye閱讀 636評論 1 2
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,481評論 6 427
  • Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列的資...
    Clemente閱讀 3,266評論 0 54
  • 今天萨脑,十幾歲的妹妹在看愛情公寓,看到宛如和展博的那段感情饺饭,我就想起結(jié)局時宛如默默地離開渤早,留下展博一人的悲傷。當(dāng)時很...
    日月之約閱讀 241評論 0 1
  • 海峻閱讀 280評論 0 5