Before I start talking about this book which inspired me to blog about it, let me bring up the topic of books for advanced level programmers in general.
It may be best to begin with a bunch of questions. We know of a lot of real good books that introduce various programming and software development topics but are there many books that deal with advanced topics? Is it that real experienced developers rather try it out and learn, or read up the manual, or talk to friends and strangers (on the discussion groups) and get their insight or read articles that discuss the advanced topics? Is it that the market for such books is limited and hence it’s not worth a good business idea? Is it that the thrill of gleaning from the heaps of data (good, bad and junk) on the internet is far more exciting? I certainly don’t know the answers but I do know that books on advanced topics are not that many.
It so happens that I was actively looking for a book that discussed the real world scenarios of how Adobe Flex could effectively work with server side Java. Part of the reason for this search was that in my attempt to architect and build Flex apps with existing other components, perhaps some of them already live and working fine, the complexity got beyond the available standard books fairly quickly. This wasn’t unusual since such things had happened with me with other technologies as well. Also at this stage, as many others may have experienced, I started finding the tons of information on discussions groups and blogs online as primary source for any useful suggestions. However, more recently I found this book called “RIA with Adobe Flex and Java“, which is authored by these bunch of folks (one of whom is a person I have had the pleasure of working closely with) who do RIA for a living, surprisingly helpful when dealing with pesky problems of real world application development. I am going to talk a bit about what in the book is so different or good, but before that I would digress for a bit and say that in any way I am not , in this blog post, alluding to the thought that the books that deal with fundamentals are not useful or not necessary. On the contrary they are extremely important and great places to get started with a technology. If you are a beginner in the world of Flex and Java, I would recommend that you certainly look at the following books -
Programming Flex2 - http://www.oreilly.com/catalog/9780596526894/index.html
ActionScript 3.0 Cookbook- http://www.oreillynet.com/catalog/actscpt3ckbk/
Adobe Flex 2 - training from the source - http://www.amazon.com/Adobe-Flex-2-Training-Source/dp/032142316X/ref=pd_bbs_sr_2/104-9044143-7247959?ie=UTF8&s=books&qid=1178454037&sr=8-2
Each one of these three books is extremely well written and very approachable.
Now let me talk a bit more about the book - “Adobe Flex and Java”. It is a big and bulky book, almost 700 odd pages. It has tons of code within the book, a lot of it reusable. Not all of it is well written (especially I thought the introductory chapters could have been better - In my opinion it may be a good idea to read the books on basics, I mentioned earlier, and then start reading this book chapters 5 or 6 onwards), but it has some amazing chapters on advanced topics. There are 4 or 5 chapters that have a lot of new and original content that is very good for a developer on a real project. Here I am going to talk about those. Chapters 6 and 7 talk about something the authors call “data management services”. It illustrates the techniques and ideas of extending the remoting capabilities, auto generation of the plumbing code that glues java and flex together and patterns for leveraging database definitions for creating not only data access objects but pretty much all other related artifacts. Chapter 10 and 15 are “Working with large applications” and “Integration with external applications” respectively. Both these are gems. The one on integration has an elegant illustration of how Flex and Microsoft Excel could be used together. Then there is a chapter on developing custom charts - another truly exceptional chapter. And of course there are chapters that talk about extending widgets and controls, discuss the data grid, explain the asynchronous data population techniques and talk about debugging. All in all a very useful resource for advanced Flex and Java developers.
Let me ask another question to complete this post - Have you had similar, better, worse or contrary experiences with books on advanced topics, books on flex, books on flex and java or this book in particular?