Popularity-Boost for the POSIX-Shell in the Era of Containerized Computing?

Not even thinking that POSIX-Shell is deprecated, but I like working with bash very much, because of it's increased comfort and advanced functions. And in my world here it's available everywhere as default.

Working with kubernetes now, it seems there is a paradigm shift in terms of resources. Small is beautiful is one old and new slogan here. Faster to backup, Faster to set up, Less I/O. A popular linux distribution for containers is alpine linux: Default Installed Image size: ~5 MB. Based on busybox and musl.

With kubernetes(or with other container technology) you can use resources far more effectively and that's why small resource footprint gains you really much in terms of how many applications can I run on the cluster?

Want to install bash? Nearly Triples space usage of that whole system. So size really matters...

Debian/Ubuntu docker base images are at 80-120 MB with my final app images(small apps) around 200-400 MB.

Hmm, i came to dislike bash and prefer ksh very much for the same reasons. Perhaps that is personal taste? Also, my impression is that most users of bash do not prefer it for some technical reasons at all but simply because the can use cursor-keys for command editing. I set my ksh to vi-mode and detest the cursor-keys because they make me move my fingers from the standard positions on the keyboard (yes, i am a touch-typist) away. vi-mode (but again: perhaps personal taste) is IMHO so much faster than anything else.

This IMHO was the defining property of the UNIX development: do only one thing and do it right. Don't try to do many things at the same time. Actually this is a tenet which got us (the collective "us" of all Unix users) as far as we are - the number one OS in the world. Alas, i see it very often violated gravely in modern UNIXes and in Linux especially. Most of these guys gre up with Mickeysoft products and now they try to reinvent its tools for the UNIX world. You want a tool? You get a GUI! I don't want a GUI which i cannot script and use to build my own tools from building blocks - but is there anything else? So, great, once i put something in cron, now everything is much easier - just wake up every hour and click somewhere. Ah, so we need to incorporate a brand new scheduler for this into the tool - and a private scripting language along with it so that you can automate.... STOP! I have all that! It is called the "shell". And i don't want to learn a new language just to use the SuperFlurbisher v3.14. Apart from the added footprint caused by reinventing the wheel anew for every car you produce also the possible bugs in this huge amount of software is multiplied. 1 Parser ~= x bugs ; 15 parsers ~= ? 1 scheduler (cron) ~= y bugs ; all the schedulers in the various foo- and bar-tools ~= how many?

Just for instance: use a WIFI adapter in a notebook running Linux. The commandline tools are really horrible (really - i have tried and failed and although i am no Linux expert i know a thing or two about scripting), so the only thing left to use it sensibly is NetworkManager. Fine, but: you cannot run it under X11. You can use all sorts of fancy desktops which you may or may not like, but not X11 and a window manager like mwm. So, de facto the driver layer of the OS has been transferred to the presentation layer. Isn't that what (among other things) got Micro$ofts OS in trouble in the first place? Poor performance was the reason they poked holes (and in effect lobotomised) the VMS-like NT v3.51-kernel Dave Cutler built for them in NT v4.0 and ownards - with the well known side-effect that now a badly written graphics driver can send your vital server to electronic Neverland.

Every beginner in software development is tought some tenets of the trade: isolate as much as possible. Whenever you write a piece of code make as few assumptions about your surroundings as possible. Create consistent interfaces between parts of your code. And so on, you probably learned these things as well as i did. And all these tenets are violated over and over again on the "outside" of the programs written. They make for a heavily dependent, interconnected environment. Try to deinstall the "Adwaita" icon theme from a modern Ubuntu - the package manager will leave you with a practically empty disk after deinstalling almost everything. I understand how that comes, but: do i want to use an OS which depends on some icons being installed, for chrissakes?

I could go on, but you probably got my drift. I work on AIX systems for almost 25 years now and i use Linux as a desktop OS for my laptops and desktops for ~15 years now. Yes, using Windoze would be even more dissatisfying but i am far from happy with the current state of affairs. Linux once promised a new way. It degenerated IMHO to the lesser of two evils.

bakunin

3 Likes