JavaFX is a very, very fast moving platform (language and API in particular). Fair enough too – it’s come a remarkably long way since it’s inception, and that can’t be a bad thing (except for the whole ignoring Swing thing). As I was busily using Java and Swing, I applied the ostrich principle and buried my head in the ground. I even kicked up a fuss that there should be a proper Swing 2.0. I still stand by that sentiment, but am pleased with the progress of the Swing Generics project, which has very similar goals to my initial discussion (although it clearly doesn’t go as far as one faction of Swing 2.0 supporters, but that’s another story entirely). Because of this I feel I can at last investigate JavaFX without feeling like I’m abandoning the Swing 2.0 cause.
Unrelatedly, I was fortunate enough to have Sun sponsor me to go to JavaOne in San Francisco this year. The highlight for me was meeting everyone I knew virtually, but had never met in real life before. Three of the people I met at JavaOne were three of the four authors behind ‘Pro JavaFX Platform: Script, Desktop and Mobile RIA with Java Technology‘, namely Stephen Chin, Jim Weaver and Weiqi Gao (the other author I missed is of course Dean Iverson).
As I alluded to in the first sentence, JavaFX is a very fast moving target, and so a book is going to struggle to be useful for very long. With the release of JavaFX 1.2, I would assume that most books are somewhat out of date (based on feedback I’ve heard from other people and Amazon reviews). I was not about to learn an older version of JavaFX, so I was pleased to hear that the Pro JavaFX Platform book was completely updated to be JavaFX 1.2 compatible. It would be nice to know which of the other JavaFX books are current, so if anyone knows, please leave a comment (particularly the ‘JavaFX: Building Rich Internet Applications‘ and ‘Essential JavaFX‘ books, which are also both new releases as of JavaOne).
Apress, the publishers of the book, put out an alpha release of the book. The final release I believe is due around mid July. The authors were generous enough to give me a copy of the alpha ebook to read for my own purposes (i.e. they didn’t ask for a review). I thought I’d be kind and give them chapter feedback, so I hope I’ve helped to improve the book quality a little.
So, the book. It’s very good if you are a Java developer who knows nothing of JavaFX. Even if you don’t know Java, it should still be readable, as chapter two provides a very comprehensive background and introduction to the language. It probably isn’t a book for a person new to programming – they should probably get an intro to programming book first – but then what do you expect from a book starting with the word ‘Pro’? 🙂
Jim (one of the authors) wrote up a good summary of what is in each of the chapters on his blog, so I won’t bother to repeat it here.
What I did want to do however was add my personal opinion of the book. Before reading the book I could ‘hack’ at JavaFX, and of course it was always pretty trivial to read JavaFX code and understand it. Since reading the book I have a better understanding of how to build a JavaFX application properly. I also have a far better understanding of the quirks of JavaFX. As I’ve mentioned elsewhere, JavaFX needs better support for Containers (i.e. layout managers in the Swing world), and whilst JavaFX 1.2 goes some way to helping in this area, the book gives a good introduction to new containers offered in JFXtras, such as the JavaFX port of MigLayout. Finally, it gives a good tutorial as to how you should go about developing a mobile offering of your application.
Some of the chapters are very advanced, so I know that I will be returning to the book when I hit areas of difficulty in JavaFX. In this regard, it doesn’t feel like it’s the kind of book that you read once and then shelve on your bookshelf. It will be a good reference manual for anybody building JavaFX applications.
If you are a Java developer who tends to spend time developing user interfaces in Swing, and want to get to know JavaFX, then I happily and wholeheartedly recommend the Pro JavaFX Platform book to anybody out there. I can assure you that it is a good book, and it will get you up to speed very quickly. It is current as of it’s release (due to the hard work of the authors who pretty much wrote the book 1.5 times), so you need not worry that you’re learning old language and API’s. Apparently, future releases of JavaFX are less likely to be ‘breaking’, in the sense of API and language changes, so now is probably a good time to invest in a good resource to learn JavaFX.
Finally, this has not been a paid advertisement for Pro JavaFX Platform: Script, Desktop and Mobile RIA with Java Technology, although I wish it was 🙂