03.03 小巧玲瓏的計算機語言

Red語言並不是一個很流行的語言,它自REBOL語言發展而來,但包括Red和它的母語REBOL,甚至都沒有排進編程語言排行榜的前50位(根據最新一期TIOBE排行榜)。

但是,Red語言是一門小巧玲瓏,而又功能不弱的輕量級編程語言。所謂的輕量級,是指整個語言的編寫相對更貼近一般人類的思路,貼近高級語言因而書寫便捷,編程和運行環境非常簡單,實際上只有一個可執行文件。而功能不弱,體現在下面幾個地方:跨平臺、即支持解釋運行又支持編譯運行、內置的語言級別上支持圖形界面(GUI)開發、方便的網絡編程能力(例如發郵件、抓取網頁等往往一條語句就可以實現)。


雙語 - 小巧玲瓏的計算機語言 - Red


下面,我們從英語原文來稍作深入地瞭解一下。

注意:我們的譯文會增加一些必要的解釋。


Red is a programming language that fits in a single executable file with about 1MB. No install, no setup.

Red是一門編程語言,它的主程序文件只有大約1M字節大小。不需要安裝,也不需要設置。


Red is free and open-source.

Red是免費的和開源的。


Red is interpreted, but can compile you code and generate single standalone executables.

Red語言是解釋執行的,但也可以編譯代碼(執行),並可以只生成一個可執行文件。

* 注:編譯時也可以使用共享連接庫的方式減少主程序的大小。


Red does some compiling before interpreting, and so turns out to be quite fast.

解釋運行程序時,Red也會先做一些編譯工作,這樣可以讓程序執行得更快一些。


Red is simple. Its code is clean and has no bloat at all.

Red很輕巧,(用Red語言編寫的)代碼很整潔並且不會變的臃腫。


Red is under development (alpha) as of october 2018, but aims at:

Red從2018年開始開發,目前處於Alpha階段,但它的目標是:

- being multi-platform;

支持多平臺

- having cross-platform native GUI system, with a UI dialect and a drawing (graphics) dialect;

支持跨平臺的原生圖形界面(GUI)系統,依靠UI方言和畫圖方言。

* 注:方言(dialect [ˈdaɪəlekt]) 是從REBOL語言就存在的一種類似“子語言”的東西,一種dialect一般用於某一類特定的功能範圍。

- being a full-stack programming language, that is, from very low to very high level.

成為一個“全棧”的編程語言,也就是說,從很低到很高級別(這裡是指Red語言即像低級語言那樣性能高效,又可以像高級語言那樣編寫方便)。

* 注:所謂的“全棧”(full-stack),一般指的是開發人員具備從後臺到前臺到網絡和數據庫等的全面開發能力,在這裡,指的是可以用Red語言勝任從後臺到前臺、從底層到高層的各種開發任務。


Red is the open-source evolution of Rebol. If you want to try some of the features that are not yet available in Red, you should download Rebol and try it. However, Red is the future.

Red語言是Rebol語言的開源進化版。如果你想嘗試一些Red中還沒有的特性,可以試著下載Rebol進行體驗。但是,Red語言是未來。

* 注:Rebol語言已經很多年沒有更新了。


Red is being developed by a group of people led by Nenad Rakocevic.

Red是由Nenad Rakocevic領導的一個團隊正在進行開發的。


我們來看一個小例子來體會一下Red語言程序的畫風。


Red [needs: view]

view [

title "加法演示"

f1: field "3"

f2: field "5.6"

button "加" [

t1/text: rejoin [f1/text " + " f2/text " = " ((to float! f1/text) + (to float! f2/text)) ]

]

return

t1: text "此處將顯示結果" 200

]


這一段代碼可以在Windows或Mac OS下運行(目前Red語言的Linux版似乎還不支持GUI編程),運行後的結果如下圖所示


雙語 - 小巧玲瓏的計算機語言 - Red


點擊按鈕“加”後,對話框下方的文字將顯示兩個數字的加法計算結果:


雙語 - 小巧玲瓏的計算機語言 - Red


看到了吧,Red語言實現一個圖形界面的程序就是這麼簡單,無需任何附加的IDE開發環境,隨便用個文本編輯器就可以編程,並且無需運行在類似JAVA語言所需的虛擬機之上,可以直接編譯成對應操作系統的原生應用程序,對於編程老司機來說,是不是有一些誘惑呢?作為一個精通十幾種語言的自身開發者來說,反正我想不到哪門語言能做到這一步。


順便提提各種語言的優勢和劣勢吧,注意一家之言僅供參考,另外,並不是說要因此推薦Red語言,相反Red語言顯然在現階段還難以真正擔負起產品化系統的開發任務:

我們以2019年8月的TIOBE編程語言開發榜依次挑主要的語言來說吧:

Java:很優秀,可以算是全棧語言,但越來越臃腫,Eclipse、Maven、各種配置,對於入門甚至是老程序員要新搭建一個開發環境來說,都需要不少的準備時間。另外,JVM的存在畢竟讓運行效率比原生的C/C++等語言開發的程序低一些。

C:一代經典,至今仍廣泛用於一些底層開發,但畢竟編寫和維護都存在不方便和缺陷之處,指針操作可能引起的崩潰也是常被詬病的地方。

Python:解釋型的高級計算機語言,方便易用,可用庫豐富,也是一門全棧語言,尤其在人工智能蓬勃發展的今天,更得到了廣泛的使用。缺點呢,到目前為止,性能相對偏低、併發編程(多線程)能力弱、代碼不易加密、圖形界面開發能力不強。

C++:也是一代經典的面向對象開發語言,可惜面向對象的實現路徑最後搞得過於複雜,整體編程難度偏高,尤其是界面編程,底層編程倒是效率還不錯。

C#:也是很優秀的開發語言,基本具備Java的大部分優點,並且具有方便的GUI開發能力(結合Visual Studio),可惜平臺受到了限制,侷限於Windows平臺,其他平臺雖然也有辦法,但畢竟不方便。

Visual Basic:入門簡單,作界面簡單,但構建大型系統畢竟不是首選,面向對象編程也是顯得比較亂,b並且也是侷限於Windows平臺。

Javascript:在瀏覽器和從Node.JS開始進入的後臺開發領域都有較好的表現,但總覺得是“強行”把一門前端語言改造成後臺語言,另外,Javascript處理圖形界面也並不是很完美,當然HTML本身也不完美,主要缺點是亂,開發起來並不方便,即使是在現在有了很多WEB框架的情況下。

PHP:只適合做網頁,面向對象處理也很遷就。

Objective CSwift:都很不錯,但目前暫時主要還是應用在iOS領域。

SQL:僅用於數據庫操作;

Ruby:與Python的情況類似;

Delphi/Object Pascal:曾經火熱過,也一度沒認為是最方便的圖形界面開發語言(其實有些混淆了Delphi和它依託的Pascal語言),可惜商業化後來沒有跟上,雖然後來有免費的Lazarus,但失去的用戶追不回來了。另外,Pascal語言寫起來確實繁瑣了一些。

彙編語言:不用說了,太繁瑣,一般人不可能用它來開發的。

Go語言(Golang):近些年後臺開發的一股生力軍,生而就是為後臺開發而來的,語言級別支持的併發能力和便捷的網絡開發支持是它的體現之一,非常優秀,也有許多第三方庫,可惜就是GUI開發能力是硬傷,暫時只適合用於後臺開發。

其他如R、Dart、Rust、Lua、Scala這些語言,都還侷限於某一片應用領域,或者偏重於解決某一些問題,也大都還存在著這種那種不足之處。


最後,Red語言的官網是 red-lang.org,有興趣的可以去體驗嘗試,直接下載該語言的主程序(沒有安裝包),第一次運行時會自動配置環境,所以建議在運行前放在一個固定的目錄下。

另外,友情提示,Windows版的Red運行似乎有問題,會出現類似下面截圖的提示:


雙語 - 小巧玲瓏的計算機語言 - Red


用下圖所示的方法即可正常運行:

雙語 - 小巧玲瓏的計算機語言 - Red


也可以編寫一個批處理文件red.bat放到可以被找的目錄下,內容是類似:

"d:\\tools\\red\\red.exe" %*

就可以了,運行效果如下圖所示:


雙語 - 小巧玲瓏的計算機語言 - Red



分享到:


相關文章: