Java Web frameworks
Without a doubt, Java is presently a standout amongst the most well-known dialects, for it, there are many module instruments. We have arranged for you a determination of web-systems for Java, which will encourage your site advancement.
Spring MVC is one of the most popular web site frameworks at the moment. Therefore, it has a developed ecosystem – if you lack something during development, you can easily find an add-on for the framework that will add the necessary opportunity. A huge community of developers will always be ready to help you if you have any questions. With the help of Spring MVC you can easily develop large and fast-growing sites. Nevertheless, he has several drawbacks: this framework is rather difficult to learn, therefore, despite good documentation, beginners are likely to experience difficulties in its development. In addition, it does not provide convenient tools for creating a user interface.
Vaadin (pronounced “vadin”) is based on the Google Web Toolkit (it is used to display user interface elements and interact with the server on the client side), which adds complexity to the architecture of this framework. However, knowledge of the Google Web Toolkit is not required for development on Vaadin. Moreover, this framework is generally one of the easiest to learn, and its main “feature” is the “design mode” – in it you can build the user interface in WYSIWYG mode and write the logic separately for each component. Documentation worth mentioning separately.
In addition to many guides and demo examples, there is a so-called “Book of Vaadin” – a complete reference to the framework, in which you will find answers to all your questions. The book is available free of charge online, and the paper version can be ordered or received at one of the many conferences sponsored by the developers of the framework. Vaadin is ideal for both beginners and professionals. Of the minuses: not the most developed ecosystem and poor scalability for large sites.
JSF is part of Java EE and is officially supported by Oracle. Although this framework is not very suitable for rapid development, it is easy to use due to the presence of excellent documentation (after all, Oracle itself provides it), the absence of any external dependencies (while you remain in the Java EE ecosystem) and a wealth of possibilities. The framework ecosystem is extremely developed and is a set of libraries for all occasions, including tools for convenient development of the user interface. The main feature of JSF is that, as mentioned earlier, it is part of Java EE – this results in excellent interaction with the IDE and official support from Oracle. All this in aggregate greatly facilitates the development. The lack of framework in the complexity of its device. However, it cannot be otherwise, because it was originally conceived as a single whole with Java EE.
JVM-language frameworks
The following frameworks differ from the above in that they are not based on Java, but on languages that continue its traditions and work on the JVM. Of course, you can use them, knowing only Java, but at the same time most of the functions of these framework frameworks will not be available to you.
Play is written in Scala and Java (you can use both languages during development, but the framework was originally designed for Scala). This framework is extremely easy to learn – after 10 minutes of reading the documentation, you can write the first kind of “Hello, world!”. One of the main advantages of Play is an incredibly developed ecosystem that includes such things as the SBT (Simple Building Tool) and Akka (an excellent library for implementing reaction programming). TypeSafe provides complete documentation on the capabilities of the framework. In addition, this framework is great for rapid development because of its simplicity. Thus, Play is an excellent choice for a Scala developer and not bad for a Java programmer (knowledge of the first is still desirable, because Play takes the idioms from the first language into the second language, and the function code in object-oriented Java looks out of place).
Grails is a framework written in the Groovy scripting language, created under the influence of Ruby on Rails. You can use this framework both with Java and with Groovy, but the latter option is still preferable, since you will not be able to use most of the great features of Grails when writing Java code (learning Groovy is not difficult, since it is very close to Java). This framework is ideal for rapid application development – it does not require a lot of configuration and honing for the task. Documentation is also worth noting – this is a lot of official manuals, demos, videos, etc. The ecosystem consists of more than 900 plug-ins for all occasions.