This post originated from an RSS feed registered with Java Buzz
by Brian McCallister.
Original Post: Re: Re: Re: Linux's Curse =)
Feed Title: Waste of Time
Feed URL: http://kasparov.skife.org/blog/index.rss
Feed Description: A simple waste of time and weblog experiment
Adrian responds to my response to his response to Preston Galla's comments on Linux UI for the Windows Guy. We seem to be violently agreeing, which makes for the best arguments ;-)
If you lived on the command line then something like Linux where the command line is such a central part of the OS is definitely going to better than Windows and Cygwin but if you just need the occasional uber-command then Cygwin and Windows is going to be just as good for you. In short, the command line is a great feature of Linux but it's not an exclusive.
Is off base, though possibly correct under perfect circumstances. Cygwin won't be enough because if you don't use it, you don't learn it. The windows user who suddenly realizes he needs to find every directory containing a file modified on tuesday or thursday, and then zip up said directories to send to their boss, is SOL -- he's facing a tedious half hour of work using search, opening containing folder, dragging to winzip, rinsing, repeating. Someone who has worked on *nix for half a year, using its native interface, will do it in ten to thirty seconds. Having the shell available isn't going to help if you don't use it and learn it. This is a paradigm thing -- the drive to ubiquitize computers required them to have an interface comparable to that of a toaster. Now that they are ubiquitous, lets bring back the idea of a powerful interface. Please.
We can create seemingly contrived examples like this all day, but the fact is that what you are capable of increases exponentially in some environments. A programmer sitting at a typically windows workstation doesn't generally think of doing silly things like schema dumping from postgres, piping the schema through perl (or sed and awk) to replace INTEGER with BIGINT on primary key fields, and then restoring the schema. The range of "oh, I can actually do this" expands hugely. Oddities like this come up all the time. An interface designed to make things possible is key.
The power and ease-to-new-user-ness of an interface are usually inversely proportional. This is because the features that make an interface powerful to a user who knows the domain confuse the new user. This is the same from power tools to cars. I want the environment I spend a third or more of my waking hours working in to be designed for someone who knows how to use them, not designed to make people new to it more comfortable. The Windows abstractions scale nicely towards new users, but present a brick wall for experienced users. As I mentioned, the interface there is designed to minimize support calls from new users, not to maximize the productivity of experienced users.
He also raises the point that linux "needs something nothing else has" in the UI department. I agree, but I, personally, want that great thing to be making it more powerful, not making it easier-to-use. The selling point of "using foo will make employees on average 300% more efficient after six months of experience in it" is, I think, muc
1000
h more potent than "using bar will let employees be as efficient as the interface allows after two days."
The huge thing linux has that nothing else does is that it provides this interface, integrates everything with it, is free to obtain, straightforward to set up, and available right now. FreeBSD is similar but not as straightforward to set up. OS X has it all but the free thing -- it is pricy (but, as I mentioned, well worth it imho, though if Apple doesn't start treating developers better, this could easily become moot to me). Linux doesn't need to lock people into linux (though Novell and Redhat may disagree with this).
Speaking of interfaces designed for power instead of duh-ness -- look into QuickSilver and VoodooPad. If I do move back to Linux on workstation, or even windows, I will be re-implementing QuickSilver and VoodooPad as soon as I get the compiler working. Note that both allow executing command line scripts from their primary interface (though doing it in QuickSilver requires a small hack) =)
I know I am arguing something different from Adrian. He is saying that linux needs something to set it apart. I guess I am saying it already has that, but people don't realize it until they work in it for a while. OS X really is the biggest thing to threaten linux on the desktop. I have an attitude towards it more common in the FreeBSD space -- "good, now people will stop asking newbie questions on the mailing list and let us do our thing."