What should be a development roadmap for a legacy Java Swing application, for the next 5 years?
Currently, I'm running a cross platform desktop app open source project. The core tech being used is Java Swing.
Over the pass 5 years, our user base is growing, in a slow but healthy trend.
We wish to plan out the development roadmap, for next 5 years. What worries us is that, Oracle has stopped on future development of Swing. There are several choices :-
1) Stick with Java Swing.
There are 2 risks right here.
- Will oracle stop shipping Swing in JVM in the future?
- Will the UI of Swing looks outdated? As, due to boom mobile computing, Microsoft seems investing a lot, in order to make mobile UI and desktop UI (metro?) seamless.
2) Keep legacy Swing code. But, tend to develop new feature in JavaFX.
3) Re-write the whole application in JavaFX. This requires significant of investment, because the legacy Swing app consists of 100k lines of code, and it is working extremely well at this moment.
4) Re-write the whole application in other cross-platform toolkit. Like QT? Cross platform is pretty important to us, as we have Linux and OSX users too.
Personally, I think (2) is the most reasonable choice. However, I would like to hear valuable input from the community.