Java is one of the most popular languages and there are many plug-ins for it.
Spring MVC is one of the most popular frameworks for web sites at the moment. There’s also a well established ecosystem. If you lack something in the development you can easily find an add-on for the framework which will add the necessary capability. A huge developer community will always be ready to assist you if you have any questions. With Spring MVC you can easily develop large and fast-growing sites. It does however have it’s disadvantages. This framework is quite difficult to learn despite the good documentation beginners are likely to experience difficulties in the learning curve. In addition it does not provide convenient tools for creating a user interface.
Vaadin is based on the Google Web Toolkit. This is used to output user interface elements and interact with the server on the client side. Thus adding complexity to the architecture of this framework. However, knowledge of the Google Web Toolkit is not mandatory for development on Vaadin. Moreover, this framework is generally one of the easiest to learn and its main “feature” is the “design mode”. This allows you to build a user interface in WYSIWIG mode and write logic separately for each component. The documentation should be mentioned separately. In addition to the many guides and demonstration examples there is the so-called “Book Vaadin”. A complete guide to the framework in which you will find answers to all your questions. The book is available for free online and a paper version can be ordered or received at one of the numerous conferences sponsored by the developers of the framework. Vaadin is ideal for beginners and professionals alike. One of the negatives is that is not the most developed ecosystem and has poor scalability for large sites.
JSF is part of Java EE and officially supported by Oracle. Although this framework is not very suitable for rapid development it is easy to use due to the availability of excellent documentation as long as it is provided by Oracle itself. The absence of any external dependencies as long as you stay in the Java EE ecosystem and a wealth of opportunities. The ecosystem of the framework is extremely developed and represents a lot of libraries for all occasions including tools for convenient development of the user interface. The main feature of JSF is that it is a part of Java EE. Provides excellent interaction with IDE and official support from Oracle. All this in the aggregate greatly facilitates the development. The disadvantage of the framework is the complexity of its device. However, it was originally conceived as a single whole with Java EE.
Frameworks are written in JVM languages
The following frameworks differ from the aforementioned ones in that they are not based on Java. They are in languages that continue its traditions and work on the JVM. Of course you can use them knowing only Java but most of the functions of these frameworks will remain inaccessible to you.
Play is written in Scala and Java, you can use both languages for development but the framework was originally designed for Scala. This framework is extremely easy to learn just 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 advanced ecosystem that includes such things as SBT (Simple Building Tool) and Akka which is an excellent library for implementing reactive programming. TypeSafe provides full documentation on the capabilities of the framework. In addition this framework is great for rapid development due to its simplicity. Play is also an excellent choice for the developer on Scala and not bad for the Java programmer. Knowledge of the first is still desirable because Play transfers the second idiom from the first and the functional code in object-oriented Java looks out of place.
Grails is a framework written in the Groovy scripting language and created under the influence of Ruby on Rails. You can use this framework both with Java and c Groovy but the latter option is still preferable because when writing Java code you cannot use most of the great features of Grails. It’s not difficult to learn Groovy since it’s very close to Java. This framework is ideal for rapid application development and it does not require a long setup or sharpening for the task. Documentation is also worth noting that there are many official guides, demos and, videos etc. Ecosystem is more than 900 plug-ins for all occasions.