Java is one of the most popular programming languages, the possibilities of which are not limited to anything. However, using only a bare language for solving complex problems is fun for beginners and old school programmers. By the way, if you are a beginner, we recommend that you pass through intensive java-programming basics. For everyone else, there are frameworks that help solve everyday tasks and allow you to erase the boundaries between “I can” and “I want.”
Knowledge of Spring is one of the most common requirements for the position of a Java developer. The reasons for this are mass, the most important of them is universality. In fact, this is a whole container of frameworks that allow you to perform tasks of any complexity – from working with databases to testing procedures.
A specialty among them is MVC which as you can see was won by the competition of frameworks alone. The interaction indicated in the name (model-view-controller) is brought here and if not to perfection, then to a very good level which allows us to create a good and clean front-end code without deep knowledge of the processes.
From the point of view of the necessity of studying this framework the beginner has some disagreements. On the one hand, this is a long and well-established platform with knowledge of which will be a big plus to the resume. On the other hand, to date, Spring by functionality is not such a dominant platform in terms of features as it was about 7-10 years ago. In this case, the novice to master the MVC on the move is quite difficult.
Another framework for developing Web applications, but unlike the previous paragraph, the rate here is not on processing requests but on interaction with components. A big plus is Oracle support with many additional tools, excellent documentation and a friendly community. In general, if you need to quickly develop something on Java, JSF is an excellent option.
But there is a downside. Despite the fact that such an approach will seem simpler and more understandable for a beginner, for working at some professional level it will be necessary to have excellent knowledge of Java and understanding of web technologies along with generally the experience of working on the web without any frameworks.
One of the main advantages of using the Vaadin framework is the ability to use only Java thus avoiding twisting the web languages (HTML, JS, XML). This is not the only framework that has this capability but it’s probably the least problematic of all.
In addition, the MVC and MVP models are perfectly implemented here which ultimately affects the quality of your work. But there is a downside. First, Vaadin is an add-on on GWT which in the long run will oblige you to study this framework too. Secondly, as follows from everything described above it is slow. The user essentially only works with views so the execution time of any action can be multiplied by 3 from the nominal.
GWT (Google Web Toolkit)
Some pluses: a lot of APIs, widgets, first-class support, no need to perfectly know Java – quite enough to get interested in this framework.
As you might already know, Grails is a framework for the Groovy language which in turn is based on Java. Simplification is obtained for simplification. That is, at the output you would already have received a convenient product with a low entry threshold and then the developers tried: not only that there are more than 900 plug-ins in the package with compatibility with Spring and Hibernate (about it a little later) . When it becomes boring to work with the ready and want to do customization, Grails will give you this opportunity with the help of a flexible library settings system (including Grails-Ajax).
In general, you want to quickly and efficiently create an application without having much experience behind your shoulders – this is to Grails. But consider the required amount of software and low performance.
There are several other frameworks that deserve your attention.
Struts 2 is a beautiful framework with more than 17 years of history (specifically Struts 2 in February turned 10 years old). Simplifies the implementation of MVC, has a lot of worthy plugins but still quite complex for a novice audience.
Hibernate – when you need to tighten the low-level code for interacting with the database and processing requests, this framework will help you a lot.
Wicket is a Vaadin-like framework that requires simultaneous work in two directions: Java and HTML. From this is not the highest popularity.
Stripes is a little-known framework, essentially a lightweight version of Struts. Minimum settings, the most simplified agreements and a fairly low entry threshold.