AI(人工智能)爲應用開發者開創了一個全新的可能性。經過利用機器學習或深度學習,您能夠生成更好的用戶配置文件、個性化設置和推薦,或者整合更智能的搜索、語音界面或智能助手,或者以其餘數種方式改進您的應用。你甚至能夠構建看得懂、聽得懂,並與人類互動的應用。準備學習AI的你,知不知道選擇哪一種編程語言合適呢?如下列舉的五種編程語言,被認爲是最適合用來學習AI。你們能夠參考一下。html
1. PYTHON
第一名毫無疑問是 Python。儘管 Python 有些特性使人不爽(whitespace、Python 2.x 和 Python 3.x 之間的巨大差別、五種不一樣的包機制都在不一樣程度上有缺陷)但若是你正在從事 AI 工做,你幾乎確定會在某些時候用到 Python。python
Python 中可用庫的數量是其餘語言所沒法企及的。NumPy 已經變得如此廣泛,以致於幾乎成爲了張量運算的標準 API,Pandas 將 R 的強大而靈活的數據幀帶入 Python。對於天然語言處理(NLP),您可使用久負盛名的 NLTK 和快如閃電的 SpaCy。對於機器學習,有通過實戰檢驗的 Scikit-learn。當談到深度學習時,當前全部的庫(TensorFlow,PyTorch,Chainer,Apache MXNet,Theano 等)都是在 Python 上首先實現的項目。git
(在LiveEdu上,一位德國的AI開發者教你們如何使用Python開發兩個簡單的機器學習模型)程序員
若是您正在閱讀關於 arXiv 的頂尖深度學習研究,那麼幾乎能夠確定您會在 Python 中找到源代碼。 此外,Python 生態系統中還有其餘部分。雖然 IPython 已經更名爲 Jupyter Notebook,看上去再也不以 Python 爲中心,但您仍然會發現絕大多數 Jupyter Notebook 用戶以及大多數在線共享筆記本都使用 Python。github
Python 是人工智能研究的前沿語言,這是擁有最多機器學習和深度學習框架的語言,也是 AI 研究者幾乎都掌握的語言。因爲這些緣由,儘管筆者天天都要咒罵一次 whitespace 問題,Python 仍然是人工智能編程語言之王,您無法繞過它。apache
2. JAVA 和相關語言編程
JVM 系列語言(Java,Scala,Kotlin,Clojure 等)也是 AI 應用開發的絕佳選擇。不管是天然語言處理(CoreNLP)、張量運算(ND4J)仍是完整的 GPU 加速深度學習堆棧(DL4J),您均可以使用大量的庫來管理流水線的各個部分。另外,您還能夠輕鬆訪問 Apache Spark 和 Apache Hadoop 等大數據平臺。api
Java 是大多數企業的通用語言,在 Java 8 和 Java 9 中提供了新的語言結構,這使得編寫 Java 代碼的體驗再也不像咱們過去所記得的那樣糟糕。使用 Java 編寫人工智能應用可能會讓人以爲無聊,但它確實能完成工做,而且您可使用全部現成的 Java 基礎架構來開發、部署和監視。瀏覽器
3. C/C++
在開發 AI 應用時,C / C ++ 不太可能成爲您的首選,但若是您在嵌入式環境中工做,而且沒法承受 Java 虛擬機或 Python 解釋器的開銷,那麼 C / C ++ 就是最好的解決方案。當你須要榨乾系統的每一滴性能時,你就得面對可怕的指針世界。安全
幸運的是,現代 C / C ++ 寫起來體驗還不錯(實話實說!)。您能夠從下列方法中選擇一個最適合的:您能夠一頭扎進堆棧底部,使用 CUDA 等庫來編寫本身的代碼,這些代碼將直接在 GPU 上運行;您也可使用 TensorFlow 或 Caffe 以訪問靈活的高級 API。後者還容許您導入數據科學家用 Python 寫的模型,而後以 C / C ++ 級別的速度在生產環境中運行它們。
在將來一年中,請密切留意 Rust 在 AI 領域的一些動做。結合 C / C ++ 級別的速度與類型和數據安全性,Rust 是實現產品級性能卻不會形成安全問題的最佳選擇。而且它如今已經能夠與 TensorFlow 綁定了。
4. JAVASCRIPT
蛤?!JavaScript?我沒聽錯吧?其實,谷歌最近發佈了 TensorFlow.js,這是一個 WebGL 加速庫,容許您在 Web 瀏覽器中訓練和運行機器學習模型。它還包括 Keras API 以及加載和使用在常規 TensorFlow 中訓練過的模型的功能。這可能會吸引大量的 JS 開發者涌入 AI 領域。雖然 JavaScript 目前可以訪問的機器學習庫與其餘語言相比有所侷限,但在不久的未來,開發者在網頁中添加神經網絡就和添加 React 組件或 CSS 屬性同樣簡單。這聽上去既強大又恐怖。
TensorFlow.js 仍處於早期階段。目前它可在瀏覽器中運行,但不適用於 Node.js。它尚未實現完整的 TensorFlow API。不過,我預計到 2018 年末,這兩個問題都將基本獲得解決,而且JavaScript 將在不久以後大舉進軍 AI 界。
5. R
R 在這份榜單中排名最末,而且看上去將會愈來愈沒落。R 是數據科學家喜歡的語言。可是,其餘程序員在第一次接觸 R 時會感到有些困惑,由於它採用了以數據幀爲中心的方法。若是您有一組專門的 R 開發者,那麼將 R 與 TensorFlow、Keras 或 H2O 搭配使用,進行研究、原型設計和實驗是有意義的。但基於性能和操做方面的考慮,我不肯意推薦將 R 用於生產。雖然您能夠寫出能在生產服務器上部署的高性能 R 代碼,但將這種用 R 語言編寫的原型從新編碼爲 Java 或 Python 確定會更容易。
本文爲轉載,原文出處:《AI 開發,究竟哪一種語言強?》