« Tweaking application.xml files for Hybrid | Main | Latest screenshots - Mediaplayer, etc »

Sun is pulling a “Netscape rewrite” with JavaFX

Based on public statements from Sun developers, I have decided to postpone my minimal JavaFX research and focus on other things. I think that JavaFX has the potential to become something cool and useful, but if this comes at the expense of Swing, then forget it. There is no way I am building my business on something as immature as Sun's new FX platform. I waited years for Sun to fix Swing bugs and I am not doing that again with JavaFX. I will rather write Objective C, C# or C++. Sun tells us that graphic designers are going to use those JavaFX tools. Are they serious ? A senior designer costs €1000 a day. He is going to sit there and export JavaFX assets one PSD or AI file at a time ? Really ? And then use Netbeans as a "creative tool" ? Has Sun talked to a single design shop that is not on the Sun payroll ? I use the Adobe CS suite all the time and to me the Sun work flow is way too slow.

Sun JavaFX will need two or three years of development to even match the most basic Adobe and Microsoft desktop offerings unless they got something huge under wraps. In a down economy with no money and no people. They are not pulling a rabbit out of a hat, they need to pull a two ton bison out of a hat. If they think JavaFX can replace Swing for user interfaces they are on drugs. The only logical assumption is that Tim Bray went all AJAX AJAX AJAX on a management meeting and HTML was seen as the status quo. JavaFX looks like a Flash/Flex/Android/iPhone competitor who wants to be "on all your devices". This is simply Macromedia propaganda from 2001 and IT DOES NOT WORK. It is 2009 and there is no Flash on my TV or on my cellphone. Why ? Because distribution companies do not want to redistribute your wares anywhere without "adequate compensation". Just the code signing itself is a huge hurdle. Just look at all the Sun developers who use self signed code and look at the whole centralized App Store phenomenon.

This is like bizarro world. Java 1.6 release 10, plus JOGL and JMC, was amazing and now all of a sudden JavaFX, the ultimate alpha product, is "Swing 2.0". Instead of cars, we need hoverboards. JavaFX is a hoverboard-pony. A hoverpony designed for marketing droids and khaki-shirt management developers who are "serious and stuff" about programming. Though, JavaFX is very logical if you look at the aging JavaME platform and all the strange Xlet stuff that Sun has been working on. Sun has talked about Bluray for eons, but those few people who actually have access to the correct software and hardware are not talking about it; so nobody cares. JavaFX might be a Jini in a bottle, so to speak. Just ask yourself, would Sun put Servlets on the back burner because JXTA was OMG zo l33t shizzle ? I do not actually know.

Like, Sun has done a fantastic job on Java 1.6 and then they stink everything up with politics ? Is this a technical decision or a pissing match between internal management ? Maybe someone got tired of fixing Netbeans bugs and wanted something fresh ? Heck, I am so bored with JavaFX that I built a competing Java Swing based application platform with no animation support whatsoever. Just because I think multi-core might give Swing an edge in the next couple of years. Google Gears now support threads and this is pretty far out when you consider the type of programmers who do Javascript development. Although I have no illusions about hundreds of developers suddenly writing high level multi-threaded code. Most of us are just faking it and pretending to know what we are talking about when words like interrupt, volatile and join are uttered in general conversation. Most of the heavy lifting will be done on the inside of the Teppefall application framework for sure.

From an emotional point of view though, calling JavaFX "Swing 2.0" is sort of insulting to anyone who has written large Swing libraries. Maybe I should call Gateway a "Sun 2.0 hardware platform" ? It is ok to be proud of your own work, but claiming that JavaFX does not need Swing is pure comedy from a technical point of view. JavaFX is not a Windows Vista type project, but rather a Windows XP plugin with a Windows Vista branding campaign. And Windows Vista was the "Wow" in "Wow, everything is broken".

