又要頭禿?2020 年七大 AI 程式語言大盤點

2020-12-05 CSDN

本文講述用於人工智慧編程的頂級程式語言,AI工程師和相關從業者可從中選擇適合他們項目所需要的語言,你Pick哪個呢?

作者 | Claire D

譯者 | 蘇本如,責編 | 伍杏玲

頭圖 | 視覺中國

以下為譯文:

人工智慧已成為我們日常生活不可或缺的一部分,它被廣泛地應用到幾百種實際場景中,極大地便利人們的工作和生活。

隨著近年來的發展,人工智慧促進企業的發展,這該歸功於底層程式語言核心的改進。

隨著人工智慧的蓬勃發展和程式語言的持續改進,對高效、熟練的程式設計師和工程師的需求激增。雖然有很多程式語言可以讓你在人工智慧上開發領域輕鬆起步,但是沒有一種程式語言可以成為人工智慧編程的「一站式」解決方案,因為每種程式語言都有自己的獨特之處。目的不同,對語言的要求也會不同。

接下來,我將列出一些最受歡迎的人工智慧程式語言,一起看下:

Python

Python是有史以來最強大的程式語言。——Pau Dubois

Python誕生於1991年。據一項民意調查顯示,超過57%的開發人員更願意選擇Python,而不是C++作為開發人工智慧解決方案的程式語言。Python易於學習,為程式設計師和數據科學家們提供了一個更輕鬆地進入人工智慧開發世界的入口。

Python是一個關於程式設計師需要多少自由的實驗。太多的自由,會導致沒有人能讀懂別人的代碼;太少的自由,會傷害到語言的表現力。——Guido van Rossum

使用Python,你不僅可以獲得優秀的社區支持和大量的庫,還可以享受程式語言提供的靈活性。Python最有可能讓你受益的一些特性是:平臺獨立性和可以用於深度學習和機器學習的廣泛框架。

使用Python編程的樂趣應該是看到簡潔、可讀性強的類,這些類使用簡潔而清晰的代碼(而不是一堆無聊至死的瑣碎代碼)完成了大量的操作。——Guido van Rossum

下面是一段Python代碼的示例:

Python代碼示例片斷

Python的一些最受歡迎的庫,列表如下:

TensorFlow,用於解決機器學習的工作負載和使用數據集問題。scikit-learn,用於培訓機器學習模型。PyTorch ,用於計算機視覺和自然語言處理。Keras,作為高度複雜的數學計算和操作的代碼接口。SparkMLlib,類似於Apache Spark的機器學習庫,使用算法和實用程序等工具使得機器學習對每個人都可以很輕鬆。MXNet,作為Apache的另一個庫,用於簡化深度學習工作流。Theano,作為定義、優化和評估數學表達式的庫。Pybrain,用於強大的機器學習算法。此外,對GitHub存儲庫貢獻的分析結果顯示,Python已經超越Java,成為第二大最受歡迎的程式語言。實際上,Stack Overflow認為它是「增長最快」的主流程式語言。

圖源:Octoverse

適合初學者的Python課程:

3個供初學者學習的免費Python課程:2020版https://hackernoon.com/3-free-python-courses-for-beginners-2020-edition-j7c23y3uhackernoon.com網站提供的最好的免費Python課程,如果你想擴展你的Python知識,那麼請來這裡。

Python訓練營:學習Python語言和編碼的培訓營https://www.udemy.com/course/complete-python-bootcamp/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-lB6TwxSdouentAk36.qjmw這是Udemy上學習Python程式語言的最全面、最直接的課程!

Java

一次編寫,到處運行。

Java被認為是世界上最好的程式語言之一,過去20年大夥的使用證明了這一點。

Java程式語言具有高度的用戶友好性、靈活性和平臺獨立性,它已經以各種方式被用於人工智慧的開發當中,以下是一些例子供你了解:

TensorFlowTensorFlow支持的程式語言列表也包括帶有API的Java。它對Java的支持不像其他完全支持的語言那樣功能豐富,但它已經存在,並且正在以很快的速度得到改進。

Deep Java Library由Amazon構建,使用Java來創建和部署深度學習能力。

KubeflowKubeflow用於在Kubernetes上輕鬆部署和管理機器學習堆棧,提供現成的機器學習解決方案。

OpenNLPApache的OpenNLP是一個用於自然語言處理的機器學習工具。

Java機器學習庫Java ML為開發人員提供了幾種機器學習算法。

Neuroph在Neuroph GUI的幫助下,Neuroph使得使用Java開源框架設計神經網絡成為可能。

如果Java有真正的垃圾回收,那麼大多數程序在執行完後都會把自己從內存中刪除。——Robert Sewell

Java代碼的示例片斷如下:

Java代碼的示例片斷

適合初學者的Java課程:

