最近,我想用Ruby搭建一个小小的CLI脚手架,但担心在没有安装Ruby的机器上使用。我搜索了一些流行的CLI的例子,发现 Docker CLI 建有 去语言. 我的电脑上没有安装Go,也能使用这个CLI。怎样才能建立一个不需要安装Ruby的工具呢?
我的猜测是,这涉及到一个构建过程,它可能会被编译成大多数系统上存在的东西,比如shell或者其他东西。如果这是一个蹩脚的猜测问题,我很抱歉!
(注:这不是一个详细的答案,只是一个工作原理的总结)Cli程序和其他程序一样,没有什么特别之处。
Go是一种编译语言--一个叫做 "编译器 "的程序把go代码直接翻译成机器语言,遵循操作系统规定的惯例。它变成了纯粹的0和1,没有对其他东西的引用。它的主要优点是自成一体,但你必须在每一个不同的架构(32位,arm处理器,......)和操作系统(windows,linux,macos)上重新编译它--是操作系统负责重定向输入和输出。
而Ruby,则是被解释的。有一个叫做 "Ruby解释器 "的程序,它可以在飞行中把你的代码翻译成相应的机器代码。它是一种不同的方法,它更 "高级".它的优点是你不需要重新编译代码。但是,"Ruby解释器 "本身必须是用某种编译语言编写的。