The Bitter Java audience
Bitter Java is not written like a traditional technical manual or textbook. To
keep things lively, we will mix in real-life adventure stories at the beginning of
each chapter, with a programming moral later in the chapter. We hope that the
style will engage many, and it might put off a few. If you are a reader who likes
to cut to the chase, you will probably want to skip to chapter 3, and you may
even want to skip the story at the front of each chapter. If you are looking for a
dry reference with little extraneous content, this topic is probably not for you.
The skill level for bitter Java is intermediate. If you have all of the latest Java
design pattern books and have bookmarks for all of the key design pattern
communities, this topic is probably not for you. If you do not yet know Java,
then you will want to try some introductory books and then come back to this
one. If, like most Java programmers, you are an intermediate who could use
some advice about some common Java pitfalls, then this topic is for you. Those
who have converted to Java from a simpler language, a scripting language, or a
procedural language like C may find this topic especially compelling.
Finally, Bitter Java is intended to be at a slightly lower level of abstraction
than project management books, or the first AntiPatterns text. We intend to
introduce code and designs that do not work and to refactor them. From
these, we will show the low-level impact of process flaws, a failure to educate,
and shortcuts. From this standpoint, architects and programmers will find
appropriate messages, but they may find following the examples challenging.
Project managers may also find some compelling thoughts, though the pro-
gramming content may be slightly advanced. For both of these communities,
antipattern summaries are listed at the end of each chapter in a concise tem-
plate based on those in the original AntiPatterns text.
L ooking ahead
Bitter Java is about programming war stories. Books like The Mythical Man
Month, by Fredrick P. Brooks, have left an indelible impression in the minds of
a whole generation of programmers. We aim to do for Java programmers what
Brooks did for project managers. Bitter Java is about the quest for imperfec-
tion. We are not looking for isolated examples. We are looking for problems in
process and culture, demonstrated by technically flawed designs. We are set-
ting out to find the repeated mistakes that have bite. We are recording some of
the useful mythology of the Java programmer.