0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機(jī)器學(xué)習(xí)中最流行的10種編程語言

電子工程師 ? 來源:工程師李察 ? 2019-01-01 11:02 ? 次閱讀

在本文中,我們將會審視在機(jī)器人學(xué)習(xí)中最流行的10種編程語言,深入探討它們各自的優(yōu)缺點(diǎn)以及使用和棄用它們的原因。

這實(shí)際上是個很有道理的問題——畢竟,如果你從不付諸實(shí)踐,那為什么要花大量的時間和精力去學(xué)習(xí)一種新的編程語言呢?如果作為一名機(jī)器人學(xué)新人,你當(dāng)然會想學(xué)習(xí)一種確實(shí)對你的職業(yè)生涯很有用的編程語言。

不幸的是,如果你去問一屋子的機(jī)器人學(xué)專家,“什么是機(jī)器人學(xué)中最好編程語言?”,你永遠(yuǎn)不會得到一個直接的答案。

電氣工程師會從工業(yè)機(jī)器人技術(shù)這個角度給出不同的答案。計算機(jī)視覺程序員給出的答案會跟認(rèn)知機(jī)器人專家給出的不一樣。而且,每個人都會對什么是最好的編程語言有自己的看法。對于一個新入行正在試圖決定要先學(xué)哪種語言的機(jī)器人學(xué)者來說,這是一個相當(dāng)無用的答案。即使這是最現(xiàn)實(shí)的回答——因為它的確取決于你想要開發(fā)的應(yīng)用程序和你在使用的系統(tǒng)。

對于機(jī)器人專家來說,最重要的事情是開拓你的”編程思維”,而不是精通一種特定的編程語言。從很多方面來說,從哪種編程語言開始學(xué)習(xí)真的無關(guān)緊要。你學(xué)習(xí)的每種語言提升了你的編程思維,擁有了這種思維,去學(xué)習(xí)一種新編程語言的時候會容易不少。

世界上有1500多種編程語言,都要學(xué)的話是太多了。目前,在機(jī)器人學(xué)中有這10種最流行的編程語言——如果你喜歡的不在這里,請在留言區(qū)告訴大家。對于機(jī)器人學(xué),每種編程語言有不同的優(yōu)點(diǎn)。我只是部分地按照重要程度從低到高對它們進(jìn)行了排序。

10、BASIC/Pascal

BASIC和Pascal是我最早學(xué)過的兩種編程語言。不過這并不是我把它們列在這里的原因。對于幾種工業(yè)機(jī)器人語言,它們是基礎(chǔ),下面說明一下。BASIC是為初學(xué)者設(shè)計的(BASIC是縮寫,BeginnersAll-PurposeSymbolicInstructionCode),它讓初學(xué)者可以從一種非常簡單的編程語言開始學(xué)習(xí)。Pascal旨在鼓勵好的編程習(xí)慣,還引入了結(jié)構(gòu),例如指針,這讓Pascal成為從BASIC到更復(fù)雜語言的一塊“敲門磚”。如今,這兩種語言如果要說是好的“日常使用”程序語言,那是有點(diǎn)過時了。不過如果你準(zhǔn)備做很多底層編碼或是想要熟悉一下其它工業(yè)機(jī)器人編程語言,學(xué)習(xí)一下還是有用的。

9、工業(yè)機(jī)器人編程語言

幾乎每一個機(jī)器人制造商都開發(fā)了他們自己專有的機(jī)器人編程語言,這成了工業(yè)機(jī)器人行業(yè)中的一個問題。通過學(xué)習(xí)Pascal,你會熟悉它們中的一部分。但是每次開始使用新的機(jī)器人時,你還得學(xué)習(xí)一種新的編程語言。

最近幾年,ROS行業(yè)已經(jīng)開始提供更標(biāo)準(zhǔn)化的替代語言給程序員。但是如果是一個技術(shù)人員,你仍然更可能不得不使用制造商的編程語言。

8、LISP

LISP是世界上第二古老的編程語言(FORTRAN更古老,但只早了一年)。相比今天提到很多其它編程語言,它的應(yīng)用并不廣泛。不過在人工智能編程領(lǐng)域它還是相當(dāng)重要的。ROS的一部分是用LISP寫的,雖然你不需要掌握這個來使用ROS。

7、硬件描述語言(HDLs)

硬件描述語言一般是用來描述電氣的編程方式。這些語言對于一些機(jī)器人專家來說是相當(dāng)熟悉的,因為他們習(xí)慣FPGAs(FieldProgrammableGateArrays)編程。FPGAs能讓你開發(fā)電子硬件而無需實(shí)際生產(chǎn)出一塊硅芯片,對于一些開發(fā)來說,這是更快更簡易的選擇。如果你沒有開發(fā)電子原型產(chǎn)品,你也許永遠(yuǎn)不會用HDLs。即便如此,還是有必要了解一下這種編程語言,因為它們和其它編程語言差別很大。一個重點(diǎn):HDLs所有的操作是并發(fā)的,而不是基于處理器的編程語言的順序操作。

