Top critical review
9 people found this helpful
Very informative, but how convoluted is the access to the demos!
on April 18, 2008
Apparently some negative reviews may "ban you from any party in greater San Francisco Metro Area," to coin a vernacular after Mad Money's Jim Cramer. But, I happen to stand by my opinion.
I have also enjoyed this book very much. Many of these techniques, such as using of intermediate images, were known to me, but numerous details escaped my attention. For example, using of 'compatible images.' I had no idea that this notion exists. I also enjoyed the timing experiments with and details of timer granularity, foremost in Windows. Their description of Animators is probably the best and most comprehensive of everything what I saw so far, its a real value-add for me.
I will not repeat the positive accolade summarized here by others, I have one very substantial objection, which is really well summarized in the title used by someone else's comment about this book:
"Practice what you preach."
The book preaches performance, efficiency and style, and yet the authors implement some enormous convoluted scheme around their own code snippets! Of course, being interested in timings and performance of the examples, I wanted to run and to watch them. And... I failed at first. I have spend, or wasted rather if you so want, a lot of time in an attempt to achieve this goal.
This sounds so easy nowadays to use Java Webstart, or merely to deliver some *.java or *.class files, either separate or in a *.jar archive.
Not so for Chet and Romain: Their own web page claims that you can download a plugin for Net-Beans and run the examples. Net Beans has proven to be a product, a specific development environment, with which you may, or may not be familiar. I never used it and I cannot operate it. Nor am I interested in learning it, being perfectly happy with my own Java setup. But be it as it may, I installed it in the hope to run these demos. It flooded my disk with some 125Mbytes and thousands of files, the usual mayhem, but we have now Terabytes at home, don't we? I also downloaded the plugin, and started to click around to get anything running. Lost in unfamiliar windows and menus I found nothing, no way to start any demo.
I must be getting old, do I failed the IQ test? All right than, I give up. Lets download the source code, run javac and be happy. What can be so difficult? Nope! The adventure has just begun!
An Example: Click on Chapter 2, Swing Rendering Fundamentals. You will get an archive frc-chapter2.zip, whose root directory has merely two folders and two empty files with the same name. On a hunch, step down into the directory SwingRenderingFundamentals, only to find another set of folders and a set of empty files, each with the same name like one of the directories. On a hunch lets step down into HighlightedButton, where we find a bunch of alien looking files and 3 more directories, with you guessed it, 3 more empty files carrying the names of these directories.
Among them is build.xml. XML eh? Hmm... what do I do with that? None of my systems can do anything with XML, this book is not about XML, I do not need to use XML, do I? It's a practitioners book about a specific aspect of Java. I would be happy to stay with "javac" and "java" only, please.
On several places I see a directory called CVS, this may or may not be a name of some source code managing tool. For example, a CVS directory (accompanied again by an empty file with the same name) contains 3 files. Each seem to have some generated content, like this file called Entries: /HighlightedButton.java/1.1/Tue May 01 22:48:46 2007/-ko/
Hm... It most probably serves a project tool of a sort. But how this relate to the book about programming graphics in Java and to the task at hand?
But one directory name is "src". Source, hurray, the treasury hunt might be close to an end! Indeed, this is how you can 'fish' for Java files, best done with a script of a sort. Simply copy all Java files into one single place. You will be fine. Deviating from the standard, most of them do not has any package specification corresponding to the directory they were found in. Once you get these files filtered out, you will even find among them Java files containing mere 2-3 lines of code, accompanied by a standard some 30-lines Sun copyright notice. Vive la lawyers!
Equally convoluted is the way to access these files on Java.net. In a hope for an easy one-click demo, and not willing to give up just yet, I registered an account with Java.net and dived into filthyrichclients.dev.java.net, only to find the same convoluted way of keeping Java files here and there among "a forest of directories" and sidecar files. Here however, I got finally educated that CVS is a repository system, and the web pages provide some comprehensive help in its use.
Please do not take me wrong: I do not want dismiss usability of any tool, like NetBeans or CVS, but pardon me, I was happy with my own setup. "If it isn't broken, do not fix it," I do not need to get hundreds of megabytes of some unrelated software, in order to find a few demo lines of Java, do I?
Authors wrote really a good book teaching practitioners algorithmic and best practices in using Java to generate well performing user interfaces. They should be focused strictly on the implementation of just such philosophy, and not on their particular development or source file control tools. The beauty of Java is that it can be used without any special environment. One needs only the Java compiler and the Java Virtual Machine. Compare this convoluted delivery with other (official) Sun Java tutorials, and their well conceived one-click demos. I would suggest to the authors of Filthy Rich Clients to follow this convention. At the least, please place the Java files in one single directory, or make one directory per chapter. That would be all what a reader would need.