9月編程語(yǔ)言排行榜:專為機(jī)器人玩具設(shè)計(jì)的語(yǔ)言NXT-G
原創(chuàng)最新的編程語(yǔ)言排行榜已經(jīng)公布,與8月榜單相比,最引人矚目的是D語(yǔ)言取代了8月份首次進(jìn)入前20名的F#語(yǔ)言占居榜單第20位。和F#第一次進(jìn)入Top 20不同,D語(yǔ)言并非首次進(jìn)入,它從2007年至2009年中期,一直在Top 20。另一個(gè)驚喜的是Scala重回前50,靜態(tài)類型Java語(yǔ)言以JRuby及Groovy的后備隊(duì)的身份,在移動(dòng)Android應(yīng)用程序開發(fā)領(lǐng)域整裝待發(fā)。但是被稱為下一代Java的JVM語(yǔ)言Scala卻未受Android開發(fā)者重視,這會(huì)不會(huì)是一個(gè)契機(jī)呢?
下面是前20名的編程語(yǔ)言排行
8月30日Java之父高斯林在自己的博客發(fā)表了一篇名為《我又跑路了》的博文。在博文里高斯林宣布自己將離開Google,并解釋稱自己已經(jīng)找到了更感興趣的方向。高斯林新加盟的公司是Liquid Robotics,Liquid Robotics曾獲得2010年度科技創(chuàng)新獎(jiǎng)項(xiàng)中機(jī)器人技術(shù)獎(jiǎng)。高斯林的加盟這也意味著Liquid Robotics開發(fā)出的利用潮汐能與太陽(yáng)能來(lái)工作的機(jī)器人技術(shù)在未來(lái)將會(huì)更加智能。事實(shí)證明Java 技術(shù)之父都對(duì)機(jī)器人技術(shù)感興趣了,甚至不惜放棄Google,那么您呢?本期我們就為大家介紹一種專為機(jī)器人玩具設(shè)計(jì)的可視化編程語(yǔ)言NXT-G。
NXT-G簡(jiǎn)介
NXT-G是一種可視化的編程語(yǔ)言,它集成在樂(lè)高(LEGO)公司的機(jī)器人玩具產(chǎn)品中,NXT程序的設(shè)計(jì)者可以在計(jì)算機(jī)上通過(guò)NXT-G對(duì)機(jī)器人的行為進(jìn)行可視化的程序設(shè)計(jì),并通過(guò)藍(lán)牙等方式將這些指令下載到機(jī)器人身上,一旦NXT機(jī)器人程序化后,它就“開始有了自己的生命,不再需要經(jīng)由計(jì)算機(jī)控制 ”。
NXT-G編程語(yǔ)言的特殊之處在于其并非是提供給專業(yè)程序開發(fā)者的編程語(yǔ)言,而是由丹麥著名玩具制造商 樂(lè)高(LEGO)公司為NXT機(jī)器人玩具設(shè)計(jì)的可視化編程語(yǔ)言,簡(jiǎn)稱G語(yǔ)言。NXT-G編程方法簡(jiǎn)單易學(xué)但不可小視,只要c語(yǔ)言、Java語(yǔ)言編出的程序,NXT-G都可以編出。樂(lè)高公司為這種編程語(yǔ)言開發(fā)的軟件稱為“LEGO MINDSTROMS NXT 編程(programming)”,下文簡(jiǎn)稱編程軟件。
編程中的編程軟件
編程軟件分兩種版本:玩具版本(8547 NXT零售版本附帶)和教育版本(左圖)(須在網(wǎng)上下載,只有9797 NXT 教育版本用戶可使用),它們的主要區(qū)別是玩具版只有英語(yǔ),而教育版本可選擇語(yǔ)言。
編程軟件教育版本起始頁(yè)
編程模塊與線程
NXT-G語(yǔ)言最主要的編程方法則是用這些模塊。每一個(gè)模塊代表著文本編程語(yǔ)言的一個(gè)或多個(gè)語(yǔ)句。圖中的模塊從左自右依次是:“前進(jìn)(bc馬達(dá))”“檢測(cè)位于三端口的光電傳感器”“轉(zhuǎn)動(dòng)A馬達(dá)”。而壓在模塊下面的樂(lè)高橫梁則代表線程,所以圖中的程序是一個(gè)簡(jiǎn)單的單線程程序。模塊可以任意從模塊面板或編程區(qū)中的任意地方拉到橫梁上并成為程序的一部分。當(dāng)然,模塊也可以從外部導(dǎo)入(工具-》模塊導(dǎo)入導(dǎo)出向?qū)?..),就像c中的外部頭文件,還可以利用編輯-》新建“我的模塊”來(lái)新建自己的模塊,就像c里的自己編寫函數(shù)。而要分支出一個(gè)線程時(shí),則需要用連接工具(shift+鼠標(biāo)點(diǎn)擊)把要連接的模塊和主線程連接起來(lái)。
編程模塊的設(shè)置與數(shù)據(jù)中心、數(shù)據(jù)線
NXT-G語(yǔ)言的每個(gè)模塊除了需要擺放,還需要進(jìn)行相關(guān)的設(shè)置,在編程軟件中表現(xiàn)為“參數(shù)設(shè)置面板”。選中一?個(gè)模塊(圖為選中右上圖中的第二個(gè)模塊),在下面的參數(shù)設(shè)置面板即顯示出該模塊的相關(guān)設(shè)置選項(xiàng)。當(dāng)這個(gè)設(shè)置選項(xiàng)需要用前面的模塊來(lái)決定,則需要數(shù)據(jù)中心與數(shù)據(jù)線。點(diǎn)擊模塊的左下方(像一個(gè)凹槽),數(shù)據(jù)中心就會(huì)彈出(如上圖),再點(diǎn)擊一下即彈回。數(shù)據(jù)中心分為很多排,每排中間都以一個(gè)圖標(biāo),鼠標(biāo)停留在其上時(shí),即彈出此排數(shù)據(jù)接口的名稱。數(shù)據(jù)接口即為圖標(biāo)兩旁的金屬接頭,向左的為輸入接口,向右的為輸出接口,點(diǎn)擊一個(gè)輸入接口(輸出接口),再點(diǎn)擊一個(gè)輸出接口(輸入接口),即可連接數(shù)據(jù)線(如上圖綠線)。輸出端口可以分為很多個(gè)數(shù)據(jù)線分別連接輸入端口,但輸入端口只能接一條數(shù)據(jù)線。其中黃線為數(shù)字?jǐn)?shù)據(jù)線,綠線為邏輯數(shù)據(jù)線,橙色為文本數(shù)據(jù)線,灰色虛線為故障數(shù)據(jù)線。點(diǎn)擊數(shù)據(jù)線的輸出接口即可刪除數(shù)據(jù)線,關(guān)閉數(shù)據(jù)中心時(shí)連有數(shù)據(jù)線的數(shù)據(jù)接口不會(huì)隱藏。
NXT-G編程環(huán)境
NXT-G的交互式編程環(huán)境基于國(guó)家儀器(National Instruments)的LabVIEW軟件提供,LabVIEW最大的特色就是以圖形化編程G語(yǔ)言來(lái)組織程序,編寫程序的展現(xiàn)形式為具備特定邏輯結(jié)構(gòu)的框圖。各模塊功能實(shí)現(xiàn)則由LabVIEW中能完成各項(xiàng)編程任務(wù)的龐大函數(shù)庫(kù)提供,包括數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)存儲(chǔ)、GPIB通用接口總線、串口控制、數(shù)據(jù)分析、藍(lán)牙通訊等。此外,LabVIEW可視化編程環(huán)境提供了與傳統(tǒng)IDE環(huán)境相同的程序調(diào)試工具,如斷點(diǎn)設(shè)置、以動(dòng)畫方式顯示數(shù)據(jù)及其子程序的結(jié)果、單步執(zhí)行等功能。
NXT-G編程環(huán)境對(duì)Windows和Mac OS X都提供了良好支持。除了NI LabVIEW軟件外,還有不少支持NXT-G編程的軟件程序。包含NXT-G零售版和NXT-G教育版、LEGO基于LabVIEW簡(jiǎn)化定制的RoboLab工具,樂(lè)高機(jī)器人專用的匯編指令NBC,以及基于NBC編譯器實(shí)現(xiàn)且語(yǔ)法與C語(yǔ)言相似的高級(jí)語(yǔ)言NXC等。
如果你是喜歡自己動(dòng)手又對(duì)自動(dòng)控制感興趣的程序開發(fā)者,不妨嘗試一下樂(lè)高NXT積木和NXT-G編程環(huán)境,LEGO一定會(huì)為你帶來(lái)豐富的體驗(yàn)和樂(lè)趣。
#p#
下面是本期編程語(yǔ)言排行榜的其他排名數(shù)據(jù)和趨勢(shì)走向。
前10名編程語(yǔ)言走勢(shì)圖
20到50名語(yǔ)言排行
Position | Programming Language | Ratings |
21 | Assembly | 0.590% |
22 | MATLAB | 0.543% |
23 | F# | 0.512% |
24 | SAS | 0.504% |
25 | COBOL | 0.471% |
26 | Logo | 0.448% |
27 | Scheme | 0.400% |
28 | R | 0.385% |
29 | C shell | 0.383% |
30 | Fortran | 0.372% |
31 | ActionScript | 0.370% |
32 | Go | 0.358% |
33 | Scratch | 0.327% |
34 | NXT-G | 0.327% |
35 | Haskell | 0.325% |
36 | ABAP | 0.320% |
37 | Forth | 0.317 |
38 | Erlang | 0.315% |
39 | Visual Basic .NET | 0.309% |
40 | Prolog | 0.282% |
41 | APL | 0.272% |
42 | PL/I | 0.268% |
43 | ML | 0.263% |
44 | Smalltalk | 0.255% |
45 | MOO | 0.236% |
46 | Alice | 0.235% |
47 | Ladder Logic | 0.223% |
48 | Q | 0.216% |
49 | Awk | 0.212% |
50 | Scala | 0.209% |
下面是第50到100的編程語(yǔ)言排名
(Visual) FoxPro, ABC, Algol, Bash, bc, BETA, Bourne shell, CFML, cg, CL (OS/400), Clean, cT, Dylan, Eiffel, Factor, Free Pascal, Groovy, Icon, IDL, Inform, Io, J, JavaFX Script, JScript.NET, LabVIEW, LabWindows/CVI, Lingo, LPC, MAD, Magic, Max/MSP, MUMPS, NATURAL, Oberon, Occam, OpenCL, OpenEdge ABL, Oz, PowerShell, REXX, S, Standard ML, SuperCollider, Tcl, VBScript, Verilog, VHDL, X10, xBase, XSLT
不同語(yǔ)言的比例
【2011年榜單回顧】