Slashdot Mirror


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.

21 of 606 comments (clear)

  1. Stop trying by Anonymous Coward · · Score: 5, Insightful

    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

    1. Re:Stop trying by fisted · · Score: 5, Insightful

      Because by coding against a black box, you can only become more and more proficient in knowing how the black box behaves for given inputs - the underlying concepts are pretty much invisible so the computer mostly remains 'magic'
      It's the price you pay for being "ready for granny" ;).

      Another reason would be the WINAPI. It's a horrible, horrible mess.

    2. Re:Stop trying by AJH16 · · Score: 5, Insightful

      Understanding what the tools do under the hood is important. Using command line tools is not. I could write in assembly if I really wanted to, but I use C# for most stuff. I understand what it does under the hood, but that doesn't mean I have to always work at that level. Using GUI tools is the same thing. I know my GUI tools for administering a Windows server and I can typically make complex adjustments just as fast on it as my UNIX buddy can do using command line tools on his Linux boxes. The difference is what we are comfortable with. Some things go faster with one command, but when you have more complex actions, sometimes the GUI is faster. Either way, you still have to know your system and know what all the buttons or commands actually do.

      --
      AJ Henderson
    3. Re:Stop trying by fisted · · Score: 5, Insightful

      That isn't what i was talking about.

      They are stuck in the way TFA points it out -- it's in their minds.

      Lets try an analogy:
      Say you have a hammer - yet nobody ever taught you how to use it, so you have to figure it out yourself. You mistake the head for a grip, and start bashing nails into the wall by holding the hammer's head in your hand, and hitting them with the /actual/ grip.
      It sort of works, and more importantly, you aren't aware of a better way, so it's "the best way" (you know).

      Now imagine being told that you've been doing it wrong all the time, that the hammer is to be held at the other end.
      Skeptically, you give it a try. Holding the hammer correctly for the first time in your life, you realize it's a bit harder to handle than the way you're used to.
      Then you violently, like most people on their first attempts to hammer something, smash it onto your thumb, OUCH, WTF, this is fucking dangerous.
      Clearly, your original way to hammer was superior, and way less painful/dangerous. Right?
      No -- all it would have taken is to actually see someone working the hammer properly, before you realize how wrong you've been.

      It's pretty much the same when it comes to CLI vs GUI

    4. Re:Stop trying by NotSanguine · · Score: 5, Insightful

      Cygwin is an abomination.

      No, seriously.

      Compared with cmd.exe and the standard MS command line, it is heaven, my friend.

      --
      No, no, you're not thinking; you're just being logical. --Niels Bohr
    5. Re:Stop trying by danlip · · Score: 5, Insightful

      Cygwin is the only thing that made life tolerable while doing development work for companies that only allowed employees to run Windows. I don't think I'd call it an abomination, it's perfectly fine if all you need is a bash shell and the standard tools (find, grep, sed, etc). But I hope I never have to use it again, mostly because I hope to never be stuck on Windows again.

    6. Re:Stop trying by Runaway1956 · · Score: 4, Informative

      " well, OS/X *is* UNIX."

      Easy there, Cowboy. You don't want all these pilgrims to just drop dead of coronary arrest, do you? Break the news to them gently, please?

      --
      "Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
    7. Re:Stop trying by HarrySquatter · · Score: 5, Informative

      I wasn't talking about what 'the tools do, under the hood' (dammit, typical windows speak), my point was that your operating system is a black box. dammit there isn't even source code available.

      Darwin source code no longer exists? This link no longer works? In an education environment you can also get access to the NT source code. Either way, it's all irrelevant to most programmers even those on Linux.

      IOW, windows experts know how to use windows, unix experts know how unix work (and therefore, due to the openness and clarity, a lot more about how their computers work).

      So OS X is no longer Unix? No longer bundles all the Unix utilities? No longer uses POSIX?

    8. Re:Stop trying by Desler · · Score: 5, Insightful

      How many people writing applications on Linux ever regularly read the kernel code? Or, for example, the Qt source code beyond the headers? Yeah, next to none of them.

    9. Re:Stop trying by Anonymous Coward · · Score: 5, Funny

      The "standard windows commandline" is now powershell, and it is wonderful in many ways despite its quirks.

      Absolutely. Indeed, it is approaching the Bourne shell of the 1970s, almost approaching late '70s C shell.

    10. Re:Stop trying by jedidiah · · Score: 4, Insightful

      Cygwin is GNU bolted onto Windows. So it has it's own quirks. While it's better than all of the alternatives if you're being forced to run on an NT machine, it's no replacement for the real thing.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    11. Re:Stop trying by pla · · Score: 4, Insightful

      The first statement is not true for the share of developers among the Linux or unix users, which is substantial.

      "Could" does not equal "is".

      I code for a living, 20 year veteran. I've rolled my own Linux distros (back before the likes of Knoppix remastering made that trivial). I've tweaked my own kernels to (for example) force enumeration of a second PCI bus on a box that only announced it had one (nothing impressive, not bragging, just establishing my "cred").

      And honestly, 99% of a modern Linux distro still amounts to a black box to me. Yes, I could open the box, and have the background skills to understand what I see inside; but the GP's claims stand, IMO. To 99% of Linux users, even including devs, Linux may as well run on caffeine and enslaved pixies for all we passively know about the internals.

      That said, I will agree with you to the extent that having the ability to open the box when necessary makes a world of difference. But going back to TFA, that doesn't mean squat to someone who only sees pixies even when they do look inside. ;)

  2. Command line is more error-prone by jones_supa · · Score: 4, Interesting

    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.

  3. Try GnuWin32... by xxxJonBoyxxx · · Score: 4, Informative

    >> 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.

  4. Re:It's an Exclusionary Club by SgtKeeling · · Score: 4, Interesting

    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.

  5. If it's better, how hard do you need to sell it? by fuzzyfuzzyfungus · · Score: 4, Insightful

    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.

  6. Re:Command Line Not Necessary by jedidiah · · Score: 4, Insightful

    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.
  7. The FA is backwards by spasm · · Score: 4, Insightful

    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.

  8. Re:It's an Exclusionary Club by bonehead · · Score: 4, Insightful

    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.

  9. Re:It's an Exclusionary Club by bonehead · · Score: 4, Funny

    Well, sure, but what about when you first started getting into computers?

    Um, there really weren't any GUIs back then...

  10. Re:A step backward by bonehead · · Score: 4, Insightful

    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.