6、Assembly

Assembly讓你能在0和1數(shù)位上進(jìn)行編程?;旧线@是最底層的編程語言。就在最近,最底層的電子需要Assembly進(jìn)行編程。隨著Arduino和其它如微控制器的崛起,現(xiàn)在你可以使用C/C++在底層方便地編程了。這意味著Assembly對于大多數(shù)機(jī)器人專家來說也許會變得更不必要了。

5、MATLAB

MATLAB以及和它相關(guān)的開源資源,比如Octave,一些機(jī)器人工程師特別喜歡,它被用來分析數(shù)據(jù)和開發(fā)控制系統(tǒng)。還有一個非常流行的機(jī)器人工具箱——MATLAB。我知道一些僅僅使用MATLAB就能開發(fā)出整個機(jī)器人系統(tǒng)的專家。如果你想要分析數(shù)據(jù),產(chǎn)生高級圖像或是實(shí)施控制系統(tǒng),你也許會想學(xué)習(xí)MATLAB。

4、C#/.NET

C#是微軟提供的專用編程語言。我把C#/.NET放在這里,主要是因為微軟機(jī)器人開發(fā)員工作包(Microsoft Robotics Developer Studio),這個包的主要開發(fā)語言是C#。如果你準(zhǔn)備用這個系統(tǒng),那么你很可能必須要用C#。

3、Java

作為一位電子工程師,我總是對一些計算機(jī)科學(xué)學(xué)位課程將Java作為第一種編程語言讓學(xué)生們學(xué)習(xí)感到驚訝。Java對程序員隱藏了底層存儲功能,這讓它比起一些語言(如C語言)來說,編寫要容易些,但這也意味著你會更少地理解底層代碼的運(yùn)行邏輯。如果你有計算機(jī)科學(xué)背景并轉(zhuǎn)到機(jī)器人學(xué)(很多人是這樣的,特別是在研究領(lǐng)域),你也許已經(jīng)學(xué)過Java。像C#和MATLAB,Java是一種解釋性語言,這意味著它不會被編譯成機(jī)器代碼。相反,Java虛擬機(jī)在運(yùn)行時解釋指令。使用Java,理論上讓你可以在不同的機(jī)器上運(yùn)行相同的代碼,這得感謝Java虛擬機(jī)。在實(shí)踐中,這不總是可行的,有時會導(dǎo)致代碼運(yùn)行緩慢。但是Java在一部分機(jī)器人學(xué)中非常流行,因此你也許需要它。

2、Python

近年來,學(xué)習(xí)Python的人有一個巨大的回潮,特別是在機(jī)器人領(lǐng)域。其中一個原因可能是Python(和C++)是ROS中兩種主要的編程語言。與Java不同,Python的重點(diǎn)是易用性,Python不需要很多時間來做常規(guī)的事情,如定義和強(qiáng)制轉(zhuǎn)換變量類型。這些在編程里面本是很平常的事。另外,Python還有大量的免費(fèi)庫,這意味著當(dāng)你需要實(shí)現(xiàn)一些基本的功能時不必“重新發(fā)明輪子”。而且因為Python允許與C/C++代碼進(jìn)行簡單的綁定。這就意味著代碼繁重部分的性能可以植入這些語言,從而避免性能損失。隨著越來越多的電子產(chǎn)品開始支持“開箱即用”Python(與RaspberryPi一道),我們可能會在機(jī)器人中看到更多Python。

注:The Raspberry Pi Foundation:英國一個小型的慈善組織,成立的宗旨在于推廣科技,而非以銷售技術(shù)來營利。

1、C/C++

最后我們到了排名第1的機(jī)器人編程語言!許多人認(rèn)為C和C++對新入行的機(jī)器人學(xué)家是一個很好的起點(diǎn)。為什么?因為很多硬件庫都使用這兩種語言。這兩種語言允許與低級別的硬件進(jìn)行交互,允許實(shí)時性能,是非常成熟的編程語言?,F(xiàn)如今,你可能會使用C++比C多,因為前者具有更多的功能。C++基本上是C的一種延伸。首先學(xué)一點(diǎn)C會很有用,特別是當(dāng)你發(fā)現(xiàn)一個硬件庫是用C編寫的。C/C++并不是像Python或MATLAB那樣簡單易用。同樣用C來實(shí)現(xiàn)相同的功能會需要大量時間,也將需要更多行代碼。但是,由于機(jī)器人非常依賴實(shí)時性能,C和C++是最接近我們機(jī)器人專家“標(biāo)準(zhǔn)語言”的編程語言。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    27989

    瀏覽量

    205535
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3543

    瀏覽量

    93464
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8320

    瀏覽量

    132164
