
My guess is that most of Café members would agree that if given a choice between buttons with short labels and buttons with long labels they would ask to revert back to CLI. Maybe I'm wrong here, but I think Unix-style CLI is not going anywhere any time soon, regardless of retina screens and any other bells and whistles of modern GUIs. Don't get me wrong, GUIs are great for a lot of specific tasks, but CLI still outshines them in many areas, and I think short command names are a part of a reason for that. Not just command names, in fact; in a one-liner I would rather write "while read a; do cp $a...; done" than "while read filename; do cp $filename...; done". They are exactly the same, but it's simply easier to deal with a short line — read it, edit it etc. And, as Haskell makes it easier to use and control local variables, I think it's even more forgiving about short names. In C you'd need a descriptive name simply to make sure you don't use your loop counter somewhere inside the loop; but in Haskell, due to immutability, you don't usually have to worry.
On 20 Sep 2020, at 21:30, Ignat Insarov
wrote: Command shell is a very old and peculiar human interface — if human at all. They had 80 character wide screens and visibly lagging connexion. We have retina screens, GPU accelerated rendering and magical auto-completion. Imagine those commands were buttons that you could press. Would you prefer a button to say _«`ls`»_ or _«list files»_, _«`cd`»_ or _«change directory»_? For a vivid example, imagine a web site where you have `lgn` and `plrq` instead of _«log in»_ and _«pull request»_. Would you like that?
Getting back to Mathematics — this is where abstraction and notation come in. We can give names to things and we can use scoping. But neither mathematicians nor system administrators invent new terminology for every next paper or script — maybe a few key words. Industrial programming is yet another thing. I imagine when you have a record with a hundred fields it pays off to have longish field labels. And you cannot expect the next person to read your code from top to bottom so that they get used to its peculiar vocabulary. For example, today I am merging two branches of a 10 thousand lines code base that diverged last Spring. Guessing the difference between `rslt` and `res` is the last thing I need. You do not need to call your context _«`ctx`»_ and your result _«`rslt`»_ — there are already words for it.
There was a time when every character needed to be typed and there was a rectangle of only some 80×25 characters visible at once. Things have changed. I can have two terminals of 119×61 characters each with a fixed width font, and perhaps twice that with proportional. The number of characters it takes to type an identifier in a smart code editor is proportional to the logarithm of the number of identifiers in scope, not to their length.