×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

How Ya Gonna Get 'Em Down On the UNIX Farm?

timothy posted about 4 months ago | from the small-useful-pieces dept.

Unix 606

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.

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

606 comments

Stop trying (5, Insightful)

Anonymous Coward | about 4 months ago | (#45789653)

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

Re:Stop trying (0)

Anonymous Coward | about 4 months ago | (#45789663)

Holy shitty autocorrect batman. My perfectly fine first post destroyed by typos and autocorrect stupidity :(

BitZtream

Those who do care, will learn the power of the command line. Those who don't, will be happy with the GUI.

Re:Stop trying (3, Insightful)

fisted (2295862) | about 4 months ago | (#45789683)

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.

Re:Stop trying (1)

jones_supa (887896) | about 4 months ago | (#45789701)

I don't see why that would be necessary.

Re:Stop trying (5, Insightful)

fisted (2295862) | about 4 months ago | (#45789741)

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.

Re: Stop trying (0)

Anonymous Coward | about 4 months ago | (#45789867)

I'm a 38yo Windows user and .net developer. The last couple years I've gotten more and more into unix environments and cli for almost everything. The cli is great for doing complex, repetitive tasks but can be a pain for 'quickies' where a GUI comes in handy. Try commanding a hundred machines with a GUI that can not be scripted against and the suicide rate skyrockets. Both are good. Cli - so powerful and so close to the metal, it's pretty cool. Btw, I've seen at most companies, we'll all, that their Linux side of things is a freaking messy disaster. Why is that?

Re: Stop trying (3, Insightful)

bonehead (6382) | about 4 months ago | (#45789999)

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.

Re: Stop trying (2)

Andtalath (1074376) | about 4 months ago | (#45790211)

3: Recruiting competent linux sysadmins and limiting their selection of software immensely.
For instance, requiring that they make everything work with a web interface...

Re: Stop trying (0)

Anonymous Coward | about 4 months ago | (#45790193)

Because in the last 10 years, linux has exploded, and there aren't enough qualified people to run it cleanly. Saw the same thing with windows in 2000. Saw the same thing with Mac in 1992.

Re: Stop trying (0)

Anonymous Coward | about 4 months ago | (#45790249)

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

Observer bias.

You admit you're a Windows user and .net developer. You are unlikely to be hired into an all (or even mostly) Unix/Linux shop. Therefore you've never worked in environments where the Linux side is just fine, thank you.

I've worked in quite a few well-run Unix/Linux shops. Typically they also use Windows for typical office desktop stuff, but where they try to use it for anything beyond that, it's the Windows side of things that is a freaking messy disaster.

I haven't quite been using Unix longer than you've been alive, but it's close.

Re:Stop trying (3, Insightful)

Anonymous Coward | about 4 months ago | (#45790123)

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.

Re:Stop trying (-1)

Anonymous Coward | about 4 months ago | (#45789723)

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.

In what way exactly? I can use all the same GNU tools on Windows and OS X as you can on your crappy Loonix box.

Re:Stop trying (2)

NotSanguine (1917456) | about 4 months ago | (#45789769)

In what way exactly? I can use all the same GNU tools on Windows and OS X as you can on your enormously more cost effective Loonix box.

There. FTFY.

Oh, and yes that's completely true. cf. Cygnus Tools [cygwin.com] for Windows and, well, OS/X *is* UNIX.

Re:Stop trying (1)

Anonymous Coward | about 4 months ago | (#45789953)

Cygwin is an abomination.

No, seriously.

Re:Stop trying (5, Insightful)

NotSanguine (1917456) | about 4 months ago | (#45790075)

Cygwin is an abomination.

No, seriously.

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

Re:Stop trying (3, Informative)

LordLimecat (1103839) | about 4 months ago | (#45790127)

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

Re:Stop trying (5, Insightful)

danlip (737336) | about 4 months ago | (#45790133)

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.

Re:Stop trying (-1)

Anonymous Coward | about 4 months ago | (#45790149)

There. FTFY.

Not all of us are poor or need mommy and daddy to give us an allowance. $2000 for a computer isn't even 2 weeks of pay and I'm not even a highly paid programmer.

Oh, and yes that's completely true. cf. Cygnus Tools [cygwin.com] for Windows and, well, OS/X *is* UNIX.

Yes, you've actually gotten the point.

Re:Stop trying (4, Informative)

Runaway1956 (1322357) | about 4 months ago | (#45790169)

" 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?

Re:Stop trying (0)

Desler (1608317) | about 4 months ago | (#45790205)

Exactly, fisted's comment about OS X is particularly retarded in an article about Unix. I can only hoping it was some sort of clever troll and they aren't really that fucking stupid.

Re:Stop trying (5, Insightful)

fisted (2295862) | about 4 months ago | (#45790009)

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

Re:Stop trying (0)

Anonymous Coward | about 4 months ago | (#45790171)

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.

Stupid analogy. Programming for OS X or Windows is not like that at all.

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

Which both Windows and OS X both have. OS X has all the GNU coreutils and other CLI tools. All the same CLI tools are ported to Windows as well.

Re:Stop trying (5, Insightful)

AJH16 (940784) | about 4 months ago | (#45789939)

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.

Re:Stop trying (1)

fisted (2295862) | about 4 months ago | (#45790071)

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.

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

Re:Stop trying (3, Insightful)

LordLimecat (1103839) | about 4 months ago | (#45790151)

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.

Re:Stop trying (5, Informative)

HarrySquatter (1698416) | about 4 months ago | (#45790185)

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 [apple.com] 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?

Re:Stop trying (5, Insightful)

Desler (1608317) | about 4 months ago | (#45790227)

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.

Huh, what? (3, Interesting)

Runaway1956 (1322357) | about 4 months ago | (#45789659)

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.

Re:Huh, what? (3, Insightful)

rmstar (114746) | about 4 months ago | (#45789693)

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.

Re:Huh, what? (0)

Anonymous Coward | about 4 months ago | (#45789727)

I use the command line probably 1-2x a year managing windows servers. Normally just to kick out stupid TS sessions that don't default kick out after X time.

Re:Huh, what? (0)

Anonymous Coward | about 4 months ago | (#45789747)

Windows administrators do the same thing.

Umm.. No. No they don't. They might use it occasionally, but it's so wholly lacking in the functionality of a UNIX shell that it's hardly a power tool of the same calibre.

Several thoughts (1)

Registered Coward v2 (447531) | about 4 months ago | (#45789685)

Each user is coming in with a set of experiences that has conditioned them to prefer one way over the other. Someone who has used a CLI a lot may simply prefer it because they are familiar with it and can do things quickly vs. learning a new way to do things with a GUI. They are predisposed to think their way is better; just as a GUI user is towards their preferred interface. to that end:

1. Don't assume that the CLI is always better, even if you can do something faster or easier. If the GUI gets the job done without frustrating the student or taking a long time, let them use the GUI.

2. For instances where the CLI is clearly a better choice; have them use both and let them draw their own conclusions.

In the end, unless one way causes a lot of extra work or cannot accomplish the task neither is inherently better; just different ways to do the same thing.

Re:Several thoughts (1)

Anonymous Coward | about 4 months ago | (#45789969)

No that is totally the incorrect approach especially when dealing with hundreds perhaps even thousands of servers(ie Virtualization).

The name of the game is automation in the Admin world.. that involves using Vi or VIM to edit puppet scripts as well as writing shell scripts that can automatically deploy tasks to groups of servers, such as a patch or code deployment using subversion.

Of course once the scripts are written, an admin's job becomes infinitely easier than even remotely attempting a similar task from a GUI.

Re:Several thoughts (3, Interesting)

pr0fessor (1940368) | about 4 months ago | (#45790029)

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.

It's an Exclusionary Club (1, Insightful)

CanHasDIY (1672858) | about 4 months ago | (#45789695)

Any dumbass can do stuff in a GUI, but real BAMFs rock a terminal.

At least, that's how it was sold to me when I was a young'in. Worked pretty well, too.

Re:It's an Exclusionary Club (-1)

Anonymous Coward | about 4 months ago | (#45789731)

Any dumbass can do stuff in a GUI, but real BAMFs rock a terminal.

Is that what mommy tells you in between tug jobs?

Re:It's an Exclusionary Club (4, Interesting)

SgtKeeling (717065) | about 4 months ago | (#45789817)

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.

Re:It's an Exclusionary Club (1)

EvanED (569694) | about 4 months ago | (#45790079)

I don't find most of your examples very convincing, and this is coming from someone who does 95% of his work via SSH into a Linux box.

Write a short simple program to demonstrate some API? Fast in IDEs as well. (Well, with a caveat: I have a dedicated "cppscratch" project in Visual Studio that I open for throwaway tasks like that. If you actually have to go through and create a new project, that's another 30 seconds, and I'll agree that the IDE is getting a bit heavyweight there.)

Type in PowerPoint slides? Escape, fix, F5 -- probably takes less time than just the recompile, especially when using Beamer.

The manpages are somewhat more convincing, but on Windows you get help COMMAND.

Re:It's an Exclusionary Club (4, Insightful)

bonehead (6382) | about 4 months ago | (#45790069)

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.

Re:It's an Exclusionary Club (1)

CanHasDIY (1672858) | about 4 months ago | (#45790141)

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.

Well, sure, but what about when you first started getting into computers? The dude's who could do everything from a CLI were considered the 'cool cats,' at least in the circles I ran with way back in the 90's.

Re:It's an Exclusionary Club (-1)

Anonymous Coward | about 4 months ago | (#45790161)

Who the fuck cares how it was sold to you? Stop bitching because you're too soft-minded to make a decision on the 'gui vs cli' question yourself.

I wonder . . . (3, Insightful)

Kimomaru (2579489) | about 4 months ago | (#45789707)

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

Re:I wonder . . . (0)

Anonymous Coward | about 4 months ago | (#45789807)

A deeper computing experience? I call bullshit. Tools are tools. A glitsy GUI? Because I don't want to ignore the last 30 years of progress and prefer to use a mouse? Christ, get over yourself.

Re:I wonder . . . (3, Funny)

Zontar The Mindless (9002) | about 4 months ago | (#45790135)

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.

In the beginning was the Command Line (1, Flamebait)

Simon Brooke (45012) | about 4 months ago | (#45789717)

Read Neal Stephenson's In the beginning was the Command Line [cryptonomicon.com] , or, better yet, give it as a set book to the students. It's available for download from his website [cryptonomicon.com] for free, or you can buy it as a paperback from all good booksellers (and some bad ones [amazon.com] )

Re:In the beginning was the Command Line (1)

Anonymous Coward | about 4 months ago | (#45789791)

I wish I had mod points, to mod the last part of your post as flamebait. If you aren't going to provide justification for calling Amazon, one of the number one book retailers in the US, a "bad one" as far as booksellers go, then that's all your post really amounts to.

Re:In the beginning was the Command Line (0)

Anonymous Coward | about 4 months ago | (#45790157)

"I'm a butthurt fanboi" is much shorter.

Because job security (1)

Anonymous Coward | about 4 months ago | (#45789721)

It's better to know the niche market, because less competition.

Command line is more error-prone (4, Interesting)

jones_supa (887896) | about 4 months ago | (#45789749)

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.

Re:Command line is more error-prone (3, Informative)

Xipher (868293) | about 4 months ago | (#45789815)

User error can happen regardless of user interface really.

Re:Command line is more error-prone (1)

Anonymous Coward | about 4 months ago | (#45789847)

thats pretty much backwards

if a gui goes wrong, unless the designers thought of that circumstance, you're left with some internal state
inconsistency that you can't even diagnose much less address.

with crappy old log files, config files, and commands at least you have a prayer of fixing the problem

Re:Command line is more error-prone (1)

jones_supa (887896) | about 4 months ago | (#45789895)

if a gui goes wrong, unless the designers thought of that circumstance, you're left with some internal state inconsistency that you can't even diagnose much less address.

Right. But that's a bug in the software, while I was talking about user errors.

Re:Command line is more error-prone (0)

Anonymous Coward | about 4 months ago | (#45790019)

no, the point was more subtle. for the most part guis are based around scripts, or wizards, or use cases.

you click a thing and some machine installs the right state for you.

almost without exception, these forseen use cases are finite...there are only so many menu items.

so its very likely that of all the possible external and internal state manipulations can leave the system in
a funky place that is not reported because that eventuality wasn't forseen by the ui designer, and has
no corresponding action to correct.

interface should be composable languages, you chould be able to discover and effect anything, not just
one of the 10 menu items that someone thought were a good idea

Re:Command line is more error-prone (0)

Anonymous Coward | about 4 months ago | (#45790067)

maybe a better summary -

      with a gui, when it works fine, great, when it doesn't work fine you're basically screwed

      with the command line, things are more difficult, and when they go bad, it gets harder.
      but there is basically always a way out

Re:Command line is more error-prone (1)

speckman (2511208) | about 4 months ago | (#45789937)

I agree, and with the command line, you have to remember all the commands. :) It's nice having a windowed/menu interface for getting to something, and it's nice to have a GUI telling you hey, you're about to wipe your HD with that command or even limit your choices to stuff that won't hose your HD... thinking about installing linux and dual-boots and such before the tools had nice gnome equivalents. ... now, was it a 0 or a 1 that I put here?

Re:Command line is more error-prone (0)

Anonymous Coward | about 4 months ago | (#45789977)

It's easier to shoot yourself in the foot with the GUI. A wrong click 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.

Re:Command line is more error-prone (1)

jones_supa (887896) | about 4 months ago | (#45790045)

It's easier to shoot yourself in the foot with the GUI. A wrong click 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.

Good counter-argument, actually. With command line you have the chance to describe accurately what you want and review it, instead of your mouse accidentally poking some widget along the way.

Re:Command line is more error-prone (1)

sl4shd0rk (755837) | about 4 months ago | (#45789989)

It's easier to shoot yourself in the foot with the command line

Depends how you learn. If you sit down with a table saw, never having operated one, you're in for a hard learn. Same as any tool. I would say the same goes for a gui too....that damn Voiceover is error prone enough to qualify for the-icepick-of-death-in-the-speakerhole treatment.

Re:Command line is more error-prone (1)

chispito (1870390) | about 4 months ago | (#45790105)

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.

"The wrong character" is only going to affect you if you are the sort of gung-ho user who does not believe in iterating. Perfect your filtering first. Then and only then, act on it. At that point, you are no worse off than a GUI user who made a typo or ticked the wrong box. Or is the problem an inability to type?

Command Line Not Necessary (-1)

Anonymous Coward | about 4 months ago | (#45789757)

The command line is not *necessary* to have a powerful user experience. It is certainly not a requirement to be a developer. And attempts to replace fully functional GUI interfaces are misguided.

If UNIX wants to be advocated then maybe it needs to update its interface for this age. Merge GUI and text to the user's advantage. GUI is great at displaying information in a way that text can't hope to compare to. But there's no reason a GUI can't take line commands.

Leave the terminal behind, or rather, integrate it into the GUI as a shortcut. Imagine hitting a command key, like ctrl/alt, opening a text entry in the bottom left of any window and having access to the current program's base functionality. It'd be like merging web search/start button with the best of gui/application functionality.

When you need the power you have it, and when you don't need it, you use the mouse.

Re:Command Line Not Necessary (4, Insightful)

jedidiah (1196) | about 4 months ago | (#45789827)

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.

Re:Command Line Not Necessary (0)

Anonymous Coward | about 4 months ago | (#45789949)

Already Done - it's called "KATE" and is part of KDE. You have a console right there when you want it and minimized when you don't need it and it's been part of KDE since v:3 days

Re:Command Line Not Necessary (1)

gweihir (88907) | about 4 months ago | (#45789983)

Mastering the command line is not necessary if all you care about are are average (read: bad) skills at software creation and system management. The GUI is _not_ a step forward. It is a slow, inflexible crutch for the incompetent (of which there are many). Being incompetent is perfectly fine for ordinary users and GUIs are for them. IT professionals have no such excuse.

Apeal to us lazy people. (0)

Anonymous Coward | about 4 months ago | (#45789773)

First, ask them to look up how to do some esoteric thing via the GUI and then do by following the long directions - open panel, go to menu, get dialog, go to tab, click on option, get another dialog, blah, blah, blah , etc .....

Then the command line version: copy paste command into terminal - enter. Done!

Give me a break professor... (0)

Anonymous Coward | about 4 months ago | (#45789775)

In my professional experience I have observed two types of people in various IT roles. The first group is the highly technical, analytical, command-line folks. The second group is mostly point-and-click user support and administration folks. Both groups are necessary in any moderate sized information system environment. Personally, given the choice between command-line versus GUI applications/tools I favour command-line because I am exceedingly productive without the distractions present within GUI environments. The only time I expect my colleagues to be proficient at the command-line is when working in a *nix environment. But again some people do not belong anywhere near a command prompt so there are tools available for them. Granted my first exposure to computers was in the early 1980s with Commodore PET BASIC and 6502 assembly language followed later by numerous languages and operating systems including GW-BASIC, FORTRAN, WATFIV, iAPx86 assembly language, PERL, BASH, Korn Shell, et. al.

no need to gently move (3, Informative)

rubycodez (864176) | about 4 months ago | (#45789781)

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

Re:no need to gently move (1)

dskoll (99328) | about 4 months ago | (#45789845)

Don't pander to lazy, unmotivated fucks.

This.

I work in (actually, I own) a small software company and everyone is on Linux, even the non-technical people. Most of the non-techies do not normally use the command-line. However, I have written small CLI utilities for various things and the non-techies were perfectly fine learning enough CLI to use my tools. It's not that difficult and if people are too lazy or stupid to learn something new, then they don't deserve to be employed.

Re:no need to gently move (1)

gweihir (88907) | about 4 months ago | (#45789955)

Indeed. And fail those that cannot cope permanently. They have no business managing or creating IT systems. A professor I know requires everybody to learn C and use it competently in order to pass his OS course. Students complain of course, because all they learn is Java. But that attitude changes for most of them later, when they realize what things they would have real trouble with, without that experience. When this guy retires, the quality of the education there will drop markedly.

I don't see the overlap (1)

Anonymous Coward | about 4 months ago | (#45789795)

Why would they use Spotify in their studies or their work?

Re:I don't see the overlap (0)

Anonymous Coward | about 4 months ago | (#45789921)

Well, I'm not a student, and yet I use Spotify on 4 devices running Linux: Nexus 5 Android phone; Nexus 7 Android tablet; laptop; and desktop computer.

Re:I don't see the overlap (1)

EvanED (569694) | about 4 months ago | (#45790131)

I use Spotify while I work, even though I'm not working on Spotify per se.

Actually I put in a fair bit of effort into trying to get it to run on my machine when I was a grad student before giving up.

If it's better, how hard do you need to sell it? (4, Insightful)

fuzzyfuzzyfungus (1223518) | about 4 months ago | (#45789825)

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.

The FA is backwards (4, Insightful)

spasm (79260) | about 4 months ago | (#45789831)

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.

Re:The FA is backwards (1)

gweihir (88907) | about 4 months ago | (#45789919)

Indeed. But that is only true if you have bright people with potential. The others will stick to the GUIs, as they are completely lost without them. Hell, many "programmers" or "system administrators" are mostly lost _with_ a GUI. The state of IT competence that you can routinely find in the OT field is a disgrace. I think you could kick out something like 50-80% of these people and productivity and quality would improve.

Maybe you should get them OFF the UNIX farm (2)

larry bagina (561269) | about 4 months ago | (#45789833)

I shit you not: this morning, one of my neck beard coworkers did a command-line sql query ('select * from table') piped through cut, sort, and uniq. Because, hey, 'distinct columns, i, actually, want' and 'order by column' is too much work.

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.

Re:Maybe you should get them OFF the UNIX farm (3, Interesting)

bill_mcgonigle (4333) | about 4 months ago | (#45790017)

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

Need motivation? Salary. (1)

xxxJonBoyxxx (565205) | about 4 months ago | (#45789841)

>> Convincing students from user culture to toss aside decades of advances in graphical user interfaces for a UNIX command line is a tough sell

BS. Simply point out that GUI-only IT grunts are being replaced by the truckload by cheap Indian and Chinese labor (and why not) while those who have specialized in security, automation, programming and other areas that require you to use a keyboard continue to make top dollar and find interesting work even in this crappy economy...and I think you'll make your case.

(Or...just point out that "decades of GUI advances" led us into the Windows 8 ditch - your choice.)

The command line is more efficient (2)

troll -1 (956834) | about 4 months ago | (#45789881)

In many ways the GUI system of icons is similar to the pictograph system of ancient Mesopotamia. You have one symbol for everything you want to express. The Phoenicians had a much better idea, an alphabet. You have a finite number of letters and an infinite number of words and sentences (I believe I'm quoting Noam Chomsky on the infinite part).

If you are limited to commands that contain only five lower case letters, then the number of possible commands is something like 26 to the power 5 which is over 10 million. It would be difficult to navigate through that many icons. The point-and-click method of using icons is just not as efficient as an alphabet with letters that make up words that make up a language.

Simple (2)

gweihir (88907) | about 4 months ago | (#45789883)

Expose them all in a mandatory fashion. Those that have real potential will see the superiority of the command line. Many will not, but are no big loss. (If you can, fail them permanently later.) Incidentally, the same works with C programming.

No, the problem is not the there are not enough programmers or software engineers. The problem is that there are far too many bad ones. Get rid of those and the good ones could not only implement everything that needs implementing, they could also do it a lot better.

Best course is to give them working examples (2)

Todd Knarr (15451) | about 4 months ago | (#45789885)

Don't just explain it, give them jobs where the command line works. For instance, automating builds. All developers will need to build the software they write. Give the students the task of automating their builds. Note that this means truly automated: it has to happen with no human interaction, not even to start the build. If it can't be set to automatically check out the latest code and run the build at 2AM without a user being up to trigger it, they haven't completed the assignment. Include jobs like generating necessary Web service support code from service definitions (which will run them up against the problem that there are no GUI tools to do this in the Windows/VisualStudio environment, it's all command-line tools and they aren't integrated into VS). Once they've gotten their heads around that, hand them complex automated maintenance jobs like "Find or create a program to identify images with a specific bit of metadata in them. Now, create a process to automatically scan all newly-uploaded files and move any that contain that metadata to a location under a "bad file" location matching their location under the "new uploads" location.".

Long and short, don't explain to students why the Unix command-line environment's better than a GUI. Give them real-world jobs that're necessary for what they're doing that demonstrate how it's easier to do all this from the command line than via a GUI.

If you truly want to be nasty, give them an assignment to get in and repair and restart a Web server that's broken because of a damaged config file. They must do this from their smartphone or laptop, from a remote connection (hotel WiFi or somesuch, they're out of the office and this is an emergency), with no remote-desktop access directly available (you can have a VPN available which would let them RDC in if it were working, but if their device isn't already set up for it there's nobody in the office who can help them get it set up and turned on so they're on their own). All they have is SSH access if it's Unix servers.

Re:Best course is to give them working examples (1)

ObsessiveMathsFreak (773371) | about 4 months ago | (#45790021)

Give the students the task of automating their builds.

Screw that. Give them a spindle of CDs and tell them that you want a complete rips in mp3, FLAC, AAC, and in multiple bitrates with appropriate tags from CDDB. For advanced students, give them a spindle of dvds and mkvtoolnix and tell them you want the works.

By the time they've wriiten their own ripping scripts, most of them will grok the command line completely.

Re:Best course is to give them working examples (1)

danlip (737336) | about 4 months ago | (#45790207)

Give most students a spindle of CDs today and they'll probably start checking the room number to make sure they didn't accidentally walk into an archeology class.

I am confused... (0)

Anonymous Coward | about 4 months ago | (#45789887)

If they don't need it, why should they use it? A tool has no value in it self.

Computer Science students (3, Insightful)

dskoll (99328) | about 4 months ago | (#45789889)

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.

Re:Computer Science students (0)

Anonymous Coward | about 4 months ago | (#45789973)

Your notion of "worth" is kind of amusing.

Imagine for a moment how many children are growing up now with iPads and Android tablets and probably won't be using keyboards at all. Using the command line is as arcane as using punch cards, and inevitably they will be phased out.

Comment about the User Culture Versus Programmer C (0)

Anonymous Coward | about 4 months ago | (#45789897)

[QUOTE]
When I volunteered to help teach programming to a group of librarians earlier this year (read Teaching Librarians Programming for details), I witnessed this cultural schism firsthand.
{/QUOTE]

The first and most important question in my head was "Why do librarians need to learn about computer programming?" The article failed to expain the context of the situation which gave rise to the perceived need to conduct a training session for the librarians. There might have been a legitimate job-related benefit yet it was left unstated.

The remainder of the article stated obvious differences in the mindset of computer programmers versus application/tool users. However, most of the examples cold have been illustrated at the command prompt if a suitable text-based application was available. We have plenty of console-based music player applications to choose from in the various *nixes to pick on Spotify for a moment. I understand the intent of the article but the underlying premise is about as insightful as a debate over the reasons some people prefer black pepper versus salt on their food.

Unix is powerful (2)

onyxruby (118189) | about 4 months ago | (#45789899)

The problem isn't the capabilities of Unix, it's never been about that. The problem has always been about the usability of Unix from the average Joe's perspective. The fact that new users are typically told to RTFM and met with hostility certainly hurts the cause. It wasn't any different with DOS, it was a command line OS that was so counter-intuitive to learn that it spawned the entire 'For Dummies" series of books. By the time Windows 95 came out and put a useful GUI on DOS it was such a big deal that people lined up outside the stores at midnight just to buy it.

Steve Jobs understood this and worked ruthlessly to make Mac OS easy to use regardless of the back end. Nowadays you have the argument that Android and Mac OS/iOS are out there an extremely popular, but again they are simply GUI shells to the back-end that hide everything. Cisco routers and switches also have GUI's that will happily hide everything that was previously done by a command line. Really, the bottom line is that unless your in certain fields in IT or a programmer you don't have anything to gain by playing with command line. I grew up on the command line, I have spent decades with it, but I can't justify it to anyone just because I went through it.

Time's change, I remember supporting Novell Netware 2.x and 3.x and Token Ring, but I'm not about to suggest anyone spend time learning Netware or Token Ring either. I've had these conversations with people new to the field, they don't see the point, they just see a GUI to learn and buttons to click. The OS itself doesn't make a damn bit of difference, they don't want anything to do with a command line.

Not just command line (1)

jklovanc (1603149) | about 4 months ago | (#45789915)

Another issue with Linux adoption is packaging and backward compatibility. I tried to install an older version of Capistrano (the current version is not backward compatible and I didn't want to re-write the scripts) under CYGWIN. It would not work with the newest version of Ruby because Ruby is not backward compatible (the compatibility issue) and I couldn't find a older ruby binary for CYGWIN. Sure I could have compiled it but I just want to use it not be a Ruby developer. If you are not using the latest version there are too many dependency and compatibility issues.

The other issue is that command line requires remembering a lot of esoteric commands. I would rather concentrate on creating software than remembering the difference between "git -push" and "git -commit". Also, since I use Eclipse it is an extra step to get out of eclipse to go to a command line and enter a command rather than just click a few times. If I am in a GUI I want to stay in it.

To those who say "You can do everything you want on command line" I say "You dig a canal with a teaspoon too but I wouldn't want to do that either". Command line has it's place for some things and GUIs others.

Pipes (2)

cold fjord (826450) | about 4 months ago | (#45789945)

In Unixland the answer is pipes. You can quickly teach them to do things that typical stand alone programs won't do, or won't do easily using simple programs linked together by pipes. It is a form of linking the two paradigms while moving them closer to actual programming, especially since some of the tools you can link with pipes are programmable (awk, sed, perl, etc.). Once they know how to perform actions from the command line it is a trivial step to put them into a shell script - real programming with a scripting language.

Re:Pipes (1)

TechyImmigrant (175943) | about 4 months ago | (#45790139)

But pipes suck big donky balls when you want to connect things in a tree rather than a linear list.
Mind, IDEs don't connect anything to anything.

Sometimes you just need to get off your arse and write a program so the command line doesn't need to be too clever.

Same Old Programmer-Dictator Bullshit (1)

MarkvW (1037596) | about 4 months ago | (#45789965)

Provide an outstanding GUI with an outstanding migration to the command line.

Stop being arrogant.

"Gently introduce" (0)

Anonymous Coward | about 4 months ago | (#45789993)

'You need to gently introduce students to why these tools will eventually make them more productive in the long run

Or, you could just, you know, fucking prove it scientifically if you're so sure of yourself instead of relying on your l33ter-than-thou attitude to show me the error of my ways. I use an IDE and my salary is the exact same as my VIM-obsessed coworkers.

No Need (1)

jon3k (691256) | about 4 months ago | (#45790005)

The smart ones who have a propensity for it will "get it" and gravitate towards it, just like the always have. Many, or maybe even most, programmers (at least back end) are going to interact with a UNIX like environment at some point.

Horses for Courses (1)

drmofe (523606) | about 4 months ago | (#45790043)

Does the professor teach his students by giving verbal and written instruction or does he do it in the form of interpretive dance?

The challenge of Computer Science is managing, modelling and directing complexity. GUIs do that in one way; command line interfaces do that in another. You teach students how to deal with complexity and their ability to do that - the maximal level of complexity that they can manage - determines their potential as a Computer Scientist (programming being a subset thereof)

A step backward (2, Interesting)

Animats (122034) | about 4 months ago | (#45790145)

The original MacOS had it right - there was no command line at all, at any level. The mechanism for manipulating the system at a low level was ResEdit, a tool for editing the resource fork of files. It was a GUI tool, not a command line. If you wanted to set the color of something, you used a color picker; you didn't write RGB in hex. This was an effective way to do the job.

Unfortunately, the original MacOS sucked as an OS - no processes, no threads, no memory protection. The designers had to do that to cram it into 128K of RAM, but it didn't scale. On top of that, the Mac's "Resource Manager", which was really a little database system, was an unstable database. A crash while the resource fork was open for writing usually resulted in a corrupted resource fork. This gave the resource fork approach a bad reputation. In reality, the problem was that it was designed for floppies, where writes were so slow that keeping the resource fork in sync was too expensive.

Then, when Apple needed Steve Jobs back, they had to buy his NeXt failure for $400M, so they ended up using NeXt's warmed-over BSD/Mach kludge. So they got all the obsolete UNIX command line crap back. They also lost the Mac file system with its resource forks.

In the Linux world, the legacy command line crap is stacked so deep that nothing can be fixed. Many things that should be databases are text files. So there are stil lock files, sending signals to processes to tell them to reread their text file, and similar legacies of the bell-bottom-trousers 1970s.

There's also a pernicious tradition in Linux that GUI tools need not be comprehensive. It's OK to have a GUI tool that doesn't let you do everything you can from the command line. Linux GUI tools tend to be dumbed down, and often don't know what they did - they just display text messages from a lower level in a text box. On the original Mac, that was an absolute no-no. Programs couldn't even use print statements.

PS (1)

westlake (615356) | about 4 months ago | (#45790241)

When I volunteered to help teach programming to a group of librarians earlier this year, [a two day boot camp] I witnessed this cultural schism firsthand.
The 35 students all came from user culture, whereas the 6 instructors all came from programmer culture.

Note that by ''programmer culture,'' I mean a UNIX-style programmer culture. There are lots of programmers who work completely within proprietary IDEs (e.g., Matlab, Xcode, MS Visual Studio) with specialized workflows for version control, rich searching, and task automation. However, the high-quality, widely-available free software that is most likely to get beginners hooked on programming --- to turn users into programmers --- are almost always written in a UNIX style. That's why my article focuses on this culture.

Explain to me again why the novice or casual programmer or the working professional in other fields would not be more comfortable, engaged and productive using a modern IDE outside the UNIX culture?

You could hate free software development tools available for the *NIX environment and not make a better case against them.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...