Literacy: Natural Language vs. Code
sirReal.83. writes "The Guardian has an article by Dylan Evans, author of Introducing Evolutionary Psychology. The article discusses literacy in computer languages, and suggests that we are in the 'technological middle ages.' Cuddly UI's are the manifestation of wishful thinking; just as we try to make computers to adapt to us, we must adapt to them." Some good points are raised, with the example of the command line interface used, which is a much better choice than, say, an array of switches or a punch card.
sigh. where are you, ted nelson?
must... stay... awake...
Microsoft is oppressing the masses with the GUI. Everyone must learn a scripting language in order to manipulate information. Suuuuuuure.
Who the hell wrote this article, the union of all slashdot posts?
The author poses the question of "Would you know what to do if you were left staring at lines of letters and numbers of HTML?" to which I (and most of Slashdot, I suspect) answered YES! Then I found out since my answer was yes, that I am in a minority! Awesome!
:) This is simply a case of somebody "telling me what I want to hear" and I love it! :)
I am a Computer Science major at MUN and with the reduced spending and reduced high-tech jobs my greatest fear is that I will not get a job in a couple of years when I finish my degree. I, along with many other SlashDot readers, might become obsolete.
This article takes the opposite viewpoint -- it emphasizes how important computers and technology are to our future. I particularly liked the article telling us that everyone else is in a dark age.
If it is also necessary to spend hundreds - no, thousands - of hours at the keyboard, how are our scientists, the ones that aren't only interested in computers, supposed to get the time to study their own respective fields? I mean, thousands of hours takes up a bit of time, but I don't think we want nuclear physicists or molecular biologists putting their own fields second. I mean, imagine if your surgeon were a little tired from trying to figure out the slashcode he just installed on his home computer? I know my friends can't keep their hands steady holding their Mountain Dew, much less keep a scalpel steady while they're messing with my heart...
No trespassing. Violators will be shot. Survivors will be shot again.
Those aren't direct quotes, but that's the meat of the article.
Imagine that in 1930, somebody said that the controls presented to drivers don't map well enough to the function of cars, and that in the future people would have to know how every drivetrain component works in order to drive or face losing the ability to use public roads.
You don't have to know how a VCR functions in order to use it. You don't have to know how your cell phone transmits signals in order to use it. You don't have to be an engineer or know how a torque converter works in order to drive with an automatic transmission.
I don't see why an article that states that users will have to know how to code in order to use computers is worth a spot on the homepage.
Am I missing something here?
Somebody get that guy an ambulance!
The article suggests that machines deal in text instead of through colorful GUI windows. This isn't true at all. The computer has no preference between user interfaces; it doesn't make a bit of difference to the machine.
Whether or not I'm adding a switch on the command line or checking a box in some GUI, I'm performing the exact same function - that is, toggling some flag/setting within the program. It's just a different representation. The article suggests that text is the language of computers. This is not true at all. The language of computers is a stream of octets that are interpreted as instructions by the processor. That is the only language the computer actually understands.
I can say for sure that I find the GUI very efficient at times. For example, I do some video editing and converting, and find myself using mencoder (a tool included with mplayer) rather often. There's a LOT of switches at the command line, and often I find myself spending several minutes browsing the manual page to find what switches I need set. And even then, sometimes I find myself turning to Google to find the information I need. I can't help but think that it could be done much more efficiently with a very basic graphical front-end. The CLI isn't always more efficient.
I know, there's many tasks that are better done from the command line. But to say that a user operating a GUI is further removed from the internals of the computer, is just incorrect. Whether or not I'm adding a switch on the command line or checking a box in a GUI, it generally has the same effect.
The suggestion that people should use CLIs instead of GUIs so that they can understand how their computers work at a fundamental level seems kind of ironic to me. CLIs were originally introduced as just another layer of abstraction. When you type "ls", you don't really think that you're sending the command directly to your CPU, do you? The command shell processes the text that you input, interprets it, and cranks out a result (I oversimplify, of course). Even your file system is just another level of abstraction, as is the C or C++ code that you type in to be compiled. On the other hand, additional abstraction can simplify user tasks tremendously and make learning curves much shallower. Try writing a "hello, world" program in ASM^H^H^H octal, and then in Perl or Python or C or java or whatever, and see how much easier it is!
I'm not sure the average user need to start cracking open books on Java (or even VB). Yeah, as a programmer I take great interest in how the computer works, and it probably makes me more productive. However, I think I was very productive with the computer without actually knowing any programming languages that well.
The key to being productive, after understanding the basics of the computer in terms of memory, files, etc., is tools. How do you search for text in files (grep, find)? How do edit HTML files (text or GUI based program)? How do you move files around? (samba, ftp, etc.)
It may be useful to at least be able to wrap your head around something like a regular expression, though even being able to understand what "*.txt" means is nearly as useful. For the adventurous, a scripting language. I don't think any more, at least given the current tools, is that necessary. Making a full-fledged program is hard work, it takes time. Most tasks you may think require programming are already be implemented.
Obvoiusly, computers shouldn't be made purely for those who have no patience to learn. However, there is a balance, and everyone knowing assembler Java, or even HTML isn't it.
As has already been pointed out in other posts, computers do NOT have any preference for text. All he is doing is spelling out HIS preference for text and projecting it as a need for everyone to learn 'the language of the machine'. Does he realize that the language of the machine is just a streams of 1's and 0's? Apparantly not. I can't believe anyone published this drivel.
Making a tool more accessible for the masses is exactly what should be done, and is the normal progression for any technology. Perhaps he thinks that we should program our VCR's by setting dip switches, or reprogramming it's code just to catch the latest episode of The Simpsons?
Yet another example of someone with far too much time on his hands to think coupled with an amazing lack of common sense.
That journalists, even "technical journalists," know jack shit about computers. Let this guy start hammering out all the x86 opcodes one by one then tell me his article makes sense...
Am I missing something here?
Maybe you are.
The car, in 1930 and today, is a simple, single-purpose artifact. However complex it may be under the hood, it goes places and takes you along. The driver needs to steer, and control speed. That's it. To suggest that the driver CANNOT use it without being able to understand, repair and adjust every component is pretty silly.
The computer is a non-specialized, multipurpose artifact. A programmer can make it into a very expensive word processor, or a very expensive ledger, or a very expensive sliderule, or a very expensive map, or ... To suggest that the operator must be able to provide at least some of the instructions the computer needs, in order to make full use of it to accomplish his job, doesn't seem entirely silly.
Any job which requires no creativity (for want of a less fuzzy word) can be done by a computer without any human intervention. For example, if you are simply entering data and running programs A, B and C, a better system could enter the data and run the programs without you.
I would say that any worker using a computer who can do his job without doing ANY programming could be replaced by a slightly better program than the one he is ``operating''. The only exceptions would be people doing jobs which are wholly creative, and could be done without a computer at all (e.g., writers, who could use pencil and paper).
Furthermore, the complexity in a car is not irreducible. A battery, an electric motor, some wheels ... it would be possible to make a car that the average driver could understand. There is nothing there beyond the moving parts. The car is not valued because of its complexity, but because it gets you places.
In contrast, the complexity of the computer is irreducible. Even if it were physically simple and comprehensible (and really, it is), the software is arbitrarily complex, to the extent that we have a new field of science to study it. It's is this complexity which makes the computer valuable.
See what I've been reading.
This guy is an idiot.
By presenting us with colourful screens and buttons for us to click on, Microsoft encourages us to believe that we can force computers to adapt entirely to our preferences for visual images, without having to adapt ourselves to their preference for text.
Computers have no preference for text. They have no preference for graphics. If they could be said to have any sort of preference at all, it would be binary. And that would still be a misleading statement.
His goofy comments about html don't make any sense. HTML is just as artficial a construct as the graphics rendered by the browser engine.
Does this guy think that you can just write some code on a piece of paper and show it to a CPU? The text on your screen is already an abstraction.
Sounds like he has some problem with the fact that even idiots like himself can use a computer without any kind of in depth knowledge.
And all this nonsense about forcing computers to adapt to us. WE MAKE COMPUTERS. They didn't "evolve" of their own volition. I'm surprised this guy isn't complaining about how using a steering wheel doesn't require knowledge of the actual steering mechanism.
just to point something out about my reply. I was addressing the comment "programming will no longer be for the scholars".
:-)
The truth is that there WILL be more capable programmers in the future as the technology increases, but that is simply because the breadth of "scholars" in the area will increase, not because "Joe Secretary" will learn to program in order to understand his email system better and start hacking Mozilla Mail as a result.
Stewey
There are 10 kinds of people in the world. Those who understand binary and those who don't.
A very important point that the author misses here is the fact that most people are pretty bad at literacy. This usually isn't very much of a problem. Even if I'm a bad writer I can usually get my point across to a co-operative reader.
But a computer is anything but co-operative. Being a bad programmer in the computer realm is a much more serious handicap than being a bad writer in the literature realm. Computers are much less forgiving of mistakes. And there tends to be a lot more complexity engendered in computer programs than in the day to day things that people need to write down.
char a[]="lbiitgt l e \n\n\0";main(){for(char*c=a; *(short*)c;c+=2){putchar(*(short*)c);}}
I dunno. I think that's perfectly logical. If I want a wordprocessor, I shouldn't have to do more than request it. The idea of a "folder" where all my "applications" go is a little silly.
On the command line (*nix), if I want an editor, I can type vi. If I want my calculator, I can type bc, and that's it. It's all in a path.
Would it be unreasonable to make it simple enough to start the word processor w/o having to deal with more than one real step and w/o cluttering up my desktop with all the applications I like to use?
Sometimes, people don't have the time nor the care to have anything more than a shallow understanding, and that's ok. If an accountant can do his work well, and can be sped up by a calculator and be sped up again by a computer, he shouldn't have to "figure it out". 1+1=2. On a calculator, "1" "+" "1" "=" should get him 2. On a computer, he should expect the same after requesting a calculator.
You are right, the complexity is what makes it very valuable. It's a multipurpose tool, as you've said before. But so is a car, if you understand it inside and out, so you can turn it into a plane, or an electric generator. Should somethign that is intended as a multipurpose tool be THAT complex to convert from one tool to another?
--
"I'm not bright. Big words confuse me. But Wanda loves me and that should be enough for you." - Cosmo
If I want to make a 3D game, I can use OpenGL or DirectX. However, I have little clue how exactly telling OpenGL to put a quad with various features on the screen actually gets it on the screen with those features. For all I care it's magic. It just works. OpenGL and DirectX are my lowest levels of abstraction for 3D graphics currently. There's also DarkBASIC et al for those who don't want to go even that far down.
If I want to make a 3D API like OpenGL or DirectX, I need to dig down deeper to understand how graphics cards work in order ot get any realistic amount of speed. Consoles tend to have fewer levels of abstraction.
This is how it works in every area. You have the people on top who have little to no abstraction. They know exactly how every little thing fits together. And they get paid accordingly. The people on the bottom just give you your burger. And are paid accordingly. They don't care how the meat or buns or whatever got there or where the money goes aside from their pay.
I can imagine that like all things, computers are going to reach a level of complexity that's just flat out absurd. Hobbyists work on kit planes but it takes years of training to properly maintain a Boeing 747. As the complexity of planes went up, the requirements for getting hired to work on them also went up.
However as usual, there will be a handful of geniouses that understand everything who write abstraction layer unpon abstraction layer until a level is reached that it doesn't take a genious to get a polygon on a screen.
All that will change is the amount of education you'll need to be able to function at a certain level.
Planes are one thing but it used to be that to fix a computer you had to hunt for a vacuum tube or whatnot that was out and replace it. These days, if a computer breaks, within 5 minutes you can determine the problem then throw out the defective part and buy a new one with little training. It's actually gotten easier to maintain PCs. I don't have to try to find and then fix a transistor in the northbridge. I just throw the MB out and get a new one.
So yes, you do need to know assembler for certain positions to earn a certain pay. But, there will always be other entry levels that don't require that level of knowledge. It's up to the individual to choose what level they want to strive for.
In conclusion, dumb, not well thought out article.
Ben
Work Safe Porn
umm, Windows is VERY weak on the command line. Unless you install Cygwin or some such, the windows command line is barely functional as compared to other OS's. Only the Classic Mac OS is worse for command line use.
Windows scripting is both worse than the command line and better. By default, Windows Scripting is a joke. There is no real scripting capability. However, 3rd party utility's integrate significantly better than 3rd party command line utilities. But by default, Windws comes in dead last for scripting (AppleScript is very powerful compared to Batch Files, and Classic Mac OS is still second worst for scripting).
Longhorn should change this, with the rumoured next-gen command line implementation that approaches Unix-level capabilities.
"You've got an invalid haircut" -Warren Zevon - Life'll Kill Ya
Bah. Everything in information technology is a metaphor, an illusion to trick the human mind into coping with the machine. Where do you think the term "channel" came from? It's a metaphor, using a nautical term to boil down an overbearingly complex technical description into a concept non-technicians can understand when trying to get their television to show them Gilligan's Island.
Saying the command line is "closer" to the way a computer "really operates" is preposterous. The command line itself is a metaphor, an abstraction that simulates lingual conversation, where a GUI is an abstraction that simulates tactile space.
Most programming languages are based around the lingual metaphor... but not all of them. Prograph was a language based around manipulating shapes in a super-flow chart, and Helix is a relational database language based around the same concept, only in a declarative rather than procedural programming context.
Computers aren't even remotely human... they aren't even remotely alive or self-aware. These are just anthropomorphizations people assign to the system, because they don't understand that the command line, the C++ language, the GUI, are simply anthropomorphic metaphors, conceptual hacks that empower the user.
The very first Hollerith machine used on Ellis Island was very close to a GUI system. You plugged in the card, and turned clearly marked dials to indicate nationality, age, etc, which were punched into a card (stored im memory.) Information was read from memory by putting the cards in a reader, where the appropriate option was lit up on a menu of possible options listed in plain english, corrsponding to the nationality, age, etc, as it was stored on the card. It depended on tactile metaphor to store and visual metaphor to retrieve data, rather than an answer-response metaphor like a CLI. The only way to get closer to the metal is to put the bits into memory by hand with a hole punch.
What's needed are better, newer, more empowering metaphors. GUI's engage the part of the brain that deals with tactile, pattern and spatial relationships, so they're a better metaphor than a command line in most instances. We need to transcend the GUI with a more involving illusion, not just swap it for an older illusion that doesn't take as much advantage of human neurology and psychology... like the command line, or job control language, or patch panels.
SoupIsGood Food
It's unfortunate tyhat Stephenson, in that essay, seems to believe that Gates and Allen invented the idea of selling software. It is so typical of the PC generation that people imagine that if the first person to use an idea on a PC invented it.
A relative of mine was selling software in the early '60s. I worked for a company selling software in 1971. I wrote a command line interface for a teletype in 1969, and first used one in 1967.
Likewise, I first used saw a hyperlinked GUI presentation at a FJCC in 1967 or 1968.
As far as the article that started this thread, it is idiotic. It was either done by someone who has no clue about software engineering, or who suffers from recto-cranial insertion. Probably both!
People have been trying for a very long time to figure out how to KEEP folks from having to know all the dirty little details of computers.
By the logic of the article, we should also all become logic engineers, and then solid state physicists, and finally wave Shroedinger equations around to understand how the computer REALLY works. Those of us who have done all of that still end up specialists who don't do more than a tiny bit, and those who are not specialists in that area don't need to know it, or even know that it exists.
I tell folks who really want to know how a computer works to learn assembly language, and then study the internals of an OS. Then they at least understand what a computer *does*. But they still don't know how to build one, nor should they!
Personally, I use command line for most of my work - cygwin on Win2K for most, Linux for some. But I would NOT want my wife to have to use it, nor my daughter the neuroscientist!
The only good weather is bad weather.
In the olden days, there was an expression used to refer to those disciplines and sciences deemed necessary to the free man. That expression was the liberal arts. Though today we might associate that phrase with endless "humanities" classes, or with a college degree not useful for any particular career, of old it meant simply those arts -- practices -- necessary to exercise the liberty of a free citizen. The classical liberal arts were seven: grammar, rhetoric, logic, arithmetic, geometry, astronomy (for which read "physics other than ballistics"), and music.
(Please note that literary criticism, social theory, and deconstruction are not named among the liberal arts.)
We still recognize (I hope) that one who cannot recognize a fallacy in argumentation, or who cannot do arithmetic, is severely impaired in exercising the freedoms of man and citizen. A person who is unacquainted with works of literature may miss cultural references in a politician's speech, but a person unable to cope with rhetoric and logic cannot even tell if the speaker is contradicting himself. Likewise, one who cannot add and subtract cannot tell if he is being cheated in the marketplace.
From a classical viewpoint, what Evans is suggesting is that an understanding of computation has become a liberal art: a discipline necessary to exercise freedom. It is unfortunate and misleading, however, to frame this in terms of "programming languages" or "command lines" -- both of which are simply abstractions (just as is the GUI) on top of the mathematics of computation. The essence that must be understood is no language other than mathematics.
(As an aside: Historically, computer science -- which has little, I might note, to do with "knowing programming languages" -- is an outgrowth of mathematical logic, which is itself an extension of the liberal arts of arithmetic, geometry, and classical (syllogistic) logic. Thus, Aristotle and Dodgson, to pick two, prefigure Turing and McCarthy.)
The same fundamental calculi of functions, algorithms, and Boolean binary logic underlie all of the abstractions we may encounter in computing. GUIs, shells, assemblers, virtual worlds -- all of these are necessarily founded upon the same mathematics. No matter how complex the language or how pretty the interface, it must abide by mathematical logic or it cannot function.
Thus, if Dylan Evans seeks, with Neo, "the code behind the graphics", he should not look to the Unix shell, to C, or even to machine code to find it. Those are tools, not truths, and freedom comes with understanding truths, not simply with mastering tools. Learn the liberal arts -- mathematics and logic -- and you will be much better prepared to defend yourself as a free citizen in a computerized world.
Shouldn't users be expected to posess at least a rudimentry understanding of just how a computer works?
In my opinion, no. Don't get me wrong, it would be great if everybody that used a computer knew WTF they were doing, but I don't think it's realistic, and I don't think somebody should not be able to use a computer just because they don't know how to do anything but point and click (and a lot of people even have problems with that).
One of the major things holding people back is that most people are not very good at thinking logically, and using a computer well involves logic. Other things holding people back are time and interest. Many people just don't care how to do anything accept the narrow list of things that they want to accomplish on their computer. Developers need to make OSs and applications that cater to these people (while staying secure at the same time), but they also should not forget about the people who do want to do more.
Eventually when computers are *intelligent* most of this won't matter because you'll be able to just speak your native language to your computer to get tasks done. (Although a command line would still be faster in a lot of cases)
Have you tried Linux yet?
Perhaps you should go and browse through Eric Raymond's new "The Art of Unix Programming" book (you can even find it free online). He discusses the stream approach, and why it's a good idea (vs say the object approach). I'm sure others have covered the same ground, but that's the reference I've seen it in most recently.
If everything is a stream of bytes, any kind of interface can be created with it, based on its purpose. Simple interfaces can hide complex structure by just exchanging blocks of data blindly, complex ones can use parsers (a thing that Windows programmers never learn) and implement any format easily. And this clearly separates the programs -- they never ever touch each other's address space and can have any, simple or complex, design of their objects. Also whatever can be done with pipes, can be done with sockets, thus allowing remote and distributed processing without any change to the software doing it.
Dotnet's "command line", judging by the descriptions that Microsoft made, allows things to just sit in one happy clusterfuck and mess with objects while they are freely floating inside the shell application, something that is in no way different from writing "scripts" in a large spreadsheet. This is yet another example how Microsoft invents 65537th iteration of the mix of their original DLL and DDE, two ideas that they still can't get right after more than a decade of development.
Contrary to the popular belief, there indeed is no God.
You seem to be, quite well I must say, arguing for freedom from tyrants who are other people (or people-like beings), while the guy seems to be arguing against the tyranny of the machines (more precisely, the tyranny of the act of controlling machines). Which is not to say you are wrong in your summary, of course; just that we're talking sliiiiightly different things.
Which is exactly what I find this surprising here, since I always thought The Matrix was all about this. The author, it seems, is to be unable to understand the concept of abstraction; to become a truly powerful (not necessarily great) programmer, you don't need to figure out how your program works in details, just as, to make a satisfying omelette, you really don't have to know the chemistry behind an egg. Fact of life, people, abstraction strikes at the root of all civilisation, although you're right, to maintain or extend civilisation as we know, we need other tools such as logic.
His other general point, however, is well-taken; programming is, to be sure, fast becoming critical for career in any scientific discipline, but for reasons other than those he mentioned. Among other things, agent-based modelling (pun wholly intended) is the Shiny New Paradigm (tm) these days in social sciences, and obviously, you need programming for swarm intelligence and all that.
But no, you don't -- shouldn't -- need to be able to program your CMOS for that.
More than mere navel gazing.
how many people drive a car and do not know how a combustion engine works ?
People have been trying for a very long time to figure out how to KEEP folks from having to know all the dirty little details of computers.
You're trying to carry the author's point way too far (to the point of absurdity).
By his references to 'Windows', I believe that the author is well aware of those efforts. The point is that those efforts have gone way too far in the wrong direction. Things should be simplified as much as they can be and no more.
Most 'user friendly' GUIs way over-simplify to the point that simple tasks on the commandline become nearly impossible and horribly time consuming. Haven't we all seen people do open-search/replace-save-close over dozens of files because they don't know how to use for and sed on the command line (and thus, turn a 10 second job into an all day adventure)?
The real argument is one of basic literacy, not mastery. We don't expect everyone in the western world to be a literary genius or to know how to design, build, and run a printing press. However, we do expect them to be able to read and write. In the same way, most people can drive a car even if they can't design one or even rapair one. Many who can repair a car can't design one from scratch. In the same way that we don't hire a driver whenever we want to travel by car, and don't hire a scribe when we want to write a grocery list (and then a scholor to read it back to us as we shop), we shouldn't have to hire a programmer just to interact meaningfully with a computer.
Just as we don't avoid the scribe by drawing little pictograms of the foods we want to buy, we shouldn't avoid the programmer by using little pictograms as a replacement for knowing how to make a computer do what we want.
There are people who get by without literacy in the west, but I don't think anyone trys to deny that they are seriously handicapped nor do they propose that the solution is to eliminate the need for literacy to fully participate in society (Yes, there are some efforts at pictographic signs, but those are mostly for people who are presumed to be literate in a foreign native language).
It's not a matter of expecting everyone to learn shell scripting right now, it's more a matter of expecting that simple scripting and programming will become a basic educational requirement just as literacy went from being an archane knowledge laboriously learned in early adulthood by a few monks and other scholors to being a basic skill we all begin learning before age 6. Efforts to the contrary are a waste of resources.
If everyone spent time learning computer languages, what would that do to the skill of the doctors, architects, poets, etc? Why should everyone's mind be trained to think along the patterns of high level languages designed to run on our von neumann architecture machines?
Computers are tools, and should serve us. I'm constantly telling people, "Don't think you are stupid because you don't understand how to do some task on the computer. Some nerd in a windowless office wrote the code behind this program, yes you may need to learn how to make it do what you want, but it's not your stupidity."
Here's an analogy. If you had an old car which would only start if you hit it in the right spot, pull the choke at the right time, would people applaud you for being an automotive genius? No, they'd say, why don't you fix/sell that piece of junk and get a new one. Why then do people use terms like 'computer genius' (in the general public) to refer to someone who is able to make the computer do what they want? Using the command line is technician work - it is a skill, and a valued one, but it is way overvalued in society today. (This isn't meant to be a troll, but as an example, our favorite software company in redmond encourages this kind of thinking by the design of their software.)
Sure software is useful, and speaking as a software engineer, I enjoy making my own 'tools' for various uses. However, I wouldn't want everyone to have to think the same way - how boring.
It would be far more productive if people took the time to learn an additional human language.
The real reason anyone is a peasant in this technological age, is because they are too impressed with technology, they believe what the technology (internet, tv) tells them instead of thinking for themselves! Example: jdbcmgr.exe virus hoax.
As far as the article that started this thread, it is idiotic. It was either done by someone who has no clue about software engineering, or who suffers from recto-cranial insertion. Probably both!
According to the article, the author cowrote an essay on the Matrix and evolutionary psychology.
I guess that proves your point...
But I would NOT want my wife to have to use it, nor my daughter the neuroscientist!
I agree, but not because the command line is inherently hard.
For example, it's great to be able to say:
find . -name \*foo -exec rm \{\} \;
That's not a complicated thing, and in fact nothing on the command line is actually difficult to comprehend.
The problem is that there are far too many kluges that are regarded as l33t skillz, such as escaping and the proliferation of executable configuration files. (Being executable, of course, it's not possible to write a decent configurator for them.) Every program you use has a different way of doing things, and open source just makes it worse because it grants immortality to poor design decisions. To top it off, the terminal interface, the lamest interface ever concocted, is regarded as sacred by CLI luddites. (Oh, but I can make it 50% transparent!)
The reason CLIs are used by so few is that a handful of zealots refuse to fix the bugs and insist on sticking to stupid POSIX anachronisms. So the rest of the world moved past them.