之前用 Bash 写的一个小工具,最近想推翻重写。
当年那种嵌着大量 Shell 管道的 Python 代码,看烦了。所以就没用 Python 写。
一直觉得,与其写那种伪 Python,还不如写点真 Bash。

作为 Bash 呢,自己一个人,简单写点,没什么问题,
但是代码量一旦上去,或者几个人开始要合作,那就不好说了。
我觉得一方面是数据结构设计的比较单薄,另外是可参考的工程化实践经验比较少。

突发奇想,会不会有人正在创造更先近的、代替(/增强) Bash 的、下一代的脚本语言呢。

名称 诞生 语种 星标 贡献者 关单量
ngs 2013 C 970 11 220
elvish 2014 Go 4557 60 802
oil 2016 Python 1967 48 478
ion 2017 Rust N/A N/A 536
abs 2018 Go 405 15 212

NGS

is a powerful programming language and a shell designed specifically for Ops.

  • 讨喜的
    • 专为 Ops 设计
    • 丰富的语言特性
  • 讨厌的
    • 试个最简单的配合环境变量的debug函数,失败,气人
    • 接近10年了,文档匮乏,似乎离成熟,还有一段距离

Elvish

is an expressive programming language and a versatile interactive shell.

  • 讨喜的
    • 达人作者,清华,Google
    • 相对最为完备的文档、主页
    • 设计新颖,语法漂亮,异常处理,思想优秀
  • 讨厌的
    • 不符合众人习惯视角的数字处理方式,还我九年义务教育的加减乘除
    • 快速的简易处理命令行参数(getopts),上手失败,不开心

Oil

is a new Unix shell. It’s our upgrade path from bash to a better language and runtime.

  • 讨喜的
    • 并没有,只是发现不少地方提及/引用
  • 讨厌的
    • Python 拉

Ion

is a modern system shell that features a simple, yet powerful, syntax.

  • 讨喜的
    • 采用新贵语言开发,有广阔的社区前景
    • 作为 Redox-OS 的内置 Shell,生命期很长
  • 讨厌的
    • 全新的 Shell,交互性和语言性平分了开发资源
    • 不通用,想必总是优先照顾它自己的原生 OS

Abs

is a programming language that works best when you’re scripting on your terminal.

  • 讨喜的
    • 更多偏向语言性,而非交互性
    • 相对较为完备的文档、主页
    • 设计轻巧,语法美观,修饰函数,标准库
  • 讨厌的
    • 暂无

i/abs

Bash 就像现金,电子支付再发达,还是有很多人,离不开现金。