Google數據大牛:R,Python,Java,Scala誰更好用?(優秀譯文)

編程語言 Python Scala Java 北京百知 北京百知 2017-09-08

Google數據大牛:R,Python,Java,Scala誰更好用?(優秀譯文)

注:本譯文,原文出自medium。

數據科學,一個想想就令人激動的領域,通過不一樣的智慧將最優美的統計知識與編程能力結合起來,一個1+1>2 的領域,並且今年來所有的發展都預示著數據科學的輝煌之日已經來臨,不管是大數據,人工智能,深度學習還是數據分析,都離不開數據科學。數據科學廣泛的應用於各個領域,所有的編程語言也都在接納數據科學,那麼最好的數據科學是什麼呢?

雖然沒有絕對的答案,但是有幾件事需要考慮,畢竟成為一名數據科學家取決於很多的方面:

1.適用性

在我們談到的數據科學中,如果你想要走的更遠,每次都造新的輪子顯然是走不通的。學習掌握所選語言中提供的各種軟件包和工具是很有必要的,而一款適用性廣,擁有很多包的語言會是一個不錯的選擇。

2.速度

在通常快節奏的商業數據科學領域,迅速的完成一項工作是很有必要的,因此,對於技術的速度就在考慮之內了,不僅僅是指運行的速度,還有學習的速度。

3.性能

在某種情況下,優化代碼的性能非常的重要,特別是在出來大量關鍵任務數據的時候,編譯語言通常比解釋語言快的多,同樣,靜態語言比動態語言出問題的概率也要打的多,一次平衡好速度和性能之間的關係很重要。

下面會介紹目前被廣泛應用的語言,R,Python,java,Scala,我們會在考慮核心原則的同事,結合自己,同事和朋友的經驗和研究,對每一種語言進行合理詳細的分析。

R

Google數據大牛:R,Python,Java,Scala誰更好用?(優秀譯文)

R是統計領域廣泛使用的誕生於1980年左右的S語言的一個分支。可以認為R是S語言的一種實現。而S語言是由AT&T貝爾實驗室開發的一種用來進行數據探索、統計分析和作圖的解釋型語言。

優點

1.優秀的高質量、特定領域的,並且開源的軟件開發包。R語言有一個包括神經網絡、非線性迴歸模型、系統、繪圖和幾乎所有數量和統計應用功能的開發包。

2. R語言的基礎安裝版就具有非常全面的、內置的統計功能和方法,同時R語言特別擅長處理矩陣代數。

3.R語言擁有優秀的數據可視化功能。

缺點

1.R語言不是一種快速語言,並且沒有很好的通用性,雖然對於統計和數據科學而言R語言是一個很好的選擇,但是對於通用編程而言,這樣的語言並不友好。

2.R語言的一些不尋常的特點和大多數的語言相比顯得有些古怪,譬如:從1開始索引,使用多個賦值操作符,非常規的數據結構。

總結

R是一種功能強大的語言,它擅長統計和數據可視化應用程序的大量應用,而開源則允許非常活躍的貢獻者社區。最近人氣的增長證明了它的有效性。

Python

Google數據大牛:R,Python,Java,Scala誰更好用?(優秀譯文)

Guido van 1991年將Python帶給我們,它後來成為一種非常流行的通用語言,在數據科學界得到了廣泛的應用。目前主要版本為3.6和2.7。

優點

1. Python是一種非常流行的主流通用編程語言。它有廣泛的目標模塊和社區支持。許多在線服務提供了一個Python API。

2.Python是一門容易學的語言。低進入門檻使它成為新編程者理想的第一語言。

3.pandas, scikit-learn and Tensorflow的第三包的存在使的Python為先進的機器學習應用提供了很好的應用支持。

缺點

1. Python是一種動態類型語言,這意味著類型錯誤經常是不可預料的。

2.對於特定的統計和數據分析目的,R的大量包使它比Python更具優勢。對於通用語言,更快更安全的Python稍有優勢。

總結

Python是數據科學的一個很好的選擇,而不僅僅是入門級的。大部分的數據科學過程圍繞著ETL過程(提取轉換加載)。另外Python的通用性非常好,譬如:Google的tensorflow使Python在機器學習領域成為了一個非常激動人心的語言。

Java

Google數據大牛:R,Python,Java,Scala誰更好用?(優秀譯文)

java是一個非常受歡迎的通用語言,可以在平臺之間實現無縫移植。目前由甲骨文公司支持。

優點

1. 無處不在。許多現代的系統和應用程序是建立在java後臺之上。

2.強類型。java確保類型安全,這對於關鍵任務的大數據應用程序來說是非常寶貴的。

3.java是一種高性能,通用的語言 。這使得它適合於編寫高效的ETL生產代碼和計算密集型的機器學習算法。

缺點

1. 對於特殊的分析和更專門的統計方案而言,java的冗長使得它不太可能首選。動態類型的腳本語言(如R和Python)可以獲得更高的生產率。

2.Java相比於專精於數據領域的語言而言,沒有大量的統計方法庫。

總結

學習java作為第一選擇的數據科學語言。許多公司都會希望=數據科學的生產代碼能夠直接集成到他們現有的代碼庫上,另外,你會發現java的性能和類型安全是真正的優勢。但是,如果把需求特定於統計和數據科學範圍。那麼,擁有全面統計和數據科學包的Python和R絕對是不能忽視的選擇。

Scala

Google數據大牛:R,Python,Java,Scala誰更好用?(優秀譯文)

Scala由Martin Odersky在2004發佈,是一種能夠運行在JVM上的語言。它是一種多範型語言,支持面向對象和函數式編程。

優點

1. 高性能集群計算。對於那些使用高容量數據集的人來說,Scala是一種理想的語言選擇。

2.Scala能夠編譯成java字節碼運行在JVM上。這使的Scala成為了一種強大的通用語言,同時也非常適合數據科學。

缺點

1. 如果你剛開始的話,Scala並不是一種可以直接啟動和運行的語言。

2.語法和類型系統通常被描述的過為複雜,對於學習Python這樣的動態語言的人來說不是一種容易學習的語言。

總結

當使用集群計算來處理大數據時,Scala + Spark是極好的解決方案。如果你有java和其他靜態類型語言的經驗,你會喜歡上Scala的功能。然而,如果您的應用程序沒有那麼多的數據需要處理時,您可能會發現使用其他語言(如R或Python)會是一個更好的選擇。

以上就是這些語言的分析,我經常使用的是R,Python和SQL,這是因為我的工作集中在開發數據管道和ETL,並不是這是絕對的選擇,根據自己的情況,如果你已經有了Java的學習經驗,那麼使用Scala觸摸大數據是一個不錯的選擇。

感謝閱讀!

相關推薦

推薦中...