ELF executable packages
I’m always happy to find new tools for binary distribution, and recently found Tebako.
I’ve grown rather envious of Python recently with the JIT improvements, free threads, and most important to me, embedded interpreters now available with Pex. I was interested, for a millisecond, in collaborating on a Configuration Management project as an alternative to Ansible, only to encounter an irate curmudgeonly developer, a janky enormous makefile, and a growing realization that he has slowly alienated and killed his project. Ansible, as a single executable, with async, has pretty much obsoleted his “superior” Go project (that desperately needed a refactored build process). With all the JIT, async, and ELF packaging work going on, we are entering a new age for interpreted languages, post-Go. If Google couldn’t kill off Python with Go, nobody can (and it probably helps that Microsoft is pouring a lot of resources into it). After looking closer at Rust, I am not so enthused at writing Go code for pretty much anything new. Go may be simpler, but it’s terse, inflexible, and unpleasant. I will take pleasantly complex Rust any day over that, but the real win is the improving interpreted languages like Python and Ruby.
Pex has been around for a long while, but only recently has it picked up the ability to embed interpreters, creating a single ELF executable, batteries included.
On the Ruby side this has been lacking, until now. Tebako is the new kid for distributing Ruby code as binaries.
What’s more, 15 years ago we didn’t have a universal Linux/Mac user package manager like Homebrew to easily distribute the artifacts. There’s never been a better time for Infrastructure tools, and I anticipate a lot more niche tooling to crop up to make our lives easier.
Go always had great implementation details but was a rigid language. Now Python, Ruby, and Typescript/Javascript have all the deployment simplicity of Go, they have become faster, and they can juggle async threads or background jobs like nobody’s business. Ruby is my goto language once again, and I couldn’t be happier with the change.