最好的Julia語言


做大數據/機器學習方面的工作多年. 最為熟悉 C++, Matlab/R/Python/Java/Scala 都用過.但每種語言的體驗總覺得有缺憾.


一個理念: 如果不是語言專家, 那么編程語言, 僅是實現想法的工具. 更為重要的事情如何快速准確地實現功能和想法, 而不是消耗在工具本身. 

1. C++

    與 C 語言一樣, 計算性能是公認的, 沒有多少語言比它們更快了. 但正由於其離機器原理更近, 細微的計算資源控制(尤其是內存管理,指針等)等原因, 使得其開發和維護成本很高. 要快速實現想法C++ 肯定不是最好的選擇. 

2. Matlab/R

    讀博期間, 很多人都會選擇 Matlab 做實驗, 因為功能強大, 有你所想, 而 R 語言則是開源的解決方案.  但其收費和臃腫的環境, 總是讓人心里有疙瘩. 而且性能真的不行.  對於那些基於很多或很大數據做訓練學習的算法, 簡直無法忍受

3. Python

  python 的簡潔和強大的第三方功能支持, 使得實現起來, 高效很多. 確實是驗證想法的好環境. 但在用其實現一個分布式系統, 並部署生產的過程中發現, 其在很多地方都會有不明所以的坑. 而且其全局鎖讓追求高並發的系統很無奈, 尤其是計算密集的系統.

還有一個極度不認可的就是, 那個一定要對齊的格式要求.

4.  Scala

Scala 的使用是經常需要開發分布式的大數據算法, 而 Spark 經常是首選, 在 Spark 的接口中, Scala 更為全面, 而且邏輯與 spark 的設計實現更為貼近, 所以傾向於 SCala.

但 Scala 的語法簡直是外星語, 紛繁蕪雜的符合和設計方式, 簡直讓人頭大. 

這是個萬花筒, 但對於需要標准化和可維護性的工業生產環境, 選擇 Scala 也許是個錯誤的選擇.

總結:

最近, 在了解 Lua 的過程中, 竟然發現了一種專門為"並行"數值計算設計的語言, Julia

在了解和試用之后, 發現這才是適合我的最好的語言.

1. 可調用 C/Python 庫, 聰明的做法, 可以更好的繼承現有的成果

2. 類似 matlab 和 python 的語法, 更換語言的學習成本低, 而且實現起來天生就像python那樣高效

3. 接近於 C++ 的性能, 在很多情況下已經足夠了

4.  開源的做法, 使得語言具有強大的 Package后備力量, 在生態上已經初具規模

5. 天生的並發和分布式支持, 省很多事情了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM