Sunday, August 06, 2006

Wanted: Books on IDEs

Although I haven't coded lately on C++, I remember enough (especially with a book or some online resource) that I could manage something if I had to. What I don't know, because I don't have much experience, is how to use the Visual C++ IDE. But it's really a pain to find a good book on IDEs. Eclipse is perhaps the only IDE that has books dedicated to it, that aren't about, say, Java. Eclipse's IDE is suitably complex that you want to learn how to do things, like create a project, use CVS, debug, add a plugin, and so forth, that are beyond simply programming.

For some reason, this idea of using an IDE effectively has not really hit the Visual Studio languages. Most of these books assume you want to learn the language first. It's amazing, however, how few books realize that being effective in an IDE and being an effective programmer are two different things.

There's many a great author who stuck stubbornly to a typewriter. Why? Because the user interface for most typewriters did not change. Indeed, even most modern keyboards are still fundamentally a typewriter, plus a numeric keypad, plus some function keys. Some have a few more keys beyond that, but few folks who design keyboards add too many weird keys. Amazingly enough, computer keyboards have stayed roughly the same for many years.

It's the software that caused authors to avoid computers. With a typewriter, they knew what to do. They knew to buy paper. They knew how to roll it in. They knew how to type. That's it. You could explain how to use a typewriter in fewer than five pages of text.

Sure, the typewriter lacks all sorts of conveniences. You can't email the text. It's hard to make a second copy. It doesn't spell check. You can't really format it easily. It's hard to type any math related symbols. In many ways, it sucks compared to a good word processor.

But by contrast, it requires hundreds of pages to describe what a word processor does. However, books are pretty good about doing that. Few books on Word actually talk about how to write. They aren't tomes on English writing.

On the other hand, nearly every book on Visual Studio, be it about Visual Basic, Visual C#, and so forth, are about the language, not about how to use the environment to do useful things. What are the short cuts? What is the expected work flow? How do you debug? How do you integrate with other applications?

Surprisingly, for all the work Eclipse has done with Java, there's not an equivalently good version to run C++. For any other language, you never hear Eclipse as the first choice as the IDE, mostly, it seems, because all effort has been focused on Java (perhaps in an effort to kill languages like C++). I once asked some folks what a good Javascript editor is, and they said, sadly, there aren't really any. Surely, given the popularity of Ajax, there must be someone who'd like to write a good non-browser based Javascript interpreter/debugger, etc.

One reason there are so few books on IDEs, I suspect, is because people invent new IDEs faster than new languages. The basics of C++, Java, C# change slower than the IDE market. Indeed, many writers of programming language books decide they won't talk about any IDE (except possibly Java with Eclipse) for fear their books won't sell with an IDE the user doesn't use.

There's a simple solution to this. Write books on IDEs. Then, a programmer gets one book on the language, and another on the IDE, whose purpose is to write a few simple programs (assuming the user knows some of the language), but illustrates the features of the IDE. It's such a simple, fundamental idea, that you wonder why computer book publishers fail to see this market.

No comments: