How Ya Gonna Get 'Em Down On the UNIX Farm? 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.
no need to gently move (Score:4, 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
Try GnuWin32... (Score:5, Informative)
>> so wholly lacking in the functionality of a UNIX shell
That's why I use the GnuWin32 http://gnuwin32.sourceforge.net/ [sourceforge.net] tools: basically your standard Unix utility set on Windows.
Re:Command line is more error-prone (Score:3, Informative)
User error can happen regardless of user interface really.
Re:Stop trying (Score:4, Informative)
The "standard windows commandline" is now powershell, and it is wonderful in many ways despite its quirks.
Re:Stop trying (Score:5, 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?
Re:Stop trying (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 [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 (Score:4, 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.
Re:Stop trying (Score:4, 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.
Re:Huh, what? (Score:4, 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 [veekun.com]-worst language I've encountered in almost two decades of programming. Here's a few reasons why:
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