嘿,VBScript 愛好者們!
我最近在做一個編譯器/轉譯器項目,想要解決一些在 Windows 腳本開發中遇到的“老大難”問題。
你知道 VBScript 最令人頭疼的是什麼嗎?
就是那種 冗長的語法 和 有限的語言能力,一旦想實現稍微複雜一點的邏輯,就會陷入繁瑣的拼接和調試地獄。
於是我開始思考——
有沒有可能用一種更現代、更清爽的語言來寫腳本,然後自動生成 VBScript?
於是我做了個語言,叫做 Hulo。
什麼是 Hulo?
Hulo 是一種現代化、類型安全的編程語言,可以編譯(準確説是轉譯)成 VBScript。
來看幾個實際例子:
簡單的消息框:
MsgBox "Hello, World!"
帶類型的函數:
fn sayHello(name: str) -> void {
MsgBox "Hello, $name!"
}
fn add(a: num, b: num) => $a + $b
sayHello "Hulo";
MsgBox add(5, 3);
類和對象:
class User {
pub name: str
pub age: num
pub fn greet(other: str) {
MsgBox "Hello, $other! I'm $name."
}
}
let u = User("John", 25)
$u.greet("Jane")
控制流和用户輸入:
let n = InputBox("Input a number:")
if $n < 0 {
MsgBox("The number is negative.")
} else {
MsgBox("The number is positive.")
}
列表和循環:
let arr: list<num> = [1, 2, 3, 4, 5]
loop $item in $arr {
MsgBox $item
}
loop $i in [0, 1, 2] {
MsgBox $i
}
更多示例請前往 GitHub 上的 examples/ 查閲!
寫在最後
我知道 VBScript 生態比較老舊,但它在 Windows 自動化中仍然有着不可替代的位置。
如果你也正在用 VBScript 做運維、腳本開發、企業級自動化,那麼 Hulo 或許能為你帶來一點 久違的開發愉悦感。
目前項目還在早期階段,歡迎感興趣的朋友提建議、提 issue、或者一起來參與開發!
項目地址:https://github.com/hulo-lang/hulo
你覺得這種“現代語言 + 老派平台”的方式靠譜嗎?