I agree this is pretty much a non issue for the average developer, but those of us who work on network infrastructure, as red-team hackers, or do any work on embedded systems can attest to how much of a pain it would be to not know how to use vi/vim.
You haven’t lived till you have to edit using only sed.
But not having a basic text editor that is probably a few hundred KB feels a bit silly, especially given how many environment dependencies usually get packaged into containers anyways.
That's like not including any sort of a shell in your container and wondering why people are having troubles with debugging.
Personally, i think that just basing container images on something like Alpine, Debian or even Ubuntu images is good enough because those are stripped down enough already for the most part.
More recently, I've found myself inside a container which didn't have any editors. I got the job done with echo, head and tail. Delightful.
Even alpine based images have a version of vi (it comes with busybox)
# pkg install nanoEven if Vim is "better", I think it's important for all distros to include a text editor that is easy to use out of the box, and nano fits that bill perfectly.
That said, i immensely enjoy how small the install size for nano is and how there's no actual work that you need to do to get started with it (unless you need/want customization, like the author of the original article).
That was about a decade ago though, maybe RHEL has removed nano since then.
I used to install lynx web browser for the same reason, especially because at the time it was the age of countless popups and swf everywhere. I should check to see how it is these days, but I stopped using it when webdev made many pages unusable in it.
I'm not a power vi user, though. I usually use JOE (thanks/blame to '90s Slackware education), but occasionally vi is more convenient. It wouldn't be nearly as convenient without the arrow keys as I never learned proper typing technique.
Like if you removed the “cd” command or the ability to read environment variables. “Containers” is any definition you want, but surely they’re built to some standard.
PS: I do make “from scratch” images a lot, I know you don’t “need” to have any utilities at all, but I’m fairly certain that a lot of software expects the “OS” to be POSIX.
Every Linux process can read environment variables. They are contained in its address space. "cd" is a shell built-in. When there is no shell, there is no "cd". Not providing access to a shell sounds like great security practice tbh. Your applications shouldn't be using it anyway (they should create new processes directly).
In general, most utilities and functions primarily used interactively are optional in POSIX.
(I mostly use a mix of sublime, intellij, and vscode to edit text)
snob: a person who believes that their tastes in a particular area are superior to those of other people.
Nano is superior in that its easier to use. But it's certainly no where near as powerful as Vim or emacs.
(Add to that communicating with a guy on-site over notepad.exe. Mr. Robot vibes.)