丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能 正文
發(fā)私信給三川
發(fā)送

0

機器學習新星:Scala 優(yōu)于 Java 的五大理由!

本文作者: 三川 2017-01-11 15:54
導語:Java 開發(fā)者是否應該學學 Scala?

機器學習新星:Scala 優(yōu)于 Java 的五大理由!

Java 在程序猿江湖的霸主地位已經(jīng)很多年沒有受到挑戰(zhàn)了。

作為一門主流編程語言,在所有領(lǐng)域的普及率、職業(yè)選擇、業(yè)界傾向榜單中,Java 即使不在榜首,也位于前列。即便是 Python 為王的機器學習領(lǐng)域,Java 的普及程度也穩(wěn)居第二、三位,僅有 R 語言可與之相比。Java 能有如此巨大的成功,跟它的靈活多功能,以及處理復雜任務的能力是分不開的。但有沒有比 Java 更好的選擇呢?

就雷鋒網(wǎng)所知,在資深程序猿眼中,能替代 Java、并且能做得比它更好的只有 Scala。這篇文章并不是對 Scala 平白無故的吹捧文,而是基于:

  • 大家知道 Scala 在業(yè)內(nèi)的口碑不錯;

  • 作為一個后起之秀,它解決了 Java 普遍存在的許多問題;

  • 另一方面, Scala 的性能比 Java 更加強大;

  • 上期盤點中,我們還發(fā)現(xiàn),在機器學習領(lǐng)域,2014 年后 Scala 在美國的招聘需求出現(xiàn)井噴,是發(fā)展最快的機器學習開發(fā)語言(詳見 Python、R、Java、 C++ 等:從業(yè)界反饋看機器學習語言趨勢)。

但是,作為一門新興語言,國內(nèi)對于 Scala 的認識較少。下面,來看看國外移動游戲開發(fā)商 Nimblechapps 的創(chuàng)始人兼 CEO Keval Padia,總結(jié)的 Scala 優(yōu)于 Java 的五大理由:

機器學習新星:Scala 優(yōu)于 Java 的五大理由!

Nimblechapps 的 logo

1. 更快地投放市場

如果你是一個業(yè)余開發(fā)者,不存在項目市場、成本方面的考慮,對這一條 Scala 的優(yōu)點或許你并不感冒。但對于所有領(lǐng)工資的開發(fā)者,必須要在規(guī)定時間內(nèi)把產(chǎn)品投放市場。這是一個沒有爭議的、Scala 優(yōu)于 Java 的領(lǐng)域。對于 Scala,OO(面向?qū)ο螅┠J皆趫?zhí)行代碼時的限制并不存在。在這一模式之外,還能為算法加入函數(shù)式編程。這使得原本兩個世界——面向?qū)ο笳Z言和函數(shù)式語言的優(yōu)點能被結(jié)合起來。這產(chǎn)生的結(jié)果是具有非凡表達力的細節(jié)和簡潔明了的代碼——經(jīng)常只有幾行。更少的代碼行數(shù)在所有方面都提高了速度,不管是測試還是開發(fā)。

2. 避免死鎖(deadlock)

作為一名碼農(nóng),你也許經(jīng)常在編程中遇到出現(xiàn)死鎖的情況。最可怕的空指針異常(null pointer exception)以及其它變種,就是很好的例子

Scala 能提供一個直截了當?shù)慕鉀Q方案嗎?不能。但它提供了一些能事先避免死鎖的、十分有效的選擇。當你開始用 Scala 寫代碼,你一定會注意到空指針異常出現(xiàn)的次數(shù)比 Java 大幅減少。

3. 更好的寫代碼輸出

首先,函數(shù)式編程能幫助你的 app 提高穩(wěn)定性,并且?guī)ё吆芏啾緹o意產(chǎn)生的副產(chǎn)品。當你從可變數(shù)據(jù)結(jié)構(gòu)( mutable data structures)轉(zhuǎn)移至所謂的函數(shù)式模式,你會保證更高的安全性、穩(wěn)定性。

第二點,沒有標點的代碼會變成更強。Scala 的代碼支持混合能力和多種繼承(inheritances)這會幫助你找出代碼中的漏洞、缺陷。更干凈、強大的代碼幫助開發(fā)者提升終端應用的安全和表現(xiàn)。

4. 第三方 API 儲備

所有開發(fā)者都需要為 app 加入功能。如今,這有兩種方式:白手起家從頭寫代碼,或者從第三方應用中移植過來?,F(xiàn)在程序架構(gòu)師都需要走過這個關(guān)鍵路口——決定到底是自己開發(fā)整個功能,還是直接拿來一個插件。

但其實還有第三種方式:Scala 提供了一個更強大的解決方案:它搭載了多種寶貴的內(nèi)置功能。由于這一點,你對自己的應用有遠遠更好的控制力。Scala 簡單、直接的代碼也能夠提升載入速度。

5. 異步處理

不同于 Java,Scala 為傳遞異步行為(asynchronous behavior)而設計。未來就緒(future readiness)在 Java 的缺失,導致了一系列限制了應用功能的妥協(xié)。但就像其他網(wǎng)絡開發(fā)框架一樣,Scala 中的異步行為提供了非常舒服、自然的代碼。

機器學習新星:Scala 優(yōu)于 Java 的五大理由!

看了這五大優(yōu)點,你是否已經(jīng)準備拿 Scala 試試手了呢?但雷鋒網(wǎng)要提醒讀者們,不要期望太高。比如說,它在國內(nèi)的大環(huán)境并不理想,使用 Scala 的人太少,工作機會比國外少得多。對于個體而言,它也并不適合每個人。大牛 David Pollak 曾經(jīng)表示:“對于50%的Java開發(fā)者,學習Scala的難度高于它帶來的便捷。”在早年的博客中,他反復強調(diào) Scala 是一個面向聰明人的語言,是一個給熱愛寫代碼的人充分發(fā)揮自己才能的平臺。

換句話說,Scala 難以在大眾開發(fā)者群體之間推廣。但近兩三年來,全世界已經(jīng)目睹美國掀起的 Scala 風潮。雖然作為游戲公司的 CEO,Keval PadiaScala 只是從手機端 app 開發(fā)的角度看待 Scala;但在機器學習領(lǐng)域,Scala 也已獲得相當多自認天賦不凡的極客作為擁躉。

至于在將來,Scala 能否在國內(nèi)高端開發(fā)者社區(qū)對 Java 形成沖擊,雷鋒網(wǎng)將拭目以待。

via jaxenter

相關(guān)文章:

入門必讀 機器學習六大開發(fā)語言

Python、R、Java、 C++ 等:從業(yè)界反饋看機器學習語言趨勢

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

機器學習新星:Scala 優(yōu)于 Java 的五大理由!

分享:

用愛救世界
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說