收藏 人收藏

    評論

    相關(guān)推薦

    plc的編程語言主要有哪三

    PLC(可編程邏輯控制器)的編程語言多種多樣,但其中最為常用和廣泛認(rèn)知的三主要編程
    的頭像 發(fā)表于 10-21 17:04 ?120次閱讀

    plc的編程語言有哪幾種

    Diagram,LD) 梯形圖是PLC編程中最常用的一編程語言,它以圖形化的方式表示控制邏輯。梯形圖的
    的頭像 發(fā)表于 08-25 10:07 ?323次閱讀

    【《大語言模型應(yīng)用指南》閱讀體驗】+ 基礎(chǔ)篇

    章節(jié)介紹了機(jī)器學(xué)習(xí),從方法論上來看,機(jī)器學(xué)習(xí)屬于歸納推理;從開發(fā)設(shè)計方式來看,機(jī)器學(xué)習(xí)屬于自動
    發(fā)表于 07-25 14:33

    按照這樣學(xué)習(xí)C語言,成為卷王不是夢!

    在計算機(jī)編程領(lǐng)域,C語言被譽(yù)為一強(qiáng)大而靈活的編程語言,掌握好C語言不僅可以讓你輕松駕馭各種
    的頭像 發(fā)表于 07-06 08:04 ?239次閱讀
    按照這樣<b class='flag-5'>學(xué)習(xí)</b>C<b class='flag-5'>語言</b>,成為卷王不是夢!

    abb工業(yè)機(jī)器人的編程語言是什么

    ABB工業(yè)機(jī)器人的編程語言主要是RAPID(Robot Application Programming Interface for Development),它是一高級
    的頭像 發(fā)表于 06-16 16:49 ?1995次閱讀

    PLC編程語言和C語言的區(qū)別

    在工業(yè)自動化和計算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發(fā)表于 06-14 17:11 ?2057次閱讀

    fpga三編程語言

    FPGA(現(xiàn)場可編程門陣列)的編程涉及到三主要的硬件描述語言(HDL):VHDL(VHSIC Hardware Description Language)、Verilog以及Syst
    的頭像 發(fā)表于 03-15 14:36 ?909次閱讀

    fpga用什么語言編程

    FPGA(現(xiàn)場可編程門陣列)的編程主要使用硬件描述語言(HDL),其中最常用的是Verilog HDL和VHDL。
    的頭像 發(fā)表于 03-14 18:17 ?2388次閱讀

    fpga芯片用什么編程語言

    FPGA芯片主要使用的編程語言包括Verilog HDL和VHDL。這兩語言都是硬件描述語言,用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)和行為。
    的頭像 發(fā)表于 03-14 16:07 ?1373次閱讀

    編程語言之間的區(qū)別和聯(lián)系

    編程語言是一人與計算機(jī)之間進(jìn)行交流的方式,不同的編程語言有著不同的特點(diǎn)和用途。本文將對四常見
    的頭像 發(fā)表于 02-05 14:16 ?1264次閱讀

    plc編程入門基礎(chǔ)知識 plc編程語言有幾種

    。 PLC編程語言主要分為五不同的類型,它們分別是:梯形圖、指令列表、功能塊圖、結(jié)構(gòu)化文本和流程圖。每種編程語言都有其自身的特點(diǎn)和適用范圍
    的頭像 發(fā)表于 02-04 15:55 ?1418次閱讀

    腳本語言編程語言的區(qū)別

    :腳本語言是一編程語言,其主要用途是編寫控制操作系統(tǒng)和應(yīng)用程序的腳本。腳本語言通常是解釋性的,這意味著它們在運(yùn)行之前不需要進(jìn)行編譯,而是由
    的頭像 發(fā)表于 11-22 14:33 ?2746次閱讀

    Python編程語言屬于什么語言

    、易于學(xué)習(xí)和理解的語言,強(qiáng)調(diào)代碼的可讀性和簡潔性。Python的設(shè)計真正做到了"堅守一方法",非常注重代碼的正確性和一致性。這也是為什么Python非常受歡迎的主要原因之一。接下來,我將詳細(xì)介紹Python的特點(diǎn)、用途、優(yōu)勢和
    的頭像 發(fā)表于 11-22 14:31 ?1265次閱讀

    51單片機(jī)C語言編程入門學(xué)習(xí)資料

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)C語言編程入門學(xué)習(xí)資料.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 11:04 ?14次下載
    51單片機(jī)C<b class='flag-5'>語言</b><b class='flag-5'>編程</b>入門<b class='flag-5'>學(xué)習(xí)</b>資料

    淺談PLC 5標(biāo)準(zhǔn)的編程語言

    IEC 1131-3的編程語言是IEC工作組 對世界范圍的PLC廠家的編程語言合理地吸收、借鑒的基礎(chǔ)上形成的一套針對工業(yè)控制系統(tǒng)的國際編程
    發(fā)表于 11-15 11:14 ?729次閱讀
    淺談PLC 5<b class='flag-5'>種</b>標(biāo)準(zhǔn)的<b class='flag-5'>編程</b><b class='flag-5'>語言</b>