最新的編程語言排行榜已經(jīng)公布,與8月榜單相比,最引人矚目的是D語言取代了8月份首次進(jìn)入前20名的F#語言占居榜單第20位。和F#第一次進(jìn)入Top 20不同,D語言并非首次進(jìn)入,它從2007年至2009年中期,一直在Top 20。另一個(gè)驚喜的是Scala重回前50,靜態(tài)類型Java語言以JRuby及Groovy的后備隊(duì)的身份,在移動(dòng)Android應(yīng)用程序開發(fā)領(lǐng)域整裝待發(fā)。但是被稱為下一代Java的JVM語言Scala卻未受Android開發(fā)者重視,這會(huì)不會(huì)是一個(gè)契機(jī)呢? 下面是前20名的編程語言排行 ![]() 8月30日J(rèn)ava之父高斯林在自己的博客發(fā)表了一篇名為《我又跑路了》的博文。在博文里高斯林宣布自己將離開Google,并解釋稱自己已經(jīng)找到了更感興趣的方向。高斯林新加盟的公司是Liquid Robotics,Liquid Robotics曾獲得2010年度科技創(chuàng)新獎(jiǎng)項(xiàng)中機(jī)器人技術(shù)獎(jiǎng)。高斯林的加盟這也意味著Liquid Robotics開發(fā)出的利用潮汐能與太陽能來工作的機(jī)器人技術(shù)在未來將會(huì)更加智能。事實(shí)證明Java 技術(shù)之父都對(duì)機(jī)器人技術(shù)感興趣了,甚至不惜放棄Google,那么您呢?本期我們就為大家介紹一種專為機(jī)器人玩具設(shè)計(jì)的可視化編程語言NXT-G。 NXT-G簡介 NXT-G是一種可視化的編程語言,它集成在樂高(LEGO)公司的機(jī)器人玩具產(chǎn)品中,NXT程序的設(shè)計(jì)者可以在計(jì)算機(jī)上通過NXT-G對(duì)機(jī)器人的行為進(jìn)行可視化的程序設(shè)計(jì),并通過藍(lán)牙等方式將這些指令下載到機(jī)器人身上,一旦NXT機(jī)器人程序化后,它就“開始有了自己的生命,不再需要經(jīng)由計(jì)算機(jī)控制 ”。 NXT-G編程語言的特殊之處在于其并非是提供給專業(yè)程序開發(fā)者的編程語言,而是由丹麥著名玩具制造商 樂高(LEGO)公司為NXT機(jī)器人玩具設(shè)計(jì)的可視化編程語言,簡稱G語言。NXT-G編程方法簡單易學(xué)但不可小視,只要c語言、Java語言編出的程序,NXT-G都可以編出。樂高公司為這種編程語言開發(fā)的軟件稱為“LEGO MINDSTROMS NXT 編程(programming)”,下文簡稱編程軟件。 ![]() 編程中的編程軟件 編程軟件分兩種版本:玩具版本(8547 NXT零售版本附帶)和教育版本(左圖)(須在網(wǎng)上下載,只有9797 NXT 教育版本用戶可使用),它們的主要區(qū)別是玩具版只有英語,而教育版本可選擇語言。 ![]() 編程軟件教育版本起始頁 編程模塊與線程 ![]() NXT-G語言最主要的編程方法則是用這些模塊。每一個(gè)模塊代表著文本編程語言的一個(gè)或多個(gè)語句。圖中的模塊從左自右依次是:“前進(jìn)(bc馬達(dá))” “檢測位于三端口的光電傳感器”“轉(zhuǎn)動(dòng)A馬達(dá)”。而壓在模塊下面的樂高橫梁則代表線程,所以圖中的程序是一個(gè)簡單的單線程程序。模塊可以任意從模塊面板或編程區(qū)中的任意地方拉到橫梁上并成為程序的一部分。當(dāng)然,模塊也可以從外部導(dǎo)入(工具-》模塊導(dǎo)入導(dǎo)出向?qū)?..),就像c中的外部頭文件,還可以利用編輯-》新建“我的模塊”來新建自己的模塊,就像c里的自己編寫函數(shù)。而要分支出一個(gè)線程時(shí),則需要用連接工具(shift+鼠標(biāo)點(diǎn)擊)把要連接的模塊和主線程連接起來。 編程模塊的設(shè)置與數(shù)據(jù)中心、數(shù)據(jù)線 ![]() NXT-G語言的每個(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)需要用前面的模塊來決定,則需要數(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)境基于國家儀器(National Instruments)的LabVIEW軟件提供,LabVIEW最大的特色就是以圖形化編程G語言來組織程序,編寫程序的展現(xiàn)形式為具備特定邏輯結(jié)構(gòu)的框圖。各模塊功能實(shí)現(xiàn)則由LabVIEW中能完成各項(xiàng)編程任務(wù)的龐大函數(shù)庫提供,包括數(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簡化定制的 RoboLab工具,樂高機(jī)器人專用的匯編指令NBC,以及基于NBC編譯器實(shí)現(xiàn)且語法與C語言相似的高級(jí)語言NXC等。 如果你是喜歡自己動(dòng)手又對(duì)自動(dòng)控制感興趣的程序開發(fā)者,不妨嘗試一下樂高NXT積木和NXT-G編程環(huán)境,LEGO一定會(huì)為你帶來豐富的體驗(yàn)和樂趣。 下面是本期編程語言排行榜的其他排名數(shù)據(jù)和趨勢走向。 前10名編程語言走勢圖 ![]() 20到50名語言排行
(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 不同語言的比例 ![]() |