JavaFX will save us from the uncontrolled budget overruns that Flash inflicts
Last year I had to oversee a Flash project. The goal was to develop one of the most sophisticated video players ever. This thing could read XML files from other sites, and become an embeddable store. We were developing it for iHanuman.com, though it was never put into use there. The goal was to allow yoga enthusiasts to use their own blogs to promote the videos of their favorite yoga teachers. We were initially thinking the project would cost $10,000, but the owner of the company kept asking for additional features, so we thought maybe the cost might rise to $20,000. But in the end, the final cost was close to $50,000. Flash is not a serious programming environment, and as soon as you try to do something ambitious with it, you learn a painful lesson about its limits. For this reason, I am very excited about JavaFX. CJT sums up a number of my thoughts on the subject:
The maturity of the underling technology (the Java Runtime Environment) cannot be overlooked. One of the biggest gripes we have with, for example, the Flex framework, is it is bug ridden. Start doing any kind of serious project with it and you cannot get away from this. The mx components have been completely re-written no less than three times now! And they are still buggy. This slows development, there is no getting around it. Ask any developer who has done any serious stuff with the Flex framework and they will be able to testify to this. Hopefully with Flex, this will improve now that the framework is open-source.
Java is very mature and so we shouldn’t see soo many issues in this department.
The JRE is also leaps and bounds ahead of the Flash Player in terms of functionality, along-side the fact there are tons more Java developers (and more experienced) out there than actionscript developers, which as an employer, is also a key point. Finding decent actionscript developers is tough compared to experienced Java developers and this isn’t because of demand, its because actionscript 3 (I pinpoint 3 because 2 was half-baked and the Flash Player AVM1 was pants compared to AVM2 – hence incomparable to Java and the JRE) is a relatively new language and most actionscript “developers” have come from a creative/design background as opposed to programming. We like designers to do design and hard-core coders to code and for the two teams to collaboratively work together to create great results.
I don’t know much about Flash. Last year, for the video project, we brought in a Flash programmer as an independent contractor. I was assigned to manage her, since I was the senior programmer with the firm I was working with. She started the project using ActionScript2, but when she realized how ambitious the goals of the project were, she switched to ActionScript3. We were asking her to do a lot of parsing of XML files, which of course AS3 makes easier than AS2.
As the project fell further and further behind schedule, I began to wonder if she was any good. So I contacted my old friend Nick Piazza, who was the Flash programmer for Category4.com (where I once worked). I asked him to review her work and tell me if she was any good. So he reviewed her work, and he was very impressed. She was, after all, doing cutting edge work in AS3. She was using many of its new features. He admitted to me that he himself, along with most other Flash programmers, were still perfectly content to do their work in AS2. In his opinion, she was doing the most advanced Flash work of anyone in central Virginia.
Great, I thought. So she is excellent. So why is the project falling so far behind schedule? She explained she was up against some intractable bugs. I asked if I could sit down with her and go over the code. Some programming problems are, after all, logic problems, they are not specific to a language.
So we sat together and went over her code, trying to figure out the solutions to certain bugs. And what I learned was this: Flash has terrible tools for debugging. Adobe has only recently started to take ActionScript seriously as a language for advanced programming, and they are only slowly providing the tools needed for advanced programming. And of course, chief among the needed tools are debugging tools.
I walked away from those meetings with the sense that Flash was uniquely weak in debugging tools, and that this was a major source of budget risk when contemplating doing anything ambitious with it.
JavaFX starts off in a better situation than Flash. JavaFX is going to be a hit product. I’ll admit, for small animations Flash is too entrenched to ever be dislogded, but Flash just lost its bright future. For big, ambitious multimedia projects, JavaFX offers less budget risk than Flash.
December 11th, 2008 at 5:49 am
Hi,
It doesn’t seem that your developer was using Flex to build and debug this project. If she had been, debugging would have been much easier since Flex Builder is integrated into Eclipse’s debugger. Using Flash Professional to create and debug ActionScript is not the most productive environment for developers. That is why Adobe created Flex.
-James (Adobe)
December 11th, 2008 at 10:27 am
Very informative. I wish I car hear from a Java developer (ideally a Swing developer) who has built a few Swing applications and is now working on Flex 3 applications. I am thinking of somebody with real world experience like Scott Delap (author of the best Swing book-http://java.sun.com/javaone/sf/2007/articles/rockstar_scottdelap.jsp).
Thanks
Aziz K
December 11th, 2008 at 11:15 am
JavaFX will save us from the uncontrolled budget overruns that Flash inflicts…
[...]Last year I had to oversee a Flash project. The goal was to develop one of the most sophisticated video players ever. This thing could read XML files from other sites, and become an embeddable store. We were developing it for iHanuman.com, though …
January 4th, 2009 at 6:22 am
[...] a different subject, I’ve already written of a bitter experience I’ve had trying to manage a Flash project. I am curious how dependency injection would be handled in ActionScript 3, and how that would get [...]
June 7th, 2009 at 11:21 pm
I read your (good) DI article, then came here. I’ll comment on the DI article in a bit.
Back to this post. When I read this, I was thinking this was written in December 2007, but you wrote it in Dec 2008. I’m blown away when I read:
“He admitted to me that he himself, along with most other Flash programmers, were still perfectly content to do their work in AS2″
Every Flash developer, whom I respect, flat out refuses to write AS2 ever since AS3 came out, about 3 years ago (most people didn’t get into it till about 2 years ago). Likewise, you mention that ‘Flash has terrible debugging tools’. Your right, but that is because she was using Flash Authoring, which is not meant to be used to write code – it’s a designers tool. I use FDT, and mentioned jlward4th Flash Builder (formally Flex Builder). These IDE have excellent debugging tools – they even support unit testing.
In fact, Java style debugging has existed with Flash Applications for almost 3 years. I would only consider someone doing cutting edge AS3 work if they were building an app with it in July 2006.
What I think you touch on is really a slightly different issue that makes Flash difficult to work with. It is that so many (many many in fact) people consider them selves ‘Flash Developers’ when they are really just glorified designers or glorified banner makers. This gives Flash developers a bad rep and makes it hard for businesses to hire proper Flash programmers.
June 8th, 2009 at 9:11 pm
Alan, thanks for writing.
At this point, I’d say my post makes two points, and I was wrong about both of them.
I apologize for the confusion about the dates. The post was written in December of 2008, but I was talking about events that occurred in 2007.
I agree with what you are saying about good Flash programmers, they work in Flex, not in the Flash Authoring environment. I don’t work with Flash, so my understanding here has been growing slowly. But I’ve begun to appreciate what Adobe has done. A few years back they realized that a real programming environment was needed to do RIAs, and they realized that, with Flash, they were lucky enough to be holding what would likely be the premiere platform for RIAs. So they took Eclipse and customized it for writing ActionScript 3. And that is how Flex was born.
I’ve worked with Eclipse a little, and I know it is a very good development environment. And I agree, it has all the tools that are needed by a serious programmer.
So why was I so mislead? Partly, this arose from the fact that I was asked to manage a Flash programmer, though I had done no Flash programming myself. But the other thing is the one you mention: “It is that so many (many many in fact) people consider them selves ‘Flash Developers’ when they are really just glorified designers or glorified banner makers.”
That is really the main problem with Flash, that so many people stumble into it and eventually call themselves experienced developers, even though they know nothing about general theories of programming.
The other point I made in my post is that JavaFX was the wave of the future. I’ve now come to doubt that, as well, for reasons I describe here:
http://www.teamlalala.com/blog/2009/06/05/why-do-we-need-javafx-when-we-have-groovy/
January 13th, 2010 at 3:40 pm
[...] a year ago I began to focus again on the world of the JVM. At first I was over-enthusiastic about JavaFX. Then I was frustrated by its lack of progress. Some at Sun have talked as if JavaFX was Swing 2.0, [...]