The Next Great Thing: An Application Framework
richard.bair at oracle.com
Thu Feb 9 16:15:10 PST 2012
On the other hand, the more structured the application framework, the better tool support you can get. For example, if SceneBuilder had enough structure, it could show all the different pages in your application, indicate which actions move from one page to the next, what CSS files apply to which pages, what methods are available on the controller, what localization files exist for different pages, switch between locales to see what things look like, show the layout for iPad vs. Desktop vs. whatever, etc.
I don't to tie scene builder to a specific app framework, unless that app framework is part of the platform. Other things, like validation, I think really wants to be part of the controls API as opposed to be completely standalone.
But you make really good arguments for being conservative in what goes into the core. I think one of the things that made Swing so hard to learn, was that it didn't provide any structure at all.
> The things I feel are needed for an application framework are the features
> I am putting into JFX Flow <http://www.zenjava.com/jfx-flow/>, but this is
> targeted towards web-style, online, form-based business apps.
> My feeling is that we are better off if JFX just provides a core library
> with fundamental building blocks, rather than trying to provide a full
> application framework that forces a specific architecture. People build all
> sorts of applications, with all sorts of wonderful architectures, and no
> App framework can cater to all. For example, the application framework
> needed for an online, form-based business style app vs a desktop, offline
> app (e.g. an IDE or graphics drawing program) are significantly different.
I think you make a solid argument that there are different classes of applications. The SceneBuilder itself, for example, wouldn't make any use of a page-based application framework, neither would an IDE. Yet most apps I've written would work very comfortably with a page-based framework -- and those were all traditional desktop apps! A CAD program or 3D game would again be some other application arch-type.
But does that mean we shouldn't provide an API for the most common application arch-type in the platform? Suppose we did so, but it was in a separate module, meaning you didn't have to use it if you didn't want to?
More information about the openjfx-dev