供初學者在線學習的五個最好的Java編程課程https://javarevisited.blogspot.com/2018/05/top-5-java-courses-for-beginners-to-learn-online.html如果你是一名計算機學科的畢業生,或者是想學習Java並尋找一些很棒的資源的人,那麼請來這裡吧。

R語言

官網

R語言是由Ross Ihaka和Robert Gentleman開發,1995年推出第一個版本。目前它由R開發核心團隊維護。R語言是S程式語言(以統計和繪圖為目的)的一種實現,它被用來輔助開發統計軟體和數據分析。

R語言被開發人員大量地用於人工智慧編程,主是是因為它具有以下兩個特點:

R語言擅長處理大量數據的基本特性,相比帶有未經優化的NumPy包的Python語言來說,更有優勢。使用R語言,你可以以各種編程模式工作,如函數式編程、矢量計算和面向對象編程。R語言可供使用的一些AI編程包有:

Gmodels,提供了用於模型擬合的多個工具的集合。Tm,作為一種文本挖掘應用的框架。RODBC,作為R語言的ODBC接口。OneR,用於實現One Rule機器學習分類算法,適用於機器學習模型。R語言因其如下特點/功能,在數據挖掘人員和統計人員中被廣泛採用:

各種各樣的庫和包,以擴展其功能。積極支持的社區。能夠與C、C++和FORTRAN一起工作多個軟體包幫助功能擴展。支持生成高質量的圖形一個有趣的R語言應用例子:

使用R語言製作2019新冠肺炎(Covid-19)交互式地圖:

https://www.r-bloggers.com/covid-19-interactive-map-using-r-with-shiny-leaflet-and-dplyr/

使用R語言製作2019新冠肺炎(Covid-19)交互式地圖

Prolog

Prolog是Programming in Logic(邏輯編程)的簡稱,Prolog語言最初出現於1972年。它為人工智慧開發,特別是自然語言處理提供了一個令人興奮的工具。Prolog語言最適合創建聊天機器人,ELIZA是用Prolog創建的第一個聊天機器人。

第一個成功的聊天機器人,圖源medium

要理解Prolog,你必須熟悉指導它工作的一些基本術語:

Facts(事實)定義了真實的聲明。Rules(規則)定義了有附加條件的聲明。Goals(目標)定義了根據知識庫確定的報表提交的位置。Queries(查詢)定義如何使你的聲明真實,以及如何對事實和規則進行最終分析。Prolog提供了兩種實現人工智慧的方法,這兩種方法已經在實踐中使用很長時間了,並且在數據科學家和研究人員中廣為人知:

符號方法(Symbolic Approach):包括基於規則的專家系統、定理證明、基於約束的方法。統計方法(Statistical approach):包括神經網絡、數據挖掘、機器學習等。

Lisp

用來創建一個有著N維輸入和M個輸出單元的單層感知器的Lisp代碼

Lisp是List Processing的簡稱,它是僅次於Fortran的第二古老的程式語言。Lisp被稱為人工智慧的創始之父之一,由約翰·麥卡錫(John McCarthy)於1958年創建。

Lisp是一種語言,它能讓你做到別人告訴你不可能做到的事情。——Kent Pitman

Lisp作為一種實用的面向數學符號處理的程式語言,它很快成為開發人員的人工智慧程式語言的選擇。Lisp如下的一些特性,使其成為機器學習人工智慧項目的最佳選擇之一:

快速原型創建動態對象創建垃圾回收靈活性隨著其他與之競爭的程式語言的重大改進,Lisp特有的一些特性也應用到其他語言中。採用了Lisp開發的一些著名項目包括Reddit和HackerNews。

就Lisp而言,你知道它是世界上最美麗的語言,至少在Haskell出現之前是這樣。——Larry Wall

Haskell

官網

Haskell發布於1990年,以著名數學家Haskell Brooks Curry的名字命名,它是一種純函數式和強靜態類型的程式語言,經常和延遲計算和較短的代碼搭配使用。

Haskell被認為是一種非常安全的程式語言,與其他程式語言相比,它在錯誤處理方面提供了更大的靈活性。在Haskell中很少發生錯誤。即使它們確實發生了,大多數非語法錯誤都是在編譯階段,而不是運行時捕獲的。Haskell提供的一些功能包括:

強大的抽象能力內置的內存管理代碼可重用性易於理解SQL、Lisp和Haskell是我見過的僅有的程式語言,在這些語言中,人們花在思考上的時間比寫代碼的時間要多。

Philip GreenspunHaskell的特性有助於提高開發人員的工作效率。Haskell與其他程式語言非常相似,只是由一個小眾的開發團隊使用。拋開這些挑戰不談,Haskell可以證明它與其他競爭語言一樣適合人工智慧開發,並且越來越多地被開發社區採用。

Julia

