常见问题
2025年7月23日大约 1 分钟
为什么要重新发明新语言?
因为翻译成批处理脚本最重要的就是命令类型,比如 git clone xxx
这种。现有的语言根本不支持这样的语法,所以一个新的语言就诞生了,命令就是最基础的数据类型。
既然 Windows 都自带 PowerShell 了,为什么还需要 Hulo?
虽然自带 PowerShell,但 Hulo 并不冲突。未来可以编写一个 Hulo 代码,翻译成 PowerShell 和 Bash 脚本,让批处理脚本一次编写多端运行。这还需要一个命令转换系统,比如 Write-Host
和 echo
的跨平台抽象。
VBS 都要被废了,为什么还要支持?
虽然 VBS 要被废弃,但 Windows 10 还有很大市场份额。先发布 VBS 支持是因为它的语法最接近传统的编程语言,不会像其他批处理脚本一样有各种抽象的概念(比如 &>
, $()
, [[]]
等符号满天飞)。
Hulo 设想的应用场景是什么?
目前的目标是 Hulo 能够重写如 nvm(基于 bash)、scoop(基于 powershell)这样的项目,以一种比较现代化语言的方式。
与同类项目相比有什么优势?
Hulo 与 Amber、Batsh、TypeShell 等项目的区别在于:
- 其他项目基本上是把命令当函数使唤,本质上和通用编程语言无异
- Hulo 的解决方案是直接将命令当成基础数据类型,对 cmd 进行操作,cmd 就是 class 就是 interface
- 这样设计能对命令进行代码提示和类型检测