數(shù)據(jù)科學(xué)家應(yīng)了解Java的六大原因
譯文【51CTO.com快譯】Java是當(dāng)今最流行的編程語言之一,這是一種與平臺無關(guān)、實(shí)用且穩(wěn)健的語言。全世界的開發(fā)人員使用Java來構(gòu)建應(yīng)用程序、Web工具和軟件開發(fā)平臺。Java在機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)領(lǐng)域也大有用處。
如果您是數(shù)據(jù)科學(xué)家,可能更常使用Python和R而非Java。據(jù)最近的一項(xiàng)調(diào)查顯示,數(shù)據(jù)科學(xué)領(lǐng)域只有21%的人使用Java,遠(yuǎn)低于Python(83%)或SQL(44%)。大多數(shù)人使用Python沖著其REPL功能和快速的算法試驗(yàn)。同時,開發(fā)人員將R用于數(shù)據(jù)可視化和表示。
但作為一名數(shù)據(jù)科學(xué)家,您應(yīng)該知道如何使用Java,因?yàn)樗峁┝藙?chuàng)建業(yè)務(wù)應(yīng)用程序的其他許多服務(wù)。如上所述,Java在機(jī)器學(xué)習(xí)和人工智能領(lǐng)域有諸多用途。優(yōu)步、Spotify和愛彼迎等許多大公司都基于Java。像BairesDev這樣的軟件開發(fā)公司使用Java來構(gòu)建和維護(hù)關(guān)鍵業(yè)務(wù)應(yīng)用程序。
數(shù)據(jù)科學(xué)家應(yīng)學(xué)習(xí)Java,原因多多。最重要的原因包括如下:
1. Java有許多出色的數(shù)據(jù)科學(xué)框架
這些框架為開發(fā)人員提供了基本功能,并幫助他們節(jié)省時間和資金。典型的流行機(jī)器學(xué)習(xí)框架包括:
- Deeplearning4J——這種面向Java的開源深度學(xué)習(xí)工具包用于部署神經(jīng)網(wǎng)絡(luò)。它可以與Hadoop和Spark集成。
- ND4J——代表面向Java的N個維數(shù)組對象。它是用于科學(xué)計(jì)算、信號處理和線性代數(shù)的工具包。它擁有numpy和MATLAB之類的內(nèi)置庫。
- Apache Mahout——這是一種可擴(kuò)展的分布式代數(shù)框架。它有助于分類、聚類和推薦。
Java也有許多用于數(shù)據(jù)處理的框架,包括:
- Hadoop——該框架使用MapReduce算法將數(shù)據(jù)存儲在分布式文件系統(tǒng)中。
- Kafka——它使用基于TCP的協(xié)議用于消息集抽象,對消息進(jìn)行自然分組,以形成線性寫入。
2. Java易于理解
大多數(shù)開發(fā)人員對于使用Java編程很有信心。除了擁有廣泛的用戶基礎(chǔ)外,Java還是市場上最吃香的技能之一,許多公司通常將Java用于所有可快速執(zhí)行的項(xiàng)目。Java還是一種傳統(tǒng)語言,用于全球許多知名的應(yīng)用系統(tǒng)和公司。
3. Java有出色的擴(kuò)展功能
大多數(shù)開發(fā)人員使用Java創(chuàng)建以后可根據(jù)業(yè)務(wù)需求來擴(kuò)展的應(yīng)用程序。如果貴公司正從頭開始構(gòu)建應(yīng)用程序,Java是絕佳的選擇,因?yàn)镴ava提供了擴(kuò)展功能以及負(fù)載均衡選項(xiàng)。
作為一名數(shù)據(jù)科學(xué)家,您會發(fā)現(xiàn)使用Java構(gòu)建復(fù)雜的應(yīng)用程序并對其進(jìn)行擴(kuò)展很容易;比如說,ApacheSpark是可用于擴(kuò)展的分析工具,它還可以用于構(gòu)建多線程應(yīng)用程序。
4. Java有獨(dú)特的語法
Java的獨(dú)特語法因易于理解而在全世界得到接受。該語法使開發(fā)人員可以了解約定、變量需求和編碼方法。Java是強(qiáng)類型——即每種數(shù)據(jù)類型已經(jīng)在該語言的結(jié)構(gòu)中被預(yù)定義,所有變量必須是某種數(shù)據(jù)類型的一部分。
大多數(shù)大公司為其代碼存儲庫保留標(biāo)準(zhǔn)語法。這么做確保所有開發(fā)人員按照生產(chǎn)級代碼庫的約定來編程。Java通過自動維護(hù)可以遵循的標(biāo)準(zhǔn)約定來幫助他們。
5. Java速度快
大多數(shù)數(shù)據(jù)科學(xué)家將Python用于數(shù)據(jù)科學(xué)應(yīng)用領(lǐng)域。您會驚訝地發(fā)現(xiàn)Java比Python快25倍。另外,如果您在尋找可以在任何時間進(jìn)行多次計(jì)算的應(yīng)用,Java勝過Python。
不僅處理速度快,Java與其他許多語言相比開發(fā)產(chǎn)品所需的時間也更短。它可以使用針對特定業(yè)務(wù)的工具進(jìn)行開發(fā),有大量的IDE和成熟功能來創(chuàng)建大型業(yè)務(wù)應(yīng)用程序。
6. Java和OLTP系統(tǒng)
聯(lián)機(jī)事務(wù)處理系統(tǒng)(OLTP)以及數(shù)據(jù)倉庫通常使用大型機(jī)系統(tǒng)進(jìn)行批處理。與其他語言相比,Java與這種架構(gòu)的聯(lián)系更為自然。您可以將Java與COBOL和中間件軟件集成起來。
您還可以將Java與OLTP標(biāo)準(zhǔn)和架構(gòu)結(jié)合起來。如果公司希望致力于開發(fā)對采用事務(wù)處理設(shè)計(jì)的大型系統(tǒng)執(zhí)行數(shù)據(jù)分析的應(yīng)用,Java就非常適合。
結(jié)論
Java是一種面向?qū)ο蟮?、通用的、?dú)特的語言,提供了大量功能。其出色的性能和速度使其成為市場上最受歡迎的技能之一。它還提供安全功能、以網(wǎng)絡(luò)為中心的編程以及與平臺無關(guān)等優(yōu)點(diǎn)。
Java為數(shù)據(jù)科學(xué)家提供了許多數(shù)據(jù)科學(xué)功能,比如數(shù)據(jù)分析、數(shù)據(jù)處理、統(tǒng)計(jì)分析,數(shù)據(jù)可視化和NLP。Java有助于將機(jī)器學(xué)習(xí)算法運(yùn)用于實(shí)際應(yīng)用場景。它使您可以基于批處理和流處理技術(shù),構(gòu)建自適應(yīng)預(yù)測模型。連同REPL和lambda表達(dá)式,它簡化了構(gòu)建大型應(yīng)用程序的工作。
如果您在考慮將Java應(yīng)用于數(shù)據(jù)科學(xué)項(xiàng)目,那就用它吧。對于數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師而言,這是一種很出色的語言。
原文標(biāo)題:Top 6 Reasons Data Scientists Should Know Java ,作者:Malcom Ridgers
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】