Julia是一種高性能、通用的動態程式語言,適合創建幾乎任何應用程式,尤其非常適合數據分析和計算科學。能夠與Julia一起工作的各種工具包括:

流行的編輯器,如Vim和Emacs。集成開發工具,如Juno和Visual Studio。

Julia原始碼的目錄結構

Julia提供的下列特性,使其在人工智慧編程、機器學習、統計和數據建模中成為一個不可或缺的選項:

動態類型系統內置的包管理器能夠進行並行和分布式計算宏和元編程能力支持多個調度對C語言函數的直接支持Julia是為消除其他程式語言的弱點而構建的,它可以與TensorFlow.jl、MLBase.jl、MXNet.jl等工具集成,用於開發機器學習應用程式,這些工具充分利用了Julia提供的可伸縮性。

Google Trend – Julia的用戶數隨時間變化圖:

圖源:Google trends

2019Julia開發大會的介紹視頻:https://www.youtube.com/user/JuliaLanguage

有了以上幾種人工智慧程式語言可供選擇,人工智慧工程師和科學家們可以選擇適合他們項目需要的語言。每一種人工智慧程式語言都有各自的優缺點。

隨著這些語言的不斷改進,很快人工智慧的開發就會變得比現在更加輕鬆和高效,更多人就可以加入到這股創新浪潮中來。好的社區支持使得新人們的生活更加美好,社區對擴展計劃的貢獻使每個人的編程工作生活更加輕鬆。

原文:https://towardsdatascience.com/top-programming-languages-for-ai-engineers-in-2020-33a9f16a80b0

本文為 CSDN 翻譯,轉載請註明來源出處。

