Beyond the beginner's books - Adobe Flex & Java

by Shashank Tiwari

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?

6 Comments

Parag Shah
2007-05-06 09:57:09
Hello Shashank,


I agree with you. There are very few books on advanced programming topics, and probably the reason you mention is also correct. The market for advanced topics is not as large as the one for basic programming books.


I have found Joshua Bloch's, Effective Java to be excellent (and I hear that the next edition in which he talks about Generics and other new features in in the pipeline).


Also Bruce Eckel's, Thinking In Java, though not geared towards advanced programming, still goes way beyond the basics.


Thanks for sharing your experiences with the book "Adobe Flex and Java".


--
Regards
Parag

Robin
2007-05-08 02:27:51
Howdy!


Well, to add to the list, here's one i ABSOLUTELY love - Java Concurrency in Practice by Brian Goetz. I've for long followed Brian's articles on developerWorks and i must say that this book solidifies his skill at explaining the very crux of things that matter. The book is full of pearls of practical wisdom.


And with multi-core systems becoming the norm, this book is going to become indispensable for Java programmers!


My 2 paise :-)


Robin

Parag Shah
2007-05-09 11:14:00
Yes, even though I haven't read Brian Goetz's book, I have read his article, and they are brilliant.


Java Puzzlers by Joshua Bloch may be another excellent book from what I hear, though I haven't read that too.


--
Regards
Parag

Bruce
2007-06-03 16:04:44
I agree that RIA With Adobe Flex and Java is for advanced Flex developers who use Java as the backend language. However, I recommend against purchasing this book as many of the code examples provided in the book do not work. I had problems getting the code to work in chapters 4, 5, 8, 9 and 13.


I've emailed the books errata email address about these problems. The book's publisher has posted some code fixes but not all.


You ended your post with a question. Here is my answer: I've not had a very good experience with RIA with Adobe Flex and Java.


My question for you - Did all the code examples work for you with a problem?

Yakov Fain
2007-06-04 14:37:08
I appreciate Bruce's help in finding bugs in the book's code samples, but he's a bit too fast in bashing the book.


First, the book is not a tutorial and was never advertised as such. If you are just starting with Flex, I highly recommend starting with one of the books for beginners.


Second, errors reported in the first chapters were published in book's errata within a week, and I asked the published to give Bruce credits for it, which was done.


Third, the issues with Chapter 9 were not the issues, and Bruce was kind enough to write me the following: "I do apologize for submitting an incorrect errata for listing 9.7 and wasting your time on that errata submission." Apologies accepted.


Fourth, the author of the Chapter 13 responded to Bruce within 2-3 days accepting the error, and the publisher will add the info to book's errata within a week. Bruce kindly wrote us that he appreciated the author's quick response.


What do we have left? Possible error in the sample code of chapter 8? We'll take a look at it and will fix it, if there is anything to fix. Promise.


If any reader of any technical book had better experience with authors/publishers in terms of reacting to the readers' feedback, I'd certainly would like to hear about it and learn from it.

Peter
2008-08-11 14:12:59
I just stumbled on this while searching for information on integrating Fle + Spring + Java and using ACEGI spring security in a real world app. Does it cover any ground in that particular area?