Just over a week ago, Sun announced a RAD tool for JavaFx built on the Matisse framework, I believe. I was very critical of JavaFx for its lack of tool for building UI and I think this is a step in the right direction. The tool was made available through the NetBeans Update Center on the 14/12/2009. OK, so I have installed the plugin and here are my views; not just on the tools but also on other stuff I think would benefit the JavaFx community:
When comparing something, it only makes sense when we use a benchmark; here my benchmark will be Adobe Flash Builder (formerly known as Flex Builder). Over the years, Adobe had made it easy for the designer to build impressive user interface with minimal coding. Sun, in the other hand, made it easier for developers to build application, yes I am aware of some nice UI in Java but they still do not compare to the eye candy of Flash/ Flex.
I am going to look at the tools; Flash Builder and JavaFx Composer plugin, from a developer perspective.
Components:
A key feature of RAD tools is the amount of components they make available to developers without having to write too many codes. I understand the plugin is at a "preview" stage, whatever that mean (alpha?), but there are alot of missing components; as an example, this release version was meant to be a "preview" of what to look forward to but I cannot drag a "combox" from the components palette into my form, no data grid, no chart, no menu bar, no date components and can't even draw a rectangle which is possible but only through coding. I hope the JavaFx team add all the components available in JavaFx plugin to the Composer.
NetBeans JavaFx UI Composer
Adobe Flex/ Flash Builder
Round-trip code update
One thing I dislike with Java IDE's (or most of them) is the inability to change the generated code without requiring you to write more code. The Adobe team actually made a good job in giving more freedom to the developer. In Flash Builder, you can design your UI through drag-n-drop but also customise it directly through the XML file (MXML). This feature was not available in NetBeans Matisse, I could be wrong, but and again Matisse was not really used in large project (no comments, thanks), at least not were I worked. Why all the fuss, you might ask? Try to create a simple interface and add a "rectangle" object to it which you will use as a toolbar and tell me how simple that was.
The coding style in JavaFx is very similar to Flex/ Flash ActionScript (so why the "V"oid instead of void, but that's another issue) and very easy to learn. So far, I found it easier to actually code the canvas then using the Composer plugin. Another thing, when inspecting object properties; not all properties are available, for example: the gradient properties are not available, which will require you to write more lines of code.
UI Preview Panel
Again, a feature which Adobe Flex/ Flash builder excels at (I feel like I am starting to sound like an Adobe salesman) is the synchronize preview of codes. This is not a due to JavaFx Composer plugin but this seems as a bug as sometimes, you might have to restart the IDE in order for the UI Preview panel to start working again. Hopefully the introduction of the RAD (or not so much RAD) tool, will fix this issue.
Conclusion
You might feel that I was on a JavaFx bashing quest but this is not the case. JavaFx might not have a large components set (well what about all the SWING components available which you can use? You might not be able to "skin" them to your application look and feel but they still availabe to you) but I still think it has a good future. If you take a look at the screenshot below which was built with Adobe Flex, it took me less than five (5) minutes to build. Now time to synchronize your watches and tell me how fast it will take you to build the same interface using JavaFx Composer plugin. It will probably take me less than five (5) minutes if I was designing it with Matisse. My point is; a RAD tool is supposed to promote productivity and YES!!! I have realized this is a "PREVIEW" release but can you actually use it? I know I will still be coding JavaFx for the foreseable future and I would love it to succeed. If you are going to call a tool "a RAD tool for building Form-based JavaFx UI" then I suggest that you provide most of the form components.
5 components I like to have on JavaFx
When comparing something, it only makes sense when we use a benchmark; here my benchmark will be Adobe Flash Builder (formerly known as Flex Builder). Over the years, Adobe had made it easy for the designer to build impressive user interface with minimal coding. Sun, in the other hand, made it easier for developers to build application, yes I am aware of some nice UI in Java but they still do not compare to the eye candy of Flash/ Flex.
I am going to look at the tools; Flash Builder and JavaFx Composer plugin, from a developer perspective.
Components:
A key feature of RAD tools is the amount of components they make available to developers without having to write too many codes. I understand the plugin is at a "preview" stage, whatever that mean (alpha?), but there are alot of missing components; as an example, this release version was meant to be a "preview" of what to look forward to but I cannot drag a "combox" from the components palette into my form, no data grid, no chart, no menu bar, no date components and can't even draw a rectangle which is possible but only through coding. I hope the JavaFx team add all the components available in JavaFx plugin to the Composer.
NetBeans JavaFx UI Composer
Adobe Flex/ Flash Builder
Round-trip code update
One thing I dislike with Java IDE's (or most of them) is the inability to change the generated code without requiring you to write more code. The Adobe team actually made a good job in giving more freedom to the developer. In Flash Builder, you can design your UI through drag-n-drop but also customise it directly through the XML file (MXML). This feature was not available in NetBeans Matisse, I could be wrong, but and again Matisse was not really used in large project (no comments, thanks), at least not were I worked. Why all the fuss, you might ask? Try to create a simple interface and add a "rectangle" object to it which you will use as a toolbar and tell me how simple that was.
The coding style in JavaFx is very similar to Flex/ Flash ActionScript (so why the "V"oid instead of void, but that's another issue) and very easy to learn. So far, I found it easier to actually code the canvas then using the Composer plugin. Another thing, when inspecting object properties; not all properties are available, for example: the gradient properties are not available, which will require you to write more lines of code.
UI Preview Panel
Again, a feature which Adobe Flex/ Flash builder excels at (I feel like I am starting to sound like an Adobe salesman) is the synchronize preview of codes. This is not a due to JavaFx Composer plugin but this seems as a bug as sometimes, you might have to restart the IDE in order for the UI Preview panel to start working again. Hopefully the introduction of the RAD (or not so much RAD) tool, will fix this issue.
Conclusion
You might feel that I was on a JavaFx bashing quest but this is not the case. JavaFx might not have a large components set (well what about all the SWING components available which you can use? You might not be able to "skin" them to your application look and feel but they still availabe to you) but I still think it has a good future. If you take a look at the screenshot below which was built with Adobe Flex, it took me less than five (5) minutes to build. Now time to synchronize your watches and tell me how fast it will take you to build the same interface using JavaFx Composer plugin. It will probably take me less than five (5) minutes if I was designing it with Matisse. My point is; a RAD tool is supposed to promote productivity and YES!!! I have realized this is a "PREVIEW" release but can you actually use it? I know I will still be coding JavaFx for the foreseable future and I would love it to succeed. If you are going to call a tool "a RAD tool for building Form-based JavaFx UI" then I suggest that you provide most of the form components.
Should JavaFx UI RAD tools be based on XML like Android and Adobe Flash Builder?
5 components I like to have on JavaFx
- Menu and tool bar (come on guys, this was there in previous release)
- Grids (even just a simple table will do. For now I use JTable)
- Date picker, Rich Text and Navigator components
- HTML panel (something that display HTML and can also be used as iFrames)
- Panels similar to JInternalFrame (this will be useful in portlet-like applications)
My guess is that you have not been paying attention to JavaFX. It is widely known that the remaining components have been lacking and are targeted to be released in Javafx 1.3 (which is due sometime in the next couple of months). They previewed those components when they announced this tool at devoxx. So, you criticism is a bit odd given that this tool was released with that caveat.
ReplyDeleteAlso, I get the feeling that you are unaware of the design tool that they are working on. Don't get me wrong, I don't expect it to be on par with a mature tool. However, I think that it is intended to speak more toward the user interface portion of your criticism.
@Les, I would love for the design tool to be available as they have previously demonstrated. You are making references to JavaFx 1.3 but charts components are already available in the current release (1.2.1). If you read my entry on the issue, I am mainly talking about components that already exist in the JavaFx plugin for NetBeans but are not available in the preview.
ReplyDeleteHere is a nice screenshot of the design tool but what's the use if you don't have a release date for it (http://blogs.sun.com/ant/resource/tool.jpg). I am sure you are aware that most RIA on the internet are Flash/ Flex-based. Only good tools will make Java developers such as myself start using JavaFx for real world project. For now, Flex will be the best alternative (btw, this is not a recommendation).
Regardless of the next release, the current components should also be available through the Composer plugin.
Mr. Nene, you absolutly miss the point. Thank you for your input.
ReplyDeleteSun should push JavaFX more than the present.The applet was a disaster . At least Javafx holds the feature of Java on client side
ReplyDelete@moonko, help me here to understand exactly what was the point in the release. Sun announced the Composer plug-in as a UI builder for formed based UI. This is not a new market where Sun is venturing into; they are major players already I the like of Adobe and Microsoft (and HTML5?). It is as easy for a Java developer to start coding in ActionScript and it is very similar to JavaFx syntax so why you use JavaFx? A reason to use Fx is the ability to mix Java code with the Fx application so the learning curve is not as sharp and long from a developer's perspective. Overall, you guys did a very good Job so far on JavaFx but we need better tool which can compete on the market. The release cycle are too long and I am really considering Flex (due to other factors too). I hope next release will listen to the community and provide what's really needed.
ReplyDelete@madhukara, I couldn't agree more with you. As it stands it seems to be only targeted to geeks but they need to advertise it more in the same way Microsoft and Adobe advertise their offerings.
@Armel: The main point was to show you what we did and gain feedback. The JavaFX Composer is released over JavaFX 1.2.1. This constraint defines which components and features are awailable. Yes, we know, that there are no charts. The charts aren't easy to edit visualy, so we decide to keep them away from preview release. The quality is strictly defined by preview release distributed via beta update of NB. We expect and humbly request feedback about usability, flexibility and future direction of the tool to satisfy as many developers as possible. We are targeted for bussines developers, not designers. For designers we provide Authoring Tool.
ReplyDelete@Moonko it is fair to say that maybe my expectations were too high. In a small Java shop as mine, there 's a thin line between designers (excluding creative graphic desginers) and developers or should I say that Front-end and back-end developers can both be the same person. I do believe that one can use Flash Builder to design code an application. Anyway, looking forward to the authoring tool. Any timeline on that, yet?
ReplyDelete@Armel: There is no official release date yet.
ReplyDeleteTo keep away from redundancy and misfortune, you should hand over the work to an expert planning organization having a class of innovativeness and expert abilities. logo design service
ReplyDeleteWynnBET casino credits - KTNV
ReplyDeleteWynnBET Casino op 사이트 credits. 충청북도 출장마사지 This page 문경 출장마사지 only supports the following games: · 파주 출장마사지 Slots 부천 출장샵 · Table Games · Blackjack · Poker · Roulette.
Thhanks great blog post
ReplyDelete