K. Tsang wrote:JSF = complex/fancy UI interaction ....
Differing opinion: JSF = Rube Goldberg machine to do something that's relatively simple in the most complex fashion possible by trying to force an incompatible model onto the web. Also, a mastodon caught in the tar pits, stinking of extinction.
JavaFX = hmm app for both web and desktop (that was the original goal I recall)
JavaFX is not for web apps.
But yes, without the "given scenario" it's impossible to make any sort of recommendation.
As other have said, the requirements will drive the right choice. However, these are my opinions:
JSF (without servlet) = use 2.x version (no ver. 1.x), when you expect low number of users and you are dealing with management interface. Oracle guarantee backward compatibility, and many vendors offers their "Faces" on top of JSF, which bring you lot of nice things, including AJAX and Responsiveness. You are also kept safe from cross site scripting and all such kind of attacks.
JSP & Servlet = only for simple interface or specific pages with graphs, data, etc... lot of extra coding is expecting you, to cover all the aspects that other framework are offering out of the box. All the AJAX things for example.
JavaFX = It is now part of JDK, but the whole project seems a bit stale. Use it for fat client or rich interfaces.
Swing, AWT, SWT = When you need a Fat client or a standalone program these are the alternatives. SWT however is not a standard by Oracle.
Then as other have mentioned:
JS + Rest API = there's a lot of framework offering this. This approach although good, requires good architects, and good developer. In these months I am seeing many projects failing on lot of aspects: security, vulnerability, and mostly scalability and performance degradation.
Hi, Raghu - by knowing them well. A framework has a set of features, you should know what those features are, be able to legibly compare between frameworks, and be able to reason why this or that framework is a) better for the problem at hand, and b) easier/more productive to develop in and to use within the application.
Most modern frameworks are pretty good; however, I would say in terms of productivity you want a component-based framework or - and one has to be attentive here - an MVC framework with a suite of AJAX-enabled components at hand so it effectively functions as a component-based framework.
In that regard, the easiest thing to use would be Servlets, JSP and a client-tier AJAX-enabled framework like JQuery, or something similar but with a robust set of UI components already built in (Sencha, Telerik for JSP, etc.). Probably the most lightweight setup of all should win.
This is what the framework should not be: heavy, unwieldy and unscalable. If you avoid those, the rest of the choices come down to ease of development and productivity.
Hope I was helpful.
With best regards,
Anton Golovin (firstname.lastname@example.org) SCJP, SCJD, SCBCD, SCWCD, OCEJWSD, SCEA/OCMJEA [JEE certs from Sun/Oracle]
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop