4 ms·
In many ways, a lot of the complexities in computing are born from the lack of capabilities. C is a simple language. It's so simple it has no concept of modul
by hsn915 4y ago
In many ways, a lot of the complexities in computing are born from the lack of capabilities.
C is a simple language. It's so simple it has no concept of modules/packages. So as a hack you can 'include' header files.
But this simple hack creates all sorts of complexities.
Things would be simpler if the compiler had a concept of modules or packages.
Ruby is so simple you don't need a compiler! You just need packages to exist in your system which you can install using the command line.
Except now to ship a program you have to ship the entire environment with it, so you create Docker.
But things would be simpler if the language had a compiler that can produce a self contained packaging of the program.
Supporting only English makes things simple until people from other countires come along and they independently try adding support each for their own language, and you end up with tons of encodings and code pages and all the mess that was there before unicode.
Regarding shell, actually the shell language has a quite a high barrier to entry, but only because it's cryptic. That's not my problem though. My problem is even if you add error checking and all that, you don't know if it actually works. There's no compiler that will report errors for you. It's very easy to write incorrect code and get absolutely no feedback about it.
There's really nothing to gain from doing this.
- dundarious 4y agoThat reads like an argument for static type checking languages and against runtime dynamic languages, and I'm generally in the same camp as you, but obviously it's not impossible to use either to write a good program if it's only 1000 lines (they also state they use shellcheck, which is not nothing). There's absolutely something to gain from their approach. And shell is not particularly cryptic, it's just taught awfully -- the main problem being that lazy tutorials just don't mention how quoting/tokenizing works. Using shellcheck almost always pushes you in the right direction.