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.

47 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: 3, Insightful

      Yes, but then again, there are people who /want/ to become developers, yet are hopelessly stuck in the proprietary shiny-UI apple-windows world, and often don't realize they /need/ to get out of there in order to become decent programmers.

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

    3. 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
    4. Re: Stop trying by bonehead · · Score: 3, Insightful

      Btw, I've seen at most companies, we'll all, that their Linux side of things is a freaking messy disaster. Why is that?

      I actually haven't seen much of that at all. In the cases where I have, it boils down to one of two things:

      1.) Wanting to pay Windows admin wages for a *nix admin.

      or, even worse

      2.) Putting the existing AD admin in charge of the new Linux servers.

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

    6. 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
    7. Re:Stop trying by Anonymous Coward · · Score: 3, 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'

      Only a slim minority of programmers code against the OS-specific or kernel-specific APIs. They all use abstraction layers like Qt, GTK+, .NET, etc. So for 95+% of programmers they won't learn anything else since they'll still be using the same abstraction layers. Using Qt on Linux is not teaching me anything more than using Qt on Windows or OS X does and that's the lowest level that pretty much all programmers would be going.

    8. Re:Stop trying by LordLimecat · · Score: 3, Informative

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

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

    10. Re:Stop trying by LordLimecat · · Score: 3, Insightful

      Linux is a black box for 99% of its users too, since having access to the source and being able to comprehend a small fragment of it are vastly different things.

      Practically speaking, for sysadmins, whether source is available is not always (or often) going to be terribly relevant.

    11. 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
    12. 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?

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

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

    15. 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.
    16. 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. ;)

    17. Re: Stop trying by Anonymous Coward · · Score: 3, Insightful

      There's a Chrom(e|ium) extension for a terminal emulator with SSH if that's what you mean?

    18. Re:Stop trying by Anonymous Coward · · Score: 3, Interesting

      I wrote a SCSI driver for OSX, because OSX specifially disallows generic SCIS access, even to root. That part of the kernel is not (or no longer) open source, so you are on your own when writing the driver, which by the way is a horrible, horrible experience with XCode and layer and layers of C++ abstraction and inheritance. Why do storage drivers panic so much on Macs (LaCie, etc, they all need custom drivers because OSX _knows_ you don't need SCSI CDBs of your own)? This is why.

      On Linux, the source is right there, you can even recompile the kernel with your own debugging in there, you can read the other drivers, you can do whatever you please, and at the end of it, you have a tidy driver, and you know why it works.

      Guess which driver has had no issues since release? One guess, and no peeking now....

    19. Re:Stop trying by NotQuiteReal · · Score: 3, Funny

      destroyed by typos and autocorrect stupidity

      You see how powerful a GUI is! Good thing your typing is perfect, I am sure the command line never gives you syntax errors.

      --
      This issue is a bit more complicated than you think.
    20. Re:Stop trying by LordLimecat · · Score: 3, Informative

      I dont disagree, but one of the reasons I love powershell is because there is so much vendor support for it. Rather than having to use crappily written vendor provided scripts, or learn a new set of syntax and instructions for everything, you can just use one set of cmdlets to manage everything. For example, managing storage units, virtual infrastructure, and networking (if you were using Cisco UCS for example) would involve a unified set of syntax and command structure (verb-noun-- GET-nacifsshare; REMOVE-cluster), with output that can easily be manipulated and passed around. Everything is an object; everything can be piped into get-member to discover its methods, properties, and data types.

      Obviously it will depend on what platform youre on; if your work involves primarily *nix boxes I imagine you would want to stick with bash. But Ive found that it is incredibly rewarding to work with powershell in a windows environment just because of how easy it is to take knowledge from one task and apply it to many others, and how easy it is to get your bearings in an unfamiliar task.

    21. Re:Stop trying by geminidomino · · Score: 3, Insightful

      As it ever was, grasshopper.

    22. Re:Stop trying by grcumb · · Score: 3, Informative

      Linux is a black box for 99% of its users too, since having access to the source and being able to comprehend a small fragment of it are vastly different things.

      Practically speaking, for sysadmins, whether source is available is not always (or often) going to be terribly relevant.

      No, actually, that's a horrible analogy.

      If we must analogize, Linux is deep water. Almost infinitely deep. So deep, in fact, that few choose to plumb it all the way down. But it remains visible and accessible to the level of every sysadmin or developer's needs. The fact that most people prefer to skim along the surface takes nothing away from the volume of information waiting to be explored.

      And now, because I'm forced to indulge in silly analogies, I find myself compelled to say that Windows is a swimming pool. A large one, it's true, and a crowded one, too. But you cannot easily move beyond its (broad) confines, you have no insight into where the water comes and goes (a topic which increasingly preoccupies my thoughts as I consider the statistical likelihood of people pissing in the pool), and you have little control even over your own course as you are buffeted and blocked by the arbitrary actions of others.

      Finally, to get things back on a more practical level, PowerShell may do wonderful things, but the thing that makes Bash so compelling is the environment it runs in. Bash itself is a bit awkward and limited, but it's just glue for binding together countless ingenious (and sometimes even elegant) commands and utilities that can allow you to do things in minutes you couldn't really contemplate doing on Windows in comparable time. In fact, the only way that Windows seems to be able to compete with *nix on the server side is by appropriating the very things that make *nix so compelling.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
  2. Huh, what? by Runaway1956 · · Score: 3, Interesting

    People - the Unix-likes advanced far beyond command-line utilities ages ago.

    System administrators rely on command line utilities, on all platforms. That isn't a Unix-specific thing. Windows administrators do the same thing.

    --
    "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
    1. Re:Huh, what? by rmstar · · Score: 3, Insightful

      System administrators rely on command line utilities, on all platforms. That isn't a Unix-specific thing. Windows administrators do the same thing.

      Sure. The problem is teaching people to be admins. If they refuse to use the CLI, then it doesn't matter if they are smart or not - they will not learn. This was the focus of the original article: teaching students used to GUIs.

    2. Re:Huh, what? by Anonymous Coward · · Score: 3, Insightful

      I hate to break it to you, but I can ALSO write a black box executable that you can call with "connect-nacontroller ctrl1.dom.local \; get-na vol" and have it do magic shit behind the scenes. The fact that, on unix, I do not need to and can use teh tools the OS provides is the whole fucking point. This is why powershell sucks. You can only do the tasks someone else already programmed for you. Get it through your dense head.

    3. Re:Huh, what? by Sarten-X · · Score: 3, Informative

      Yes, you can enable SSH on ESXi. There are also varying levels of support from third parties, most of which are easier to deal with than Microsoft.

      Perhaps I should clarify what I mean when I say I'm a "Windows sysadmin"... For the past two years, I've been doing systems work with Windows. For the first year, it was mostly in a bog-standard admin capacity, but for the past year I've been working exclusively on a project in Windows Server 2012, using PowerShell heavily. I'm now in charge of maintaining and improving about 10k lines of PowerShell scripts.

      Powershell is the second-worst language I've encountered in almost two decades of programming. Here's a few reasons why:

      • It's supposedly all based around objects, but you can't natively define your own classes. You have to embed C# for that.
      • The "pipeline" passes objects from one command to the next, but there is no standard for what semantics a passed object must support.
      • Opaque objects can't easily be manipulated or constructed for debugging.
      • Commands are loaded modularly, but there are no namespaces. Collisions are inevitable.
      • No include-like functionality for scripts. You can import (with .) a modular script multiple times, but it'll run multiple times.
      • Multiple overlapping APIs. In addition to the PowerShell native commands, there are interfaces to .NET, WMI, COM, and command-line executables, any one of which may be the expected (or only) way to accomplish a given task, and of course the available features change with every revision of Windows.
      • Context-sensitive errors. Assign several kinds of Get-* results to variables, and you can check that variable safely in an IF condition. Checking the Get-* directly in the condition will throw an error if the Get-* operation returns an empty set.
      • Moving to an inner scope is copy-on-write.
      • Far too much boilerplate to declare constants (38 characters) or globals (27 characters).
      • Symbol aliases like "%" and "?" are not obvious when reading old code, and text aliases are also rarely intuitive unless you use them frequently.
      • No cross-platform support whatsoever.
      • Incomplete support in older OS versions, and no upgrades.
      • No unified documentation (due mainly to aforementioned modularity hell and split APIs)
      • Whitespace sensitive.
      • No native support for test-driven development.
      • No support for multiple entry points.
      • Worse multithreading support than Perl.
      • Little control over command output. Either you nitpick each command to accommodate its error, warning, and output streams, or you change the global error-handling variables
      • As with all Microsoft products, absolutely no guarantee of support beyond the current version. As soon as Microsoft decides that SuperShell is the next big thing, PowerShell will go join other abandoned systems like COM, WSH, and VBScript.

      My theory is that PowerShell started as a way to tack .NET support onto batch files, but then some brain-dead executive thought it'd be a suitable competitor to Bash, so they had to add pipes, but it's just gotta use objects, because Windows is all about the objects! Then somebody actually tried to use it for something productive, and realized it was still limited, so they added half-assed module support so it could be more useful later. Executives saw the progress, and declared that it had to be integrated into all the new 2012 stuff, so that meant that each team had to figure out their own way to make PowerShell make sense. Of course, in typical Microsoft fashion, nobody thought to look over a

      --
      You do not have a moral or legal right to do absolutely anything you want.
  3. I wonder . . . by Kimomaru · · Score: 3, Insightful

    I wonder how much of his advice actually works? People who like using CLI seem to be cut from a different cloth than people who fawn over glitsy GUI interfaces. That's been my observation, anyway. Some newbies just gravitate toward the alluring green-text-on-black-background cli that seems to hold the promise of a deeper computing experience. They tend to find it. :)

    1. Re:I wonder . . . by Zontar+The+Mindless · · Score: 3, Funny

      How fast can you rename all files whose names contain the string 'numbskull' in a different directory without leaving the current directory using Windows Explorer?

      I'll be down at the dock with my fishing pole. Come find me when you're done.

      --
      Il n'y a pas de Planet B.
  4. 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.

    1. Re:Command line is more error-prone by Xipher · · Score: 3, Informative

      User error can happen regardless of user interface really.

      --
      I don't know everything.
  5. no need to gently move by rubycodez · · Score: 3, Informative

    They can learn the command line the same way people 40 years ago learned command line.

    Put those students on a system that can only do command line, and require them to do things. Problem solved.

    Don't pander to lazy, unmotivated fucks. we don't need any more windoze weenors trying to develop systems that run on real computers. half the java developers at my employer are totally useless and cause downtime because of their ignorance of posix systems

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

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

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

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

  11. Computer Science students by dskoll · · Score: 3, Insightful

    I wish I could comment directly on the original article. Here's what I'd say:

    If computer science students are unwilling to learn something, then fail them. End of story.

    Not everything is exciting and flashy. Should we refrain from teaching the multiplication table because we have calculators now to do it for us? Any CS graduate who hasn't worked with the CLI during his/her studies is simply not worth hiring and indeed should not be permitted to graduate.

  12. Re:Maybe you should get them OFF the UNIX farm by bill_mcgonigle · · Score: 3, Interesting

    The point is, the best tool for the best job. Sometimes that's the command line, sometimes it's a text editor with regular expressions, and sometimes it's spotify.

    Yep. Depends what you want, too. I screwed around with a few different mp3 players, besides xbmc on my DVR trying to get a repeating elimination shuffle for the house holiday music, and wound up with this instead:

    while :; do find /storage/music/holiday_mp3 -type f -print0 | shuf | xargs -0 -n 1 mplayer ; done

    running on a screen(1) on the dvr. The only downside is that the folder is hand-curated because I couldn't get id3fs to do what I wanted because only the very latest Clementine can store ratings in id3 tags. Next year that'll be different (not that I need to buy any more holiday music...).

    Anyway, the command line does exactly what I want and I don't have to go submit an RFE to the various mp3 players or write such a patch myself. Obligate-GUI users might just have to accept "I can't do that". Unix lets you combine tools in new ways - GUI's let you easily do things that the GUI developers have already thought of (and to be fair, worked out all the steps involved for you).

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  13. Re:Several thoughts by pr0fessor · · Score: 3, Interesting

    We are talking about CS students the CLI is very important piece for them to learn as those basic commands stay the same {or mostly the same} where as there are many GUIs for the same thing. I can teach you about the CLI and it will be there but I can't guarantee that everywhere you work and every system you use will have that specific GUI installed.

    When you settle into a new job, understand all those basics learned from the CLI, and you open up a GUI you have never seen before {unless it is poorly designed} you will understand what those buttons are for.

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

  15. I'll take a tank, please. by Runaway1956 · · Score: 3, Interesting

    In the Beginning was the Command Line

    by Neal Stephenson

    About twenty years ago Jobs and Wozniak, the founders of Apple, came up with the very strange idea of selling information processing machines for use in the home. The business took off, and its founders made a lot of money and received the credit they deserved for being daring visionaries. But around the same time, Bill Gates and Paul Allen came up with an idea even stranger and more fantastical: selling computer operating systems. This was much weirder than the idea of Jobs and Wozniak. A computer at least had some sort of physical reality to it. It came in a box, you could open it up and plug it in and watch lights blink. An operating system had no tangible incarnation at all. It arrived on a disk, of course, but the disk was, in effect, nothing more than the box that the OS came in. The product itself was a very long string of ones and zeroes that, when properly installed and coddled, gave you the ability to manipulate other very long strings of ones and zeroes. Even those few who actually understood what a computer operating system was were apt to think of it as a fantastically arcane engineering prodigy, like a breeder reactor or a U-2 spy plane, and not something that could ever be (in the parlance of high-tech) "productized."

    Yet now the company that Gates and Allen founded is selling operating systems like Gillette sells razor blades. New releases of operating systems are launched as if they were Hollywood blockbusters, with celebrity endorsements, talk show appearances, and world tours. The market for them is vast enough that people worry about whether it has been monopolized by one company. Even the least technically-minded people in our society now have at least a hazy idea of what operating systems do; what is more, they have strong opinions about their relative merits. It is commonly understood, even by technically unsophisticated computer users, that if you have a piece of software that works on your Macintosh, and you move it over onto a Windows machine, it will not run. That this would, in fact, be a laughable and idiotic mistake, like nailing horseshoes to the tires of a Buick.

    A person who went into a coma before Microsoft was founded, and woke up now, could pick up this morning's New York Times and understand everything in it--almost:

    Item: the richest man in the world made his fortune from-what? Railways? Shipping? Oil? No, operating systems. Item: the Department of Justice is tackling Microsoft's supposed OS monopoly with legal tools that were invented to restrain the power of Nineteenth-Century robber barons. Item: a woman friend of mine recently told me that she'd broken off a (hitherto) stimulating exchange of e-mail with a young man. At first he had seemed like such an intelligent and interesting guy, she said, but then "he started going all PC-versus-Mac on me."

    What the hell is going on here? And does the operating system business have a future, or only a past? Here is my view, which is entirely subjective; but since I have spent a fair amount of time not only using, but programming, Macintoshes, Windows machines, Linux boxes and the BeOS, perhaps it is not so ill-informed as to be completely worthless. This is a subjective essay, more review than research paper, and so it might seem unfair or biased compared to the technical reviews you can find in PC magazines. But ever since the Mac came out, our operating systems have been based on metaphors, and anything with metaphors in it is fair game as far as I'm concerned.

    MGBs, TANKS, AND BATMOBILES

    Around the time that Jobs, Wozniak, Gates, and Allen were dreaming up these unlikely schemes, I was a teenager living in Ames, Iowa. One of my friends' dads had an old MGB sports car rusting away in his garage. Sometimes he would actually manage to get it running and then he would take us for a spin around the block, with a memorable look of wild youthful exhiliration on his face; to his worried passengers, he was a madman, stalling and backfiring

    --
    "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
  16. Re:Command Line Not Necessary by Cassini2 · · Score: 3, Interesting

    I think the description "GUI's are not fully funtional yet" summarizes the situation. Even Microsoft eventually went back to the command line. At one point, almost all of Microsoft's tools used the Windows GUI interfaces. It quickly became obvious that the GUI interfaces didn't support remote deployment, automation, etc. Then they wrote power shell, and gave all their tools command line interfaces again.

    Programs like LabView, and some of the process control (DCS) and programmable logic control (PLC) vendors have graphical programming interfaces. PLC Ladder Logic is probably the most basic visual programming metaphor ever developed, because the relay ladder logic corresponds to simple boolean AND/OR operations. The LabView interface is more fully featured. However, it takes a very big picture in LabView to accomplish the work of a simple procedural function in most programming languages. I couldn't imagine doing a sophisticated program with that interface. PLC ladder logic looks dense in comparison to the picture based function blocks of LabView.

    Additionally, I have frequently found myself modifying VisualBasic Forms and VisualC++ Resource Files at the source level instead of using the graphical interface, because the change I am trying to accomplish can be done much faster from source than from the GUI. It really makes me think that GUI interfaces are missing a fundamental level of programmability.

  17. Re:Command Line Not Necessary by http · · Score: 3, Insightful

    No. Argument ad homenium is not needed.

    It's got nothing to do with the arrogance or competence of the builders. GUIs tend to suck at automation because of the assumption that each interface, when presented, shall be manipulated by a human. This assumption is a reasonable one, and destroys automation before you start - the best you can hope for is applying the presented default after a timeout period, which makes for exceptionally slow progress. Automation that needs constant human intervention is (and I'll be kind here) not automation.

    --
    If opportunity came disguised as temptation, one knock would be enough.
    3^2 * 67^1 * 977^1
  18. 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...

  19. Challenge Your Students by organgtool · · Score: 3, Interesting

    You can get your students to the Unix farm by challenging them to do simple tasks in a GUI while you perform those tasks on the command line. After you perform those tasks way faster than they ever could, reveal the command(s) you used to perform the task. Keep the tasks and commands relatively simple so as not to overwhelm them. Then towards the end of the demonstration (after you have their attention), give them one task that will blow their minds when they see how quickly it can be done on the command line. In order for the students to presume that your competition is fair, avoid using scripts and type all of the commands manually. Once they see how much faster you can perform these tasks, tell them about Linux or Cygwin and let them take it from there. Some students will stubbornly continue to use the GUI, but the motivated ones will learn it on their own.

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