Monday, December 12, 2011

Java: The Good Parts

Java: The Good Parts by Jim Waldo is an easy read and I was able to complete it in multiple short sessions. I like and agree with the author's description of the intent of the book as "not to teach you completely new things, but to remind you of things that you already knew but may have forgotten, or to get you to see things that you had already thought about in a new light."

Because the author is a Distinguished Engineer with Sun Microsystems he is able to provide some interesting context as to the why's and how's of Java.

The book describes the types of projects that Java is good for and details the following "good parts":
  • The Type System
  • Exceptions
  • Packages
  • Garbage Collection
  • The Java Virtual Machine
  • Javadoc
  • Collections
  • Remote Method Invocation and Object Serialization
  • Concurrency
  • The Developer Ecology

I especially like the chapter on Concurrency and the author's "gentle introduction to concurrency in the Java environment". Some food for thought:
Concurrent programming is the next frontier for languages and software engineering. Because of the advent of multicore systems, those of us who used to be able to ignore concurrent programming will no longer have that option. We are going to have to understand concurrency, and over time, we will no doubt invent idioms and practices that will make the programming of concurrent systems easier and more stylized. Until that happens, though, it is good to have a language and environment that you can trust to do the right thing if you have written the right program. Java may not have the ultimate answer to writing with multiple threads, but it has an answer that you can use to your advantage to deal with the new chips. That by itself makes this one of the good parts.

No comments: