1. The Mac
A little over 1 in 10 personal computers are Macs. That figure should carry more weight given the overwhelming presence of Apple products in the mobile arena: iPhone, iPad. And it's way up from the 3% figure in 1999. Macs are no longer just for students and creative types. They're mainstream.
When employees have PCs and the manager down the hall brings in his or her Mac, you need a multi-platform development solution. JavaFX programs run without modification on both platforms.
2. Windows 10
What about the other 90% of the computers?
Windows 10 highlights the importance of the desktop (including docked laptop) app. You no longer have to split your PC development into a desktop version and a mobile-ready Windows 8 Metro version. Instead of looking for a one-size-fits-all form factor to be dominant, Windows 10 recognizes that the desktop is more important than ever. JavaFX is a desktop technology well-suited for building complex apps for today's knowledge worker.
3. Scene Builder
There are only a few dozen of JavaFX jobs on Dice, but nearly 2500 iOS jobs (as of Jan 2, 2016). What's driving all the iOS development? Apple has put out a great development platform with XCode and Interface Builder. Code (whether Swift or Objective-C) is separated from the volatility of the UI. And significant UI work can be accomplished without coding, compiling, and running.
|Scene Builder Showing a Sprite-Based App|
Oracle's or Gluon's Scene Builder is a lot like like Interface Builder. Build your UI through drag-and-drop and hit Control-P to preview immediately in a window (no coding, compiling, and running). Link your JavaFX code in with a few references to fields and methods in a Java class. The direction of JavaFX development is very much in line with Apple.
4. App Stores
Distributing an app used to be difficult. Even after downloads overtook physical media, a zero-footprint webapp was very desirable. It still is, but we have an installation culture where app stores (iTunes, Windows Store, etc) are popular. Most JavaFX apps I've worked with use Web Start, but JavaFX comes with a native packaging system that lets your app run with an installer that has a Windows or Mac look-and-feel.
With users coached into finding an app and installing it, the removal of Applets running from browsers (swept away with Silverlight and Flash) isn't relevant.
5. Swing 2
Does the current number of jobs on Dice reflect the amount of JavaFX development activity? Probably not because a Swing developer can easily pick up JavaFX skills. With JavaFX 8, you can embed Swing code in JavaFX screens and JavaFX code in Swing screens. So, rather than staffing up a project solely with new JavaFX developers, you can use in-house Swing talent to roll out JavaFX functionality on-the-margin.
Regardless of how JavaFX does in the long-term, I expect a short-term bump as Swing developers adopt JavaFX. What's prevented this in the past has been the omission of JavaFX from standard Java. Swing has been everywhere since Java 2. JavaFX was first a separate download, then a co-located download with Java 7, and is now a Java extension with Java 8. Once Java 7 ages out, you'll have access to a JavaFX Stage as easily as you do a Swing JFrame.
Finally, and this is more a statement about Java than JavaFX, there is the mountain of legacy Java code. This code may be desktop code, web app code, mobile code, and server-side code. An organization's total cost of ownership is reduced by using common source code management, build, and packaging technologies. To switch over to a C# app or a Swift MacOS app may be discarding too large of an investment.
The preceding six items are the reason why I feel comfortable in branding myself as a JavaFX developer. Here are a few things to watch for in relation to JavaFX in the coming year.
As a result of the Oracle / Google lawsuit, Google is throwing its energy behind OpenJDK to avoid intellectual property issues with Oracle's JDK for Android development. There is also IBM's JDK. Right now, JavaFX is a non-standard extension (a JAR in the /ext folder). Hopefully, it's a cornerstone of all JDK platform in order to avoid an SWT-like situation (or worse a Microsoft Java situation) where the UI capabilities aren't available across-the-board.
I was surprised to see Oracle cut some top Java staff a few months ago. To some analysts, this signaled not only Oracle's waning interest in JavaFX, but a waning interest in Java as a whole. Although I'm not sure why the staff was let go, I disagree that Oracle would abandon Java. Apple puts out XCode and Swift (open sourced and available on other platforms). Microsoft puts out Visual Studio and C#. Large software-based companies need a development ecosystem to shore up their business and some have the clout to not only push APIs but whole programming languges. Without Java, the "middle" of Oracle would be gone (Linux server side?), turning it into a storage vendor with some high-end apps (think EMC plus SAP).
I'm admittedly more biased on the matter than Mr. Krill since I've steered my consulting business into JavaFX. However, this bias emphasizes the convictions of the points I made. I've been programming for 25 years and have developed for a bunch of platforms and languages. If I didn't think I could profit off of JavaFX, I'd be on to something else.
Carl Walker, President, Bekwam Inc