Developers, on the other hand, have become accustomed to tools such as AJAX/HTML5
toolkits, Flex/Flash, Google Web Toolkit, Eclipse/NetBeans RCP, and others that allow them
to build and deploy rich and web-connected client applications quickly. They expect their
development languages to be expressive (either through syntax or specialized APIs) with
features that liberate them from the tyranny of verbosity and empower them with the ability
to express their intents declaratively.
The Java proposition
During the early days of the Web, the Java platform was the first to introduce rich content
Flash). Not too long after applets appeared, Swing was introduced as the unifying framework
to create feature-rich applications for the desktop and the browser. Over the years, Swing
matured into an amazingly robust GUI technology used to create rich desktop applications.
However powerful Swing is, its massive API stack lacks the lightweight higher abstractions
that application and content developers have been using in other development environments.
Furthermore, the applet's plugin technology was (as admitted by Sun) neglected and failed in
the browser-hosted rich applications against similar technologies such as Flash.
The JavaFX is Sun's (now part of Oracle) answer to the next generation of rich, web-enabled,
deeply interactive applications. JavaFX is a complete platform that includes a new language,
development tools, build tools, deployment tools, and new runtimes to target desktop,
browser, mobile, and entertainment devices such as televisions. While JavaFX is itself built
on the Java platform, that is where the commonalities end. The new JavaFX scripting language
is designed as a lightweight, expressive, and a dynamic language to create web-connected,
engaging, visually appealing, and content-rich applications.
The JavaFX platform will appeal to both technical designers and developers alike. Designers
will find JavaFX Script to be a simple, yet expressive language, perfectly suited for the
integration of graphical assets when creating visually-rich client applications. Application
developers, on the other hand, will find its lightweight, dynamic type inference system, and
script-like feel a productivity booster, allowing them to express GUI layout, object relationship,
and powerful two-way data bindings all using a declarative and easy syntax. Since JavaFX runs
on the Java Platform, developers are able to reuse existing Java libraries directly from within
JavaFX, tapping into the vast community of existing Java developers, vendors, and libraries.
This is an introductory chapter to JavaFX. Use its recipes to get started with the platform.
You will find instructions on how to install the SDK and directions on how to set up your
IDE. The chapter also provides a high-level introduction to the main features of the JavaFX
scripting language such as class creation, variable declaration, data types, JavaFX functional
programming support, sequences, and loops.