I have been a dedicated Java developer for over 5 years. Not only that, but I consider myself a Java enthusiast. For several reasons, however, I have decided to start a project in ActionScript 3 using Flex Builder 3.
I consider valuable to share my impressions on the transition between the languages. Therefore, in this series of posts I will be writing about my experience with ActionScript. I will also comment on the differences between the development tools for Java in Eclipse and Flex Builder, as they both use the Eclipse as an underlying technology.
Before I start, however, I should note that both Java and ActionScript 3 have their on strengths and weaknesses and I consider both of them amazing technologies. I will try to be as objective as possible to avoid sinking in "religious" arguments. Also, in this series of articles, I will refer just to ActionScript 3, not the previous versions of the language, as I have no experience using them. Therefore, whenever I refer to ActionScript (or AS) I will be talking about ActionScript 3.
In today's post I will refer to some impressions about the development environment. For ActionScript and Flex I am using Flex Builder 3. For Java, I am using Eclipse Ganymede.
The compiler for Java in Eclipse if far faster and provides better feedback than the ActionsScript 3 compiler. For instance, in Java it underlines the syntax errors and provides quick fixes as you type. FlexBuilder, on the other hand, only compiles when you save a file and just indicate the line of the error and does not give any quick fixes. The most annoying thing, however, is the speed. With a medium size project, the saving can take several seconds in my machine (Mackbook pro with 1.5Gb of RAM) which is really bud. I seriously hope that adobe improves this in the future.
Refactoring for AS is still in diapers. Basically, the only tool that they offer is Rename. Java, on the other hand, has very sophisticated refactoring tools, making this process a pleasure.
Documentation in AS is more enjoyable to use than Javadoc. The template of ASDoc looks better than Javadoc. But the differences goes beyond that. In the bottom of each documentation page, there is space for comments and examples. Furthermore, many AS examples contain flash apps embedded on them, showing the running code of the examples. This is very rare in Java, except in the applets tutorial, and they are too slow to load to make them practical.
Design view It works amazingly. This, together with the binding capabilities, make the creation of UI a pleasure in Flex. You can drag and drop the elements and see the final result right away. The layout behaves just as you expect, so you don't have to struggle with the layout manager for hours as with Swing.
However, it is a shame that you don't get previews of custom components (unless you extend a normal component).
More to come..
In the next part of my review, I will talk about language features including how I began to love closures and how much I miss abstract classes. Stay tuned and don't forget to leave your comments!