JavaFX can make itself useful by integrating with Swing and those "Swing 2.0 rewrite" people can go play with Play-Doh and crayons. Or alternatively, rewrite one of the most complex pieces of code in the open source world. Some guy showed me 12 lines of Groovy code and told me this is the hot new shit that is replacing my 2Mb in-house Java/C++ library. Based on my experience, those SwingGroovy 2.0 people will be working on their «hot new shit» for quite some time. Start a family, build a house, try to become an astronaut on your free time and then one day when you are done doing all that, SwingGroovy 2.0 will be ready. I do not care if an API is as ugly as a monkeys behind. If it works correctly, happy days. Pretty API's are for people who never release products. Just look at PHP. Uglies API known to man kind, but people make millions of dollars using it. Although the desktop is not the same thing as the server.

JavaFX can replace JavaME and Xlets, but comparing it to Swing is mind blowing. Swing suffers from many Sun developer shortcuts, but the bottom line is that Swing freaking works and JavaFX is "OMG, we must rewrite Netscape in Java from scratch now" and "quick, everyone forget that a solid foundation is important". Sun is pulling a Netscape rewrite. Swing is too valuable to be ignored. And if it gets ignored, then JavaFX is done for. Because there is no JavaFX, only Swing. You still have the "people who wrote/writes Swing code" just an article or two away. The JavaFX developers are all 100% noob-tastic. And making Twitter clients for a company that is world famous for not making any money is surely the future.

GWT, Gears and Flex label themselves as open and open source. But make no mistake, these three frameworks are the pinnacle of vendor lock-in. There are no competing and compatible runtimes. And ask yourself what is cheapest. Forking an open source project or starting from scratch ? Sure if you got megabytes of code, then it pays off. Maybe. And just ask yourself, would you use those API's if the companies behind the technologies where not Google and Adobe ? Open source today is often just a lazy attempt to create a public standard. Throw some code at a wall and see what sticks.

There is so much ignorance in this industry. Just because something is old does not mean that the new stuff will beat the old stuff. You need to move beyond the toddler stage before picking on the 10 year olds.



TrackBack

TrackBack URL for this entry:
http://www.installer.teppefall.com/movabletype/mt-tb.cgi/222

Comments

re: SwingGroovy 2.0.

I'm not really sure what you are talking about. All of the libraries in Groovy, namely SwingBuilder and the Griffon framework, use existing Swing libraries and DON'T seek to rewrite them. What they provide is a DSL to make Swing a little bit more friendly. In Griffon, care has been taken to allow dropping in of existing Java classes. Swing is still the hotrod engine of the UI car, Groovy just puts a nicer chassis on the out side.

I'm just a Java (and now JavaFX) tyro and not in your league.

Still, think you're being a bit hard on the product which does integrate with Swing (to some extent).

We're at 1.1 and there are already libraries! (OK, three).

There're a lot of people who want Java to do something good on the web and on the phone (not sure about the TV).

So, better or worse, I'm going to stick with it.

My problem is not with the Groovy lead devs. They got some good ideas and their work is concise and useful. I just get so tired of the fanboys shouting "Groovy is the future" in every single post about Swing UI. I see no technical reason why this is true. Do I even get refactoring and effective debugging ? I tried Jython many years ago. Great software, but Java is often just as effective because of Eclipse.

I am an ass. I know. People who write UI code are grumpy. The reason I am venting here is because my world is based on "shit that works" rather than "shit that might work if patch 62 and 48 got merged on Thursday by that guy, what'shisname".

Heck, I can tell you guys a story.

Many years ago I had a cool consulting project where I chose to use a cool API and a cool programming language. I then worked my ass off and got it working. Released it. Tens of thousands of people used the software. Happy days.

Then the customer wanted to showcase the software to their designer friends. Who are all on Mac's. And then it turned out that my cool framework had a broken method when running on the Mac. A single method that I used all over the place. So it did not work.

Pissed off client. They paid me three months late. No more consulting gigs from them. All because of a single method that was not working correctly on the Mac.

For JavaFX to suceed in the mobile space it has to improve memory usage:

http://kohlerm.blogspot.com/2009/03/javafx-memory-overhead-some-high.html

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

This website is all about alpha and beta software

Download non-beta software here