Let me preface this by saying that even though this blog has been primarily about Rails, I am still an active Java developer. After my honeymoon with Rails I came to appreciate Java again and enjoy a healthy relationship with both. In other words, I'm not just a Rubyist dogging on Java.
I've never been a big plugin based RIA proponent, I still think HTML can get you a long way. In the late 90's my friend said to me "There's this new technology that's going to make HTML obsolete in a year, it's called Flash!". Flash certainly has a place, but people tend to overreact about stuff like this. Simplicity always reigns, cause we're simple people.
However, I'm always curious about new things. When my friend wanted a Dice Roller for his DnD site, I thought it was a good excuse to dabble. JavaFX had just hit 1.0 and since I had Java exp I figured I'd give it a try. My hope was that I would end up with an architecture to support uploadable plugins for Doodlekit. I've wanted to do this for awhile, but I'm sure as heck not going to let anybody upload Ruby code. I figured an applet would be secure and atomic.
The app is pretty simple, here's the Rails version I ended up with. The JavaFX version was almost the same. My intention was to start simple and then add some more dynamic components like 3d dice.
What I liked about JavaFX
The declarative syntax was pretty cool and I liked that it was similar to JavaScript. There's no reason to invent a completely new syntax. Syntax-wize, the level of entry was pretty low (relative to other Java technologies), however I could tell it would extend gracefully. I was also pretty happy with the NetBeans support. That's about it.
What I didn't like
The first thing I noticed was how incredibly slow it was. This was about as simple as it could be. The data was stored in Doodlekit's form builder database, and the app connected through a RESTful Web Service. It took way too long to load and way too long to run. I didn't spend any time trying optimize it. I don't think I should have to with an app this simple. I guess there's the argument that weight of my app didn't warrant the use of something this heavy. I just can't figure out how Sun hasn't been able to make small simple applets really fast yet. I guess I'll wait another decade.
Being new to JavaFX, I had to look up a lot of stuff. Unfortunately there wasn't a lot of stuff to be found. There's a not so useful JavaDoc kind of thingy and a handful of blog posts. The problem is that half the snippets I found in blog posts were no longer valid, I'm assuming because they'd been removed during the Beta. I believe there's one published book and a few in the pipeline. I realize it just hit 1.0 but come on, how's it going to get any traction if you can't figure out how it works?
Finally, the lack of cool components was pretty frustrating. You had the standard Swing stuff like textboxes and such, but with a hot new technology like JavaFX, I guess I expected more. Instead of just a JList, how about sortable grid components? What's the point of a slider without a label? And no I shouldn't have to make my own.
I'm sure if I looked a little harder I could find answers to a lot of these issues, but I guess that's my point. If you want a technology to catch on you have to be ready for this. Good documentation is an absolute minimum, followed by lucrative features, and maybe good performance if you are so inclined.
Post a Comment