A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Vaadin platform | Vaadin Framework | Angular | JSF | PrimeFaces | React | Wicket | GWT | GXT | JavaFX | Swing | |||||||||||||
2 | ||||||||||||||||||||||||
3 | Developed by | Vaadin Ltd | Vaadin Ltd | Google Inc. | Java Community Process | PrimeTek Informatics | Facebook Inc. | Various individuals. Apache project. | GWT Steering Committee | Sencha Inc | Oracle Corporation | Sun Microsystems | ||||||||||||
4 | Description | A development platform for web applications that prioritizes ease of development and uncompromised end user experience. | A server-side Java UI framework | A structural framework for client-side web apps | Java specification for building component-based user interfaces for web applications | Component suite for Java Server Faces 2.0 | A JavaScript library for building user interfaces | Component-based web application framework for Java | Set of tools that allows web developers to create and maintain complex JavaScript front-end applications in Java | Rich components for GWT | Software platform for creating and delivering desktop applications and rich internet applications | Event-driven rich client | ||||||||||||
5 | Initial release | 2018 | 2001 | 2009 | 2004 | 2009 | 2013 | 2004 | 2006 | ? | 2008 | 1998 | ||||||||||||
6 | License | Apache 2.0 | Apache 2.0 | MIT | Implementation dependent | Apache 2.0 | MIT | Apache 2.0 | Apache 2.0 | GPLv3 or Commercial license | GPL + linking exception | GPL | ||||||||||||
7 | Free for opensource use | x | x | x | Implementation dependent | x | x | x | x | x | x | x | ||||||||||||
8 | Free for commercial use | x | x | x | Implementation dependent | x | x | x | x | - | x | x | ||||||||||||
9 | Website | https://vaadin.com | https://vaadin.com | https://angular.io | https://jcp.org/en/jsr/detail?id=372 | http://primefaces.org | https://reactjs.org | http://wicket.apache.org | http://www.gwtproject.org | https://www.sencha.com/products/gxt | http://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html | https://www.oracle.com/technetwork/java/architecture-142923.html | ||||||||||||
10 | SLA bound commercial support available from the maintainer | x | x | - | - | x | - | - | - | x | x | x | ||||||||||||
11 | Maintenance releases per year | 54 | 10 | 92 | Implementation dependent | 2 | 23 | 8 | 0 | 1 | 2 | 0-2 | ||||||||||||
12 | Committers in last 6 months | 22 | 22 | 47 | Implementation dependent | 24 | 24 | 10 | 7 | ? | ? | 0 | ||||||||||||
13 | Latest official release | 14.0.5 (16.09.2019) | 8.8.5 (01.07.2019) | 7.1.1 (28.11.2018) | Implementation dependent | 6.2 (28.2.2018) | 16.6.3 (13.11.2018) | 8.2.0 (12.11.2018) | 2.8.2 (18.10.2017) | 4.0.3 (16.3.2018) | Java 11.0.1 (16.10.2018) | Java 11.0.1 (16.10.2018) | ||||||||||||
14 | ||||||||||||||||||||||||
15 | Philosophy | |||||||||||||||||||||||
16 | Built for single-page web apps | x | x | x | - | - | x | x | x | x | x | - | ||||||||||||
17 | Built for web pages | x | - | - | x | x | - | x | - | - | - | - | ||||||||||||
18 | Server-driven architecture | x | x | - | x | x | - | x | - | - | - | - | ||||||||||||
19 | Client-side architecture | x | - | x | - | - | x | - | x | x | x | x | ||||||||||||
20 | ||||||||||||||||||||||||
21 | Environment | |||||||||||||||||||||||
22 | Java server-side APIs | x | x | - | x | x | - | x | - | - | - | - | ||||||||||||
23 | Java client-side APIs | x | x | - | - | - | - | - | x | x | x | x | ||||||||||||
24 | Declarative APIs | x | x | x | x | x | x | - | x | x | x | - | ||||||||||||
25 | Deployment environment | Web server or Java Servlet Container | Java Servlet Container or Java Portlet | Web server | Java Servlet Container or Java Portlet | Java Servlet Container or Java Portlet | Web server | Only Java Servlet | Web server | Web Server | Desktop, and web server (plus browser plugin) | Desktop | ||||||||||||
26 | Programming language(s) | Javascript, Java, or any other JVM language | Java or any other JVM language | HTML with special syntax and TypeScript/JavaScript | JSF Markup and Java or any other JVM language | JSF Markup and Java or any other JVM language | HTML and JavaScript | HTML with special syntax and Java or any other JVM language | Only Java with a subset of the java.lang and java.util packages classes | Only Java | FXML, Java or any other JVM language | Java or any other JVM language | ||||||||||||
27 | All Java 8 features supported | x | x | N/A | x | x | N/A | x | x | - | x | x | ||||||||||||
28 | Scala wrappers available | - | x | - | - | - | - | - | x | - | x | x | ||||||||||||
29 | ||||||||||||||||||||||||
30 | FEATURES | |||||||||||||||||||||||
31 | Documentation | https://vaadin.com/docs | https://vaadin.com/docs/v8 | https://angular.io/docs | https://www.jcp.org/en/jsr/detail?id=314 | http://www.primefaces.org/documentation | https://reactjs.org/docs/ | http://wicket.apache.org/learn/ | http://www.gwtproject.org/doc/latest/DevGuide.html | http://docs.sencha.com/gxt/4.x/ | http://docs.oracle.com/javase/8/javase-clienttechnologies.html | http://docs.oracle.com/javase/8/javase-clienttechnologies.html | ||||||||||||
32 | Abstraction over complex web technologies | ***** | ***** | * | *** | *** | **** | ** | *** | *** | **** | **** | ||||||||||||
33 | Automated server-browser communication | x | x | - | x | x | - | x | - | - | - | - | ||||||||||||
34 | Usable without browser plugins | x | x | x | x | x | x | x | x | x | - | - | ||||||||||||
35 | Built-in Push (Websocket) support | x | x | - | - | x | - | x | - | - | - | - | ||||||||||||
36 | Built in WAI-ARIA support | x | x | - | - | x | x | - | x | - | - | - | ||||||||||||
37 | State securely on the server | x | x | - | x | x | - | x | - | - | - | - | ||||||||||||
38 | Browser history / "back-button" support | x | x | x | Implementation dependent | x | x | x | x | x | - | - | ||||||||||||
39 | i18n support | x | x | x | x | x | - | x | x | x | x | x | ||||||||||||
40 | Localization support | x | x | x | x | x | - | x | x | x | x | x | ||||||||||||
41 | Built-in RTL support | - | - | x | Implementation dependent | x | - | x | x | - | x | x | ||||||||||||
42 | UI code architecture using MVC or MVP | x | x | x | x | x | x | x | x | x | x | x | ||||||||||||
43 | ||||||||||||||||||||||||
44 | Testing | |||||||||||||||||||||||
45 | Automated acceptance testing tool | x | x | x | x | x | x | x | x | x | x | x | ||||||||||||
46 | 1st party pixel level UI testing tool | x | x | - | - | - | - | - | - | - | - | - | ||||||||||||
47 | Load testing with standardized tools (JMeter, Gatling) | x | x | x | x | x | x | x | x | x | x | x | ||||||||||||
48 | UI code supports unit testing | x | x | x | x | x | x | x | x | x | x | x | ||||||||||||
49 | ||||||||||||||||||||||||
50 | Look 'n' feel | |||||||||||||||||||||||
51 | Built-in parameterizable theme engine | x | x | - | - | - | - | - | - | x | - | through look and feel | ||||||||||||
52 | Themeable with CSS | x | x | x | x | x | x | x | x | x | Yes, with limitations | - | ||||||||||||
53 | Themeable with Sass (SCSS) | x | x | x | - | x | x | x | x | - | - | - | ||||||||||||
54 | Built-in ready-made themes | 2 | 5 | 0 | 0 | 40 | 0 | 6 | 4 | 4 | 1 | through look and feel | ||||||||||||
55 | ||||||||||||||||||||||||
56 | Components | |||||||||||||||||||||||
57 | Data grid component | x | x | x | - | x | - | x | x | x | x | x | ||||||||||||
58 | Spreadsheet component | x | x | - | - | - | - | - | - | - | - | - | ||||||||||||
59 | Tree component | Single-colum TreeGrid | x | x | - | x | - | x | x | x | x | x | ||||||||||||
60 | Treetable component | x | x | x | - | x | - | x | x | x | x | x | ||||||||||||
61 | Charting components | x | x | - | - | x | x | - | x | x | x | x | ||||||||||||
62 | Drag n drop layouts and components | x | x | - | - | x | - | - | x | x | x | x | ||||||||||||
63 | Mobile optimized components | x | x | - | - | x | x | - | x | x | - | - | ||||||||||||
64 | Support for Web Components | x | x | x | x | x | x | x | x | x | - | - | ||||||||||||
65 | # of out of the box component widgets | *** | *** | * | * | **** | ** | ** | ** | ***** | **** | **** | ||||||||||||
66 | ||||||||||||||||||||||||
67 | COMMUNITY | |||||||||||||||||||||||
68 | Community add-on libraries | 1,010 | 754 | ? | N/A | ? | ? | ? | ? | ? | ? | N/A | ||||||||||||
69 | Forum/mailinglist message activity /month | 2,000 | 2,000 | 310 | N/A | ? | ? | ? | 250 | ? | 39 | N/A | ||||||||||||
70 | StackOverflow questions | 4,724 | 4,724 | 114,960 | 29,470 | 17,433 | 87,858 | 2,860 | 19,250 | 1,140 | 13,850 | 72,809 | ||||||||||||
71 | GitHub projects | 2,340 | 2,340 | 44,120 | ? | 1,280 | ? | 1,160 | 5,000 | 160 | 4,160 | 15,000 | ||||||||||||
72 | Twitter followers | 6,705 | 6,705 | 303,000 | N/A | 7,250 | 276,000 | 1,657 | ? | ? | N/A | N/A | ||||||||||||
73 | ||||||||||||||||||||||||
74 | IDEs | |||||||||||||||||||||||
75 | Eclipse plugin available | x | x | x | x | - | x | x | x | - | x | x | ||||||||||||
76 | IntelliJ plugin available | x | x | x | x | - | x | x | x | - | x | x | ||||||||||||
77 | Netbeans plugin available | x | x | x | x | x | x | x | x | - | x | x | ||||||||||||
78 | Visual Designer availalble | https://vaadin.com/designer | https://vaadin.com/designer | - | - | - | - | - | - | - | x | x | ||||||||||||
79 | ||||||||||||||||||||||||
80 | Integration | |||||||||||||||||||||||
81 | Supported Java EE integration library | x | x | N/A | x | x | N/A | x | - | - | x | N/A | ||||||||||||
82 | Supported Spring integration library | x | x | N/A | x | - | N/A | x | - | - | - | x | ||||||||||||
83 | OSGi compatible | x | x | N/A | x | x | N/A | x | - | - | x | x | ||||||||||||
84 | Maven based dependency management | x | x | N/A | x | x | N/A | x | x | x | x | x | ||||||||||||
85 | Gradle based dependency management | x | - | N/A | - | - | N/A | - | - | - | - | x | ||||||||||||
86 | Maven archetypes | x | x | N/A | x | - | N/A | x | x | x | x | not needed since inside JSE | ||||||||||||
87 | ||||||||||||||||||||||||
88 | Browser support | |||||||||||||||||||||||
89 | IE8 | - | x | - | N/A | - | - | - | - | - | - | N/A | ||||||||||||
90 | IE9+ | IE11 Only | x | x | N/A | x | (with polyfills) | x | x | x | x | N/A | ||||||||||||
91 | Microsoft Edge | x | x | x | N/A | - | x | x | x | x | - | N/A | ||||||||||||
92 | Chrome | x | x | x | N/A | x | x | x | x | x | - | N/A | ||||||||||||
93 | Firefox | x | x | x | N/A | x | x | x | x | x | - | N/A | ||||||||||||
94 | Safari | x | x | x | N/A | x | x | x | x | x | - | N/A | ||||||||||||
95 | Opera | x | x | x | N/A | ? | x | x | x | x | x | N/A | ||||||||||||
96 | Mobile Safari | x | x | x | N/A | ? | x | ? | x | x | - | N/A | ||||||||||||
97 | Mobile Chrome | x | x | x | N/A | ? | x | ? | x | x | - | N/A | ||||||||||||
98 | ||||||||||||||||||||||||
99 | EXTENDABILITY | |||||||||||||||||||||||
100 | Possibility to extend existing components with Java | x | Server-side compositions, extend components server-side and extend client-side with GWT | - | JSF doesn't encourage extending existing components | JSF doesn't encourage extending existing components | - | Yes | Yes | Yes | Yes | Yes |