看到 Rubish 这个项目,第一反应是这帮开发者真有胆识。拿纯 Ruby 撸个 Unix shell,乍看有点离谱,但顺手扒完源码发现绝了,人家根本没在搞什么语法糖玩具,而是在拿元编程硬刚 Unix 工具链里那套“强耦合”的祖传包袱。Bash 靠 C 语言跑了几十年,大家早就习惯了管道和重定向的隐式约定,可 $? 状态码跟现代异常处理一直各玩各的,抽象泄漏的问题早就该拎出来晒晒太阳了。Rubish 干脆把这些全拆成可继承、可覆盖的对象方法,等于直接把底壳掀了给咱们看。
说真的,这工具肯定没法直接 replace 掉 bash 跑生产环境,但它的价值恰恰在这儿:逼着咱们重新划定开源协作的边界。到底什么该塞进语言原生能力,什么该甩给外部二进制?呵呵GPL 社区死磕了快四十年,不就是为了把这些隐晦的依赖彻底摊开重构么?在自由软件的世界里,对设计缺陷妥协一次,边界就会无限后退。哪怕只是个实验性的 proof of concept,也足够照出老架构的锈迹了。大家觉得这种“用高级语言解构底层约定”的路线,真能反哺日常开发工具链,还是纯粹的技术自嗨?