用 vala 寫 GTK/GObject 的東西很好用:
- transpile to C,基本上沒有效率損
- 語法上支持 gobject 風格的 OO
- C# - like 語法
- 支持較高級抽象手段
- lambda 和 delegate 方便寫 callback
- async/await
- gobject event signa
- mainloop
- 語法層面支持高級數據類型(libgee),例如 foreach
- 和 C 無縫接軌,如 C 裏調用 vala function,或者 vala 裏調用 C function
- 很多現成的 C lib 的 binding,就算沒有,大部分情況下就是寫一個 VAPI 文件描述一下 C lib 的數據類型和 function 怎麼 map 到 vala 裏而已
穩定性不用擔心,10 年的 project,很多 codebase(大部分 gnome 部件和 elementory os),有過單個百萬 loc 項目(Shotwell),self-bootstrapped (vala 編譯器用 vala 寫的),另我認識一個人在 production 中用 vala 至少 6 -7 年了
- transpile to C,基本上沒有效率損
- 語法上支持 gobject 風格的 OO
- C# - like 語法
- 支持較高級抽象手段
- lambda 和 delegate 方便寫 callback
- async/await
- gobject event signa
- mainloop
- 語法層面支持高級數據類型(libgee),例如 foreach
- 和 C 無縫接軌,如 C 裏調用 vala function,或者 vala 裏調用 C function
- 很多現成的 C lib 的 binding,就算沒有,大部分情況下就是寫一個 VAPI 文件描述一下 C lib 的數據類型和 function 怎麼 map 到 vala 裏而已
穩定性不用擔心,10 年的 project,很多 codebase(大部分 gnome 部件和 elementory os),有過單個百萬 loc 項目(Shotwell),self-bootstrapped (vala 編譯器用 vala 寫的),另我認識一個人在 production 中用 vala 至少 6 -7 年了