Saturday, January 17, 2009

1. I can prove it.

Have I mentioned that the Command Line is part of the Desktop?

The myth that the command line and the Desktop GUI are separate, competing entities persists from the 1980's, when the GUI took over from the big bad black console as the favored user interface, and thank heaven! Practically everyone agrees that this was a good thing, a very good thing, a super-duper good thing. But it's 2009, and the GUI and the CLI are now friends, not rivals. After a quarter century, the big black console still exists, but the command line that most command line users use most of the time has evolved and been integrated into the GUI. It's part of the desktop! I can't stress that enough, because, it seems no matter how much I stress that, some people just don't get that. Most people still think that using the command line means somehow not using the GUI, but what you get when you learn how to a use few shell commands is a stronger, faster, better GUI.

Almost a decade into the 21st century, some people are still debating whether the Command Line is better than the GUI. Well, I have chosen to dedicate a certain portion of my life to the proposition that this is a really stupid thing to debate.

Which is better, the screwdriver or the the hammer? Depends on whether you've got to drive a nail or a screw, right?

Which is better, a fork or a spoon? Well, am I eating soup, or a salad? And what if I'm at the Old Country Buffet, and I want to have soup and a salad? Do I use a fork or a spoon?

Obviously, I want both a fork and a spoon. Folks, it's not about one tool being better than another tool. It's about two tools being better than one tool. There are lots of reasons for migrating from a Brand W operating system to GNU/Linux, and one of the best is that GNU/Linux has developed as a two tool operating system, wheras brand W has developed almost entirely as a one tool operating system. A powerful command line is one of Linux's primary advantages, but the command line still has a 1980s image problem. Whenever Linux users mention the command line, Windows users seem to take it as an admission that Linux doesn't have a decent GUI, but we've got several elegant GUIs that are lovingly designed by the people who use them. Some seem strange to the uninitiated, others are more familiar, but there are plenty of excellent choices. If you migrate to GNU/Linux, I would suggest that you're never going to get the full benefit if you're not willing to use both tools, the GUI and the CLI within the GUI. Frankly, switching to Linux can be too much of a pain not to claim the full benefit.

User friendliness, the ability for an unschooled user to just sit down and get to work is a good thing, a great thing, a super-duper great thing. It has been a touchstone of GNU/Linux development for as long as I've been involved with Linux, and probably longer... but if you're going to be using your computer for twenty, thirty, or forty years, wouldn't you like to learn a few tricks along the way for saving you a lot of time, for automating repetitive drudge work, for teaching your GUI to do exactly what you want it to do? What if it wasn't nearly as hard to learn as you think?

I can prove it. But first, a little disclaimer.

A big part of the method of this book is to attempt to teach you commands by classifying shell commands according to syntax. Understanding syntax is key to human language, and I think it's an important key to the simple, imperative language of Unix Shell Commands. These classifications are arbitrary, artificial, and entirely my own creation. They are for educational purposes only.

This is a user-oriented tutorial, and I'm trying to describe things from a human's point of view. This method of classification will be (I believe) helpful in teaching these concepts to beginning users, because they will be easily recognized by humans. However, they are meaningless to computers. A programmer-oriented tutorial will have to teach you the computer's point of view, which is probably more accurate and "real".

No comments:

Post a Comment