大資料:程式語言真的重要嗎?
| 2014-01-30 08:31 收藏: 2
在大資料領域內,每一毫秒的效能損失都影響巨大。然而,像Python這樣通常被認為效能不是太好的程式語言,在過去一年中卻變得越來越流行了。大資料社群最近出現的一些文章和討論,又一次點燃了用於資料科學以及大資料領域內的程式語言選擇之爭。
AdRoll的首席工程師Ville Tuulos認為程式語言本身的效能其實並不重要。Ville於2013年9月在舊金山將自己的調查發現釋出到了一個meetup組中,向我們展示了AdRoll中使用的基於Python構建的後端架構,以及它們是如何在效能上超過那些業界中的巨頭(例如Amazon的Redshift)的。他們獲得成功的關鍵是,整個系統是基於他們自己非常特殊的用例而構建的,因此可以針對那種用例進行最佳化。正如Ville所說:
不管通用解決方案是採用何種程式語言實現的,你都可以使用一種高階程式語言來快速地實現出一個效能比通用方案更好的,應用於特定領域的解決方案。
但這並不意味著程式語言一點都不重要。最近有不少關於哪種語言最適合資料科學和大資料領域的爭論,而這一殊榮最有力的競爭者就是Python和R語言。一些人甚至把它說成是資料科學領域內的一場戰爭。在LinkedIn上面也有針對這一話題的討論,看上去大家的普遍共識是,R語言是一種學術性語言,“對資料科學家而言,R語言的優勢在於它所提供的大量的包以及其多樣性”。
但是對於海量資料處理這一塊,總體說來Python受到更多程式設計師的青睞,正如來自Dish Network的資料科學家Tom Rampley所說:
我經常使用R語言的各種包中所提供的統計功能。我還使用它在小規模的資料集上面執行各種資料操作。但是對於文字解析、大資料集上的資料操作以及編寫自己的演算法這些任務來說,我更加喜歡使用Python並結合使用它的Numpy、Scipy和Pandas這些包。
在最近幾個月裡,Python似乎在各個方面都要更勝一籌,正如Karissa McKelvey在2013年10月所寫的那樣,“我的資料太大了,無法裝載到R語言中”,還有Matt Asay也聲稱,“在資料科學的博士們中間,R語言仍然很受歡迎,但是隨著資料逐漸成為主流,Python正在接替R語言的地位”。
語言自身的效能常常是我們在開發複雜架構時決定到底使用哪種語言的一個關鍵因素,而且這一因素常常被過度誇大。實際上真正重要的是我們如何使用一種語言,正如Linus Torvalds所說,“低水平的程式設計師總在關心程式碼,而高水平的程式設計師則關注資料結構及其關係。”
以Cloudera公司最近的一個開源專案Impala為例,它的目標是替代Hive,使查詢速度提高一個數量級。他們選擇使用了C++,而其他所有的Hadoop架構都是基於Java的,這種開發語言上的轉變經常被冠以某些與效能相關的原因。但實際上這裡的效能提升不是簡單地來自從Java到C++的轉換。Impala甚至沒有使用MapReduce,而是直接在記憶體中快取資料,所以很顯然,這裡的效能改善主要源於它採用了帶有不同資料結構和限制的一個完全不同的範型。這裡由Java到C++的轉換隻是一種錦上添花的工作,並不會對效能的改善起到雪中送炭的作用。
檢視英文原文:Big Data: Do Languages Really Matter?
相關文章
- 你真的理解函數語言程式設計嗎?函數程式設計
- Python真的勒死R語言了嗎?PythonR語言
- 大資料與程式語言關係大資料
- Python是萬能的程式語言嗎?這五大用途很重要!Python
- 大資料教程之《MYSQL資料庫》TCL語言和DCL語言大資料MySql資料庫
- 用「圖靈測試」檢驗AI尤其是大語言模型,真的科學嗎?圖靈AI模型
- 大資料時代,真的會有網站使用 DNT 嗎?大資料網站
- 全球流行程式語言資料表行程
- 數學,英語,計算機基礎(或者更多),對學習程式設計(如java,大資料等)重要嗎?計算機程式設計Java大資料
- Julia會成為下一個程式設計大語言嗎?程式設計
- 【謊言大揭祕】Modin真的比pandas執行更快嗎?
- 在大資料時代,我們真的沒有隱私嗎?大資料
- 《人工智慧一定需要大資料嗎?未必!》真的麼?人工智慧大資料
- 資料流&函數語言程式設計函數程式設計
- CDGA|資料素養對資料治理工作真的很重要!
- SQL語言基礎(資料控制語言)SQL
- 大語言模型與資料庫故障診斷模型資料庫
- java 對測試來說真的不重要嗎Java
- 2018年最流行的十大程式語言,有你用的嗎?
- C語言程式設計之《資料輸出》C語言程式設計
- python是函數語言程式設計嗎Python函數程式設計
- 當紅開發語言Go,真的是未來的技術主流嗎?Go
- Python需要懂英語嗎?英語基礎很重要嗎?Python
- 大語言模型微調資料競賽,冠-軍!模型
- C語言資料型別大學霸IT達人C語言資料型別
- C語言精通才是真的黑客!C語言黑客
- 大語言模型能用作世界模擬器嗎?模型
- 你真的會使用資料庫的索引嗎?資料庫索引
- JS的資料型別你真的懂了嗎JS資料型別
- 網路安全等級保護真的很重要嗎?
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- java是最值得學習的程式語言嗎?Java
- 用大資料駁斥最反智的謊言:學歷不重要大資料
- C語言真的很難嗎?那是你沒看這張圖,化整為零輕鬆學習C語言。C語言
- TestNg中的斷言你真的瞭解嗎
- python 是開源語言嗎:Python 是一種開源語言嗎?Python
- 你的資料庫真的需要遷移到雲嗎?資料庫
- 微服務真的不挑資料庫嗎?如何選擇?微服務資料庫
- 真的可以,用C語言實現物件導向程式設計OOPC語言物件程式設計OOP