相關焦點

  • 2020 10大薪資最高的IT程式語言排名
    坊間流傳一句俗語:IT行業自2016年首次超過金融行業以後,一直到現在每年都是穩居高薪第1名的寶座。本文盤點了2020 10大薪資最高的IT程式語言排名,看看是哪些編碼技巧為高薪工作打開了大門。(本文薪資以美國為例)
  • 現代程式語言哪家強?2020年你或許應該了解這7門程式語言
    在這個列表中,我主要考慮 2007 年後的程式語言。首先,開發現代程式語言是為了充分利用現代計算機硬體(多核 CPU、GPU、TPU)、行動裝置、大數據集、快速網絡、容器和雲。其中一些已經成為主流程式語言,而另一些則等待取得突破。至少作為第二種程式語言來學習這些語言是明智的。在之前的一篇博文「20 個 2020 年軟體發展趨勢預測」中,我預測了 2020 年許多現代程式語言的突破:
  • Java 穩步成長、Kotlin 崛起,2020 年各大程式語言發展趨勢一覽
    在《Python編程-從入門到實踐》的作者 Eric Matthes 看來,這是一場無痛的權利移交,不足為奇。他說 「長期以來,Guido 一直保持著自己的姿態以及他在社區中的角色」。2020 年,Python 2.7 也將終止支持,這可能會讓那些堅持使用 Python 2.7 的用戶感到頭疼。與此同時,Python 仍然是數據科學的首選語言。
  • 2020年最流行的10種程式語言是什麼?
    技術是通過程式語言來實現的,技術領域中有600多種程式語言。程式語言的命令和識別每年都在變化。此外,新的程式語言還具有引人注目的特性和功能。為了促進軟體開發服務和Web應用程式的需求,以下急需提及的十大最受歡迎的程式語言。1.
  • 這麼多程式語言,2020年人工智慧最常用的程式語言到底是什麼?
    人工智慧主要使用的語言其實有5種:1、PythonPython使用非常的簡單,是人工智慧領域中使用最多的一種程式語言,可以實現無縫地與數據結構和其他常用的AI算法共同使用。人工智慧4、PrologProlog主要是一種邏輯程式語言
  • RedMonk 2020 年 Q3 程式語言排行:Rust 首次進入前 20
    知名軟體行業分析公司 RedMonk 發布了 2020 年 6 月(Q3 季度)程式語言排行榜。
  • 2020十大編程博客:私藏的寶藏程式語言博客大放送
    編程很奇妙,它賦予了人類控制計算機系統的超能力,可以用於航空、交通管控、機器人、自動駕駛汽車、網站、行動應用程式以及其他數不盡的領域。軟體工程師已經創造了許多種程式語言,每一種都對應於解決不同的問題。本文中,筆者將分享幾個有關不同編碼語言的網站和博客,以及其最佳使用方案。排名不分先後,上榜各有千秋!
  • TIOBE 8 月程式語言:C、Java 差距拉大,R 語言盛行
    程式語言社區 TIOBE 最新發布了 8 月程式語言排行榜。相比上個月,本月 TIOBE 指數整個體變化並不大。C 語言依然保持強勁的增長勢頭,與第二名 Java 之間差距逐月增大,從上個月相差 1.35% 的份額逐步增長到 2.55% 的差額。
  • TIOBE:2014年1月程式語言排行榜 Transact-SQL成為2013年度程式語言
    Transact-SQL在2013年最後一個月擊敗了其他競爭力對手,成為TIOBE 2013年度程式語言。2011年和2012年的年度程式語言是Objective-C。
  • 詳解:少兒編程學什麼?它和成人編程教育有何不同?
    2018年高考數學卷2019年全國卷理科數學讓孩子學習編程已然不是興趣所需,而是逐漸成為與語數外同等重要,必須掌握的一門學科知識了。少兒編程教育主要面向K12青少兒,採用由淺到深的教學方法循序漸進,從簡單易理解的實物編程基礎課到編程進階課、跨學科學習及綜合應用,逐步探索,促進孩子思維的全面開發。以芯恆安智能家居5.0「ai 玩空間」版為例,將居家生活智能化與兒童 AI 編程教育相融合,為家庭定製智慧生活的同時,也讓智能家居「變身」學編程玩 AI 的教具。
  • TIOBE 2013年12月程式語言排行榜:Transact-SQL衝刺年度語言
    TIOBE 2013年12月份程式語言排行榜出爐,本月前三甲依然為:C、Java、Objective-C。 離TIOBE宣布2013年度程式語言只有1個月的時間。以下是21-50程式語言排名: 排名     程式語言名稱
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • TIOBE 11 月程式語言:Python超越Java!
    以下是 2019 年到 2020 年的搜索指數概覽: 排名 1-20 的程式語言 各大程式語言的歷史排名(1988-2020)
  • 16655名開發者調查:2020年最搶手的程式語言是谷歌的Go
    很多開發者都非常想學Go(谷歌創建針對大型系統的程式語言),此外最新調查還發現大多數開發者都厭倦了會議,而且在跨國公司工作的開發者通常都不快樂。根據HackerEarth公司對來自76個國家超過16,655名開發者進行的調查結果顯示,在最想了解的程式語言中Go名列前茅。調查發現,32%的有經驗的開發者選擇Go作為他們想學習的程式語言,遠遠超過了Python,24%的人說他們想學習Python。
  • 程式語言那麼多,選擇學習C語言的三大理由!
    都2020年了,為什麼大學裡教的第一門語言還是C?最近在網上看到很多同學都在吐槽這個問題。程式語言那麼多,C語言到底有何優勢值得大家選擇呢?首先作為一門已經問世50年的老語言了,C語言已經很老了,但不可否認的是它仍然很能打,無論是曾經風靡一時的java還是現在火熱的python,在風口過後,屹立不倒的還是C語言。根據最新的TOIBE排名,C語言高居榜首,而且縱觀近20年程式語言的排名變化,C語言也一直都是前三甲,這充分說明了它的江湖地位!
  • 十大受歡迎的程式語言你pick哪一個?
    這幾年科技信息類的人才一直是各大網際網路公司永遠都不嫌多的,導致的就是編程學不知不覺就火紅了起來;甚至很多家長直接從娃娃抓起,幾歲的小孩就開始去學編程!然而現在已有的計算機語言總數總計達9000多種,但是其實只有50種程式語言是較為流行的。在眾多的程式語言中,究竟抱團前十的有哪些呢?下面2020年十大受歡迎的程式語言中,哪個才是你的最愛?
  • 2020年零基礎學什麼程式語言進IT行業?
    大家都建議零基礎學編程,要想入行的話最好是學C語言,也許會有很多同學想知道為什麼不是Java,Java和C語言在學習上會有哪些不同呢?1.入門難度Java是一種面向對象的語言,C是一門面向過程的語言。在學習難度上,C語言要大於Java。C語言中包含函數、遞歸和比較難理解的指針概念指針是學C中繞不過去的知識點,而且下一步接著就是學數據結構和算法切換,指針還貫穿其中,搞不定一個指針,下一步的學習就很難,基本上很多初學者就在初期放棄了。
  • 最受程式設計師歡迎的十大程式語言
    最受程式設計師歡迎的十大程式語言 IT程序猿的科技營 發表於 2020-06-29 11:23:30   1、Java   相關職位:Java應用程式開發人員
  • 機器人程式語言的類型有哪些?
    網絡整理 發表於 2020-07-23 16:08:27   機器人程式語言的類型有哪些?
  • 2020年流行的程式語言TOP5都有哪些?你了解或掌握的又有哪幾種?
    如果你有打算進入程式設計師這個行業,或者從事程式設計師工作很多年想擴展和了解一下其它的語言環境,使得編程工作沒有那麼枯燥,那就必須了解目前全球範圍內哪幾種程式語言比較受歡迎,那就可以有針對性地去學習和提高這方面的編程能力,給自己設定一個新的工作定位和目標,為自己創造更多的就業可能性。