2008年(3010)
分类: LINUX
2008-05-27 13:27:45
This book is unique. There’s nothing like it. It is the first of its kind. It’s important that you understand why, so please read on.
For a long time I thought it was impossible to write an introductory Java programming book that could be understood by people with no programming experience. It would be like a fish writing about water. No one has better knowledge of the subject matter, but it takes more than that to introduce a topic to a newcomer. Fish are intimately accustomed to water, and they can’t relate to us land mammals, who need to have everything explained and broken down. A fish might say, “Wiggle your tail fin to swim forward, and don’t forget to use your gills.” That would be glaringly obvious to another fish, but useless to you and me. It’s hard for a fish to imagine what life would be like without tail fins or gills. A book about water, even if the wisest fish in the ocean wrote it, would be full of accurate, but useless, information.
The same is true about Java. Programming is a craft, like playing a musical instrument or glassblowing. And like any other craft, it has its conventions, jargon, and techniques. For practitioners of the craft, those conventions, jargon, and techniques become deeply ingrained habits, household language, and the events of everyday life. It’s very difficult to write about one’s own “habitat.”
In the 1970’s, a language called C became popular. In the 1980’s, C was modified to support object-oriented programming. The modified language was called C++. This is an example of craft jargon. In C, the symbol “++” means, very broadly speaking, “a bit more.” So C++ means “C and a bit more,” and the meaning is clear to any C programmer.
The 1990’s saw another evolution. C++ is a highly effective language, but it can also be difficult. Moreover, it had no innate support for recently invented technologies, such as high-resolution multi-color displays, databases, or the World Wide Web. The new evolution was called Java. The name isn’t a play on words and it isn’t an abbreviation for anything. Java abandoned the parts of C++ that had proved to be more trouble than they were worth, and it added support for modern technologies. Sometimes people called it “C++--++”. There’s another symbol, “—”, that roughly means “a bit less.” So “C++--++” means “C++ and a bit less and then a bit more.”
Java caught on like a midsummer bonfire. A huge portion of the C and C++ programming population switched at once to Java and never looked back. Why were so many programmers able to make the switch so easily? I was one of them. I had been earning a living programming in C++. I took a year off to write a novel about some dragons. I ran out of money before I finished the novel. Luckily, it was a month after Java was introduced. Within weeks I considered myself a competent Java programmer, and within months I was teaching it and writing about it. The credit goes not to me but to the designers of Java. If you know C and C++, Java is easy. It’s like learning Portuguese if you already speak Spanish and Italian. Like everyone else who learned Java at that time, I had years of experience with the concepts, techniques, and jargon that was needed.
But what about people who don’t have any programming experience?
When I was learning Java, there were two books on the subject. Today there are thousands. (I’m responsible for a few of them.) Not one of them, except the one that you’re holding right now, does a good job of presenting programming concepts from the ground up. The others are accurate for the most part, but they aren’t helpful.
So I had to ask myself: can I introduce Java from the ground up, concept by concept? Eventually I realized that I could only do it if I could use something more than words and pictures. Which brings me to why this book is unique. It is unique because …