Redlang 開箱筆記

Redlang 開箱筆記

來自專欄 bjong的摸魚筆記

這個語言我是從陳天的文章了解到的(red,不紅不專,但性感)。文章瘋狂地安利了這個語言的GUI編寫的方便程度,以及類似Go的跨平台打包、單文件等等。而我這段時間用了各種Electron方案的GUI軟體,又卡又佔CPU和內存,所以漸漸開始想體驗一些其他的小而美的GUI方案。

由於目前的Red版本的GUI綁定只支持Win和Mac,還不支持Linux下的GUI(Gtk),所以只能先用Mac OS來作為測試環境。然後IDE只支持VS Code,但我機器並沒有安裝,也只好先拿Emacs開text模式頂著。

(PS:Red的官方圖標長得很像Minecraft里的信標+金字塔)


安裝

根據官方的Getting Started文檔,下載一個二進位文件,賦予執行許可權,然後直接運行,它會編譯出幾個依賴,放在同目錄下。然後就可以用它作為編譯/解釋器了。

Hello World

直接執行red,進入解釋器模式,然後就跟Python差不多的操作了。

./red-063--== Red 0.6.3 ==--Type HELP for starting information.>> print("Hello world!")Hello world!>>

編譯的方式運行,需要寫一些頭部,可能是用於載入模塊用。由於helloworld不需要任何模塊,所以為空。

代碼:

Red []print("hello world")

編譯+運行:

$ ./red-063 -c hello.red$ ./hello

編譯一個Helloworld花了1.6秒。

GUI Hello World

運行解釋器:

>> view [text "Hello World!"]

然後就跑出GUI版Hello world界面了,簡單快捷:

再試試複雜點的:

>> view [name: field button "Hi" [print ["Hi" name/text]]]

多了一個文本框和按鈕,按鈕按下會在終端列印Hi+文本框里的文字。

再用編譯的方式運行,源碼:

Red [Needs: View]view [ title "Hi" name: field button "Hi" [ print ["Hi" name/text] ]]

運行效果跟上圖類似,並用title設置了標題。

其他Example

在Example列表裡有很多GUI的代碼示例。比如13行寫一個計算器:

Red [needs: view]view [ title "Calculator" f: field 230x50 font-size 25 "" return style b: button 50x50 [append f/text face/text] b "1" b "2" b "3" b " + " return b "4" b "5" b "6" b " - " return b "7" b "8" b "9" b " * " return b "0" b "." b " / " b "=" [attempt [ calculation: form do f/text append clear f/text calculation ]] ]

效果:

生成的執行文件大小72k。

最後

Red是個小眾的神奇語言,有著類似Lisp的語法,而且這個語法既可以用於編程,又能作為快速描述GUI的DSL。開發簡單的GUI程序,除了用.net拖控制項,Red可能是一種最快的開發方式。

最後這篇文章的作者用Red開發了一堆簡單的程序,並配上了GIF示範。文章的末尾附帶了有價值的關於Red的參考鏈接。


Red [Needs: View]view [ title "bjong" style b: text font-size 25 b "Good bye!"]


推薦閱讀:

當沒有GUI的時候用戶要怎麼操作
GacUI 支持運行時切換語言
GUI 常用元素中英對照表 / 1. Progress Indicator

TAG:編程語言 | 圖形用戶界面 |