How Ya Gonna Get 'Em Down On the UNIX Farm?
theodp writes "In 1919, Nora Bayes sang, "How ya gonna keep 'em down on the farm after they've seen Paree?" In 2013, discussing User Culture Versus Programmer Culture, CS Prof Philip Guo poses a similar question: 'How ya gonna get 'em down on UNIX after they've seen Spotify?' Convincing students from user culture to toss aside decades of advances in graphical user interfaces for a UNIX command line is a tough sell, Guo notes, and one that's made even more difficult when the instructors feel the advantages are self-evident. 'Just waving their arms and shouting "because, because UNIX!!!" isn't going to cut it,' he advises. Guo's tips for success? 'You need to gently introduce students to why these tools will eventually make them more productive in the long run,' Guo suggests, 'even though there is a steep learning curve at the outset. Start slow, be supportive along the way, and don't disparage the GUI-based tools that they are accustomed to using, no matter how limited you think those tools are. Bridge the two cultures.'" Required reading.
Not everyone cares.
Those who do, while learn the power of the command line, just like myself and many others. Those who don't, will be happy with the guy.
THATS FINE. STOP TRYING TO CHANGE THAT.
Not EVERYONE needs to be a sysadmin or developer. Some people do stuff other than dick with computers 24/7 so knowing how to use awk is a waste of time, just like I doubt too many of you guys know how to milk a cow (even just hook one up to the milker which is pretty much automatic today).
Different tools for different jobs. Not all of us need a freaking hammer.
-BitZtream
It's easier to shoot yourself in the foot with the command line. A wrong character at some position might cause a lot of unexpected behavior and leave a good mess to clean. Just offering a counter-argument for the sake of discussion.
>> so wholly lacking in the functionality of a UNIX shell
That's why I use the GnuWin32 http://gnuwin32.sourceforge.net/ tools: basically your standard Unix utility set on Windows.
Essentially this.
I had a prof who would do all his lectures & demos from the command line.
Need to write a short C program to demonstrate forking? Boom! Into vim and coding up a basic example in a minute or two.
Typo in his LaTeX slides? Boom! Switch over to fix it, then recompile the slides, and on with the lecture.
Student asks a question about a command line argument? Boom! Man pages up on the big screen.
It was a little intimidating to see this CLI master hopping around typing crazy little combinations of letters and making magic appear on the screen, but at the same time it was inspiring. It was an example of what we could aspire towards.
For casual users, anything with a steep learning curve (no matter how powerful) is a tough sell because they'll probably spend more time learning than they would save. Trying to evangelize them may be morally satisfying; but is largely pointless.
For people who actually want to do something computer related, at scale, surely anybody sharp enough to be left unsupervised near a computer will learn (the hard way, if necessary) why we use tools with steep learning curves and great power: because the alternative is an essentially unbounded amount of error-prone manual labor.
If that doesn't become clear to them fairly quickly, either the GUI tools are working just fine for them, or they aren't in an area where the CLI really shines, or they should really consider doing something else. You shouldn't need to turn on the hard sell.
Choices of specific tools, with their quirks dating back to design constraints or decisions made, in some cases, before today's students were born are largely a matter of taste; but the use of tricky but high-powered tools swiftly shows itself to be necessary. You just can't click fast enough, even if you wanted to.
GUIs tend to suck at automation because all GUIs tend to assume that end users are blithering morons.
The problem with a GUI is that there may not be a "fully functional interface". It may simply not exist yet. Creating one by stringing together tools in a good shell is a lot easier and quicker than building a full blown GUI app.
Do more than one of something then a command line or programming environment will likely benefit you if you aren't interested in endless busy work.
A Pirate and a Puritan look the same on a balance sheet.
It took me a minute to realize the author thinks gui interfaces are Gay Paree and the command line is back on the farm. In my experience it's the other way around - once the kids have discovered the flexibility and utility of the command line it's a bit hard to keep them in the walled garden of gui interfaces.
Any gui is absolutely great as long as a) the task you're trying to do with it is one the programmer/designer has anticipated; and b) the programmer has done a decent job. As soon as you're trying to do something that a gui designer hasn't though of, it suddenly becomes difficult or impossible to get anything done, whereas you can usually work out a way to do it using the multiple small pipeable tools available in your average shell.
Any dumbass can do stuff in a GUI, but real BAMFs rock a terminal.
I think nearly all experienced professionals would simply say that both types of tools have their place.
I spend 99% or more of my time on the job working in a bash shell. But if you're talking about a new piece of software that I've never configured before, and probably will never have to again, then pop up the GUI, set the options, and move on with my day.
That said, while a CLI does have a much steeper learning curve, it is far more powerful in most cases. I don't avoid GUI tools out of some sort of "elitist" mentality, I avoid them simply because they're so limiting.
Well, sure, but what about when you first started getting into computers?
Um, there really weren't any GUIs back then...
Wow... Just wow...
Expanding on your example, what was the MacOS way to set the color on 7,000 items, out of 10,000 that were in that location? Did the GUI tool that you are so certain is the "One True Way" provide an easy way to do that?
GUIs may be great for the type of work you do, but I assure you, there is a LOT of work to be done for which GUI tools are absolutely horrible.