Alternatives to GWT logo

Alternatives to GWT

JavaFX, Vaadin, Angular, Spring, and Dart are the most popular alternatives and competitors to GWT.
88
100
+ 1
0

What is GWT and what are its top alternatives?

Google Web Toolkit (GWT) is a comprehensive framework that allows developers to build and optimize complex web applications in Java. It offers features like cross-browser compatibility, rich user interfaces, and code reusability. However, GWT has limitations in terms of performance optimization and lacks modern JavaScript framework integrations.

  1. Vaadin: Vaadin is a Java framework for building modern web applications that provides a complete set of customizable UI components. It offers a seamless integration with popular Java IDEs and tools. Pros: Rapid application development, rich component library. Cons: Steeper learning curve than GWT.

  2. AngularDart: AngularDart is a web app framework based on Dart and Angular that allows for building high-performance web applications. Key features include two-way data binding and dependency injection. Pros: Better performance, deep integration with Angular ecosystem. Cons: Limited Java support compared to GWT.

  3. ReactJS: React is a JavaScript library for building user interfaces that focuses on single-page applications. It offers a component-based architecture and virtual DOM for efficient rendering. Pros: Lightweight, vibrant community support. Cons: Requires additional tooling for full-stack development like servlets in GWT.

  4. Vue.js: Vue.js is a progressive JavaScript framework for building interactive web interfaces. It features a simple and flexible API and is lightweight compared to other frameworks. Pros: Easy to learn, gradual integration into existing projects. Cons: Less mature ecosystem than GWT.

  5. Polymer: Polymer is a JavaScript library that simplifies building web applications using Web Components. It provides a set of ready-to-use elements for fast development. Pros: Encourages component-based architecture, enhances reusability. Cons: Requires familiarity with Web Components standards.

  6. Lit: Lit is a lightweight library for building fast, lightweight web components using lit-html templating. It prioritizes performance and functionality, making it suitable for scalable applications. Pros: Minimalist approach, efficient DOM updates. Cons: Limited documentation compared to GWT.

  7. Thymeleaf: Thymeleaf is a modern server-side Java template engine for web and standalone environments. It offers natural template semantics and integrates well with popular Java frameworks. Pros: Seamless integration with Java ecosystem, easy to learn. Cons: Limited support for complex client-side interactions compared to GWT.

  8. Svelte: Svelte is a radical new approach to building web applications with JavaScript that compiles code that updates the DOM when the state changes. It eliminates the need for a virtual DOM, resulting in leaner and faster applications. Pros: Minimal boilerplate, high performance. Cons: Relatively new, smaller community compared to GWT.

  9. Grails: Grails is a full-stack web development framework for the JVM that combines the power of Groovy and Spring Boot. It simplifies Java web development by providing convention over configuration and seamless integration with popular Java tools. Pros: Rapid development, extensive plugin ecosystem. Cons: Might be overkill for smaller applications compared to GWT.

  10. Play Framework: Play Framework is a lightweight, stateless web application framework that supports Java and Scala. It offers high development productivity with built-in testing and development tools. Pros: Scalability, asynchronous I/O support. Cons: Steeper learning curve for Java developers transitioning from GWT.

Top Alternatives to GWT

  • JavaFX
    JavaFX

    It is a set of graphics and media packages that enables developers to design, create, test, debug, and deploy rich client applications that operate consistently across diverse platforms. ...

  • Vaadin
    Vaadin

    It is the fastest way to build web applications in Java. It automates the communication between your server and the browser and gives you a high-level component API for all Vaadin components ...

  • Angular
    Angular

    It is a TypeScript-based open-source web application framework. It is a development platform for building mobile and desktop web applications. ...

  • Spring
    Spring

    A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments. ...

  • Dart
    Dart

    Dart is a cohesive, scalable platform for building apps that run on the web (where you can use Polymer) or on servers (such as with Google Cloud Platform). Use the Dart language, libraries, and tools to write anything from simple scripts to full-featured apps. ...

  • React
    React

    Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project. ...

  • JSF
    JSF

    It is used for building component-based user interfaces for web applications and was formalized as a standard through the Java Community ...

  • Blazor
    Blazor

    Blazor is a .NET web framework that runs in any browser. You author Blazor apps using C#/Razor and HTML. ...

GWT alternatives & related posts

JavaFX logo

JavaFX

280
414
10
A Java library for building Rich Internet Applications
280
414
+ 1
10
PROS OF JAVAFX
  • 10
    Light
CONS OF JAVAFX
  • 1
    Community support less than qt
  • 1
    Complicated

related JavaFX posts

Farrukh Waheed
Configuration Management Engineer · | 4 upvotes · 11.6K views
Shared insights
on
JavaFXJavaFXSwingvySwingvy

Hi experts, I need to write a GUI app that would configure a .json file. I am considering it to be cross-platform with as much as less dependency as possible i.e. once build/compiled, it should be running on the maximum number of OS platforms without re-building or re-compiling. So up till now, I've shortlisted 3 selected frameworks. The Swingvy was to be Java Swing but was not in the list. And after reading some stuff, I think that Java Swing or JavaFX should do the job. But I need suggestions/opinions from you experts, which would be a great help in order to achieve a precise decision. Any help/suggestion would be really appreciated. Thanks a bunch

See more
Shared insights
on
JavaFXJavaFXElectronElectron

I create desktop applications that use a database for storing data. My applications are used as management tools in supermarkets, stores, warehouses, and other places. I don't know which one to use; Electron or JavaFX. Can anyone advise me on this matter?

See more
Vaadin logo

Vaadin

194
277
36
Components and tools for building web apps in Java
194
277
+ 1
36
PROS OF VAADIN
  • 9
    Java
  • 7
    Compatibility
  • 6
    Components
  • 6
    Open Source
  • 3
    Performance
  • 2
    Example packages
  • 2
    Abstraction
  • 1
    OSGI Support
CONS OF VAADIN
  • 3
    Paid for more features

related Vaadin posts

Angular logo

Angular

1.7K
4.7K
499
A platform for building mobile and desktop web applications
1.7K
4.7K
+ 1
499
PROS OF ANGULAR
  • 109
    It's a powerful framework
  • 53
    Straight-forward architecture
  • 48
    TypeScript
  • 45
    Great UI and Business Logic separation
  • 40
    Powerful, maintainable, fast
  • 39
    Amazing CLI
  • 33
    Great mvc
  • 29
    Powerfull Dependency Injection
  • 19
    Easy to build
  • 16
    All in one Framework
  • 15
    Opinionated, batteries-included approach
  • 11
    Schematics
  • 10
    Solid Standard Setup.
  • 8
    Structured
  • 7
    Performance
  • 5
    Complex
  • 4
    Only for single page applications
  • 3
    Builders
  • 2
    RxJS
  • 2
    Ng upgrade
  • 1
    React
CONS OF ANGULAR
  • 9
    Overcomplicated
  • 9
    Large overhead in file size and initialization time
  • 2
    Ugly code
  • 2
    CLI not open to other test and linting tools

related Angular posts

Eyas Sharaiha
Software Engineer at Google · | 28 upvotes · 1.1M views
Shared insights
on
TypeScriptTypeScriptAngularAngularRxJSRxJS
at

One TypeScript / Angular 2 code health recommendation at Google is how to simplify dealing with RxJS Observables. Two common options in Angular are subscribing to an Observable inside of a Component's TypeScript code, versus using something like the AsyncPipe (foo | async) from the template html. We typically recommend the latter for most straightforward use cases (code without side effects, etc.)

I typically review a fair amount of Angular code at work. One thing I typically encourage is using plain Observables in an Angular Component, and using AsyncPipe (foo | async) from the template html to handle subscription, rather than directly subscribing to an observable in a component TS file.

Subscribing in components

Unless you know a subscription you're starting in a component is very finite (e.g. an HTTP request with no retry logic, etc), subscriptions you make in a Component must:

  1. Be closed, stopped, or cancelled when exiting a component (e.g. when navigating away from a page),
  2. Only be opened (subscribed) when a component is actually loaded/visible (i.e. in ngOnInit rather than in a constructor).

AsyncPipe can take care of that for you

Instead of manually implementing component lifecycle hooks, remembering to subscribe and unsubscribe to an Observable, AsyncPipe can do that for you.

I'm sharing a version of this recommendation with some best practices and code samples.

#Typescript #Angular #RXJS #Async #Frontend

See more
Praveen Mooli
Engineering Manager at Taylor and Francis · | 18 upvotes · 3.8M views

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

See more
Spring logo

Spring

3.9K
4.7K
1.1K
Provides a comprehensive programming and configuration model for modern Java-based enterprise applications
3.9K
4.7K
+ 1
1.1K
PROS OF SPRING
  • 230
    Java
  • 157
    Open source
  • 136
    Great community
  • 123
    Very powerful
  • 114
    Enterprise
  • 64
    Lot of great subprojects
  • 60
    Easy setup
  • 44
    Convention , configuration, done
  • 40
    Standard
  • 31
    Love the logic
  • 13
    Good documentation
  • 11
    Dependency injection
  • 11
    Stability
  • 9
    MVC
  • 6
    Easy
  • 3
    Makes the hard stuff fun & the easy stuff automatic
  • 3
    Strong typing
  • 2
    Code maintenance
  • 2
    Best practices
  • 2
    Maven
  • 2
    Great Desgin
  • 2
    Easy Integration with Spring Security
  • 2
    Integrations with most other Java frameworks
  • 1
    Java has more support and more libraries
  • 1
    Supports vast databases
  • 1
    Large ecosystem with seamless integration
  • 1
    OracleDb integration
  • 1
    Live project
CONS OF SPRING
  • 15
    Draws you into its own ecosystem and bloat
  • 3
    Verbose configuration
  • 3
    Poor documentation
  • 3
    Java
  • 2
    Java is more verbose language in compare to python

related Spring posts

Is learning Spring and Spring Boot for web apps back-end development is still relevant in 2021? Feel free to share your views with comparison to Django/Node.js/ ExpressJS or other frameworks.

Please share some good beginner resources to start learning about spring/spring boot framework to build the web apps.

See more

I am consulting for a company that wants to move its current CubeCart e-commerce site to another PHP based platform like PrestaShop or Magento. I was interested in alternatives that utilize Node.js as the primary platform. I currently don't know PHP, but I have done full stack dev with Java, Spring, Thymeleaf, etc.. I am just unsure that learning a set of technologies not commonly used makes sense. For example, in PrestaShop, I would need to work with JavaScript better and learn PHP, Twig, and Bootstrap. It seems more cumbersome than a Node JS system, where the language syntax stays the same for the full stack. I am looking for thoughts and advice on the relevance of PHP skillset into the future AND whether the Node based e-commerce open source options can compete with Magento or Prestashop.

See more
Dart logo

Dart

3.8K
3.6K
452
A new web programming language with libraries, a virtual machine, and tools
3.8K
3.6K
+ 1
452
PROS OF DART
  • 59
    Backed by Google
  • 53
    Flutter
  • 39
    Twice the speed of Javascript
  • 35
    Great tools
  • 30
    Scalable
  • 27
    Open source
  • 26
    Made for the future
  • 25
    Can be used on Frontend
  • 22
    Polymer Dart
  • 22
    Angular Dart
  • 18
    Cross platform
  • 16
    Like Java
  • 14
    Easy to learn
  • 13
    Dartanalyzer
  • 12
    Runs on Google Cloud Platform
  • 10
    Easy to Understand
  • 9
    Amazing concurrency primitives
  • 8
    Is to JS what C is to ASM
  • 7
    Flutter works with darts
  • 3
    R
  • 3
    Can run Dart in AWS Lambda
  • 1
    Looks familiar, with purposely implemented features
CONS OF DART
  • 3
    Lack of ORM
  • 3
    Locked in - JS or TS interop is very hard to accomplish
  • 0
    A

related Dart posts

The only two programming languages I know are Python and Dart, I fall in love with Dart when I learned about the type safeness, ease of refactoring, and the help of the IDE. I have an idea for an app, a simple app, but I need SEO and server rendering, and I also want it to be available on all platforms. I can't use Flutter or Dart anymore because of that. I have been searching and looks like there is no way to avoid learning HTML and CSS for this. I want to use Supabase as BASS, at the moment I think that I have two options if I want to learn the least amount of things because of my lack of time available:

  1. Quasar Framework: They claim that I can do all the things I need, but I have to use JavaScript, and I am going to have all those bugs with a type-safe programming language avoidable. I guess I can use TypeScript?, but that means learning both, and I am not sure if I will be able to use 100% Typescript. Besides Vue.js, Node.js, etc.

  2. Blazor and .NET: There is MAUI with razor bindings in .Net now, and also a Blazor server. And as far as I can see, the transition from Dart to C# will be easy. I guess that I have to learn some Javascript here and there, but I have to less things I guess, am I wrong? But Blazor is a new technology, Vue is widely used.

See more
Shared insights
on
DartDartFlutterFlutter

Hi, I'm considering building a social marketplace app on android, ios and web, Flutter seems to be a good UI framework for cross-platform apps, it's safe type, hot reload, and native compiling on native machine code (thanks to Dart). My question is, for an MVP product is it a good choice? if yes, will it be on the mid-term, long term? Or will I have to change as the users grow?

thank you

See more
React logo

React

168.6K
139.4K
4.1K
A JavaScript library for building user interfaces
168.6K
139.4K
+ 1
4.1K
PROS OF REACT
  • 830
    Components
  • 672
    Virtual dom
  • 578
    Performance
  • 507
    Simplicity
  • 442
    Composable
  • 186
    Data flow
  • 166
    Declarative
  • 128
    Isn't an mvc framework
  • 120
    Reactive updates
  • 115
    Explicit app state
  • 50
    JSX
  • 29
    Learn once, write everywhere
  • 22
    Easy to Use
  • 21
    Uni-directional data flow
  • 17
    Works great with Flux Architecture
  • 11
    Great perfomance
  • 10
    Javascript
  • 9
    Built by Facebook
  • 8
    TypeScript support
  • 6
    Speed
  • 6
    Server Side Rendering
  • 5
    Feels like the 90s
  • 5
    Excellent Documentation
  • 5
    Props
  • 5
    Functional
  • 5
    Easy as Lego
  • 5
    Closer to standard JavaScript and HTML than others
  • 5
    Cross-platform
  • 5
    Easy to start
  • 5
    Hooks
  • 5
    Awesome
  • 5
    Scalable
  • 4
    Super easy
  • 4
    Allows creating single page applications
  • 4
    Server side views
  • 4
    Sdfsdfsdf
  • 4
    Start simple
  • 4
    Strong Community
  • 4
    Fancy third party tools
  • 4
    Scales super well
  • 3
    Has arrow functions
  • 3
    Beautiful and Neat Component Management
  • 3
    Just the View of MVC
  • 3
    Simple, easy to reason about and makes you productive
  • 3
    Fast evolving
  • 3
    SSR
  • 3
    Great migration pathway for older systems
  • 3
    Rich ecosystem
  • 3
    Simple
  • 3
    Has functional components
  • 3
    Every decision architecture wise makes sense
  • 3
    Very gentle learning curve
  • 2
    Split your UI into components with one true state
  • 2
    Recharts
  • 2
    Permissively-licensed
  • 2
    Fragments
  • 2
    Sharable
  • 2
    Image upload
  • 2
    HTML-like
  • 1
    React hooks
  • 1
    Datatables
CONS OF REACT
  • 40
    Requires discipline to keep architecture organized
  • 29
    No predefined way to structure your app
  • 28
    Need to be familiar with lots of third party packages
  • 13
    JSX
  • 10
    Not enterprise friendly
  • 6
    One-way binding only
  • 3
    State consistency with backend neglected
  • 3
    Bad Documentation
  • 2
    Error boundary is needed
  • 2
    Paradigms change too fast

related React posts

Johnny Bell

I was building a personal project that I needed to store items in a real time database. I am more comfortable with my Frontend skills than my backend so I didn't want to spend time building out anything in Ruby or Go.

I stumbled on Firebase by #Google, and it was really all I needed. It had realtime data, an area for storing file uploads and best of all for the amount of data I needed it was free!

I built out my application using tools I was familiar with, React for the framework, Redux.js to manage my state across components, and styled-components for the styling.

Now as this was a project I was just working on in my free time for fun I didn't really want to pay for hosting. I did some research and I found Netlify. I had actually seen them at #ReactRally the year before and deployed a Gatsby site to Netlify already.

Netlify was very easy to setup and link to my GitHub account you select a repo and pretty much with very little configuration you have a live site that will deploy every time you push to master.

With the selection of these tools I was able to build out my application, connect it to a realtime database, and deploy to a live environment all with $0 spent.

If you're looking to build out a small app I suggest giving these tools a go as you can get your idea out into the real world for absolutely no cost.

See more
Zach Holman

Oof. I have truly hated JavaScript for a long time. Like, for over twenty years now. Like, since the Clinton administration. It's always been a nightmare to deal with all of the aspects of that silly language.

But wowza, things have changed. Tooling is just way, way better. I'm primarily web-oriented, and using React and Apollo together the past few years really opened my eyes to building rich apps. And I deeply apologize for using the phrase rich apps; I don't think I've ever said such Enterprisey words before.

But yeah, things are different now. I still love Rails, and still use it for a lot of apps I build. But it's that silly rich apps phrase that's the problem. Users have way more comprehensive expectations than they did even five years ago, and the JS community does a good job at building tools and tech that tackle the problems of making heavy, complicated UI and frontend work.

Obviously there's a lot of things happening here, so just saying "JavaScript isn't terrible" might encompass a huge amount of libraries and frameworks. But if you're like me, yeah, give things another shot- I'm somehow not hating on JavaScript anymore and... gulp... I kinda love it.

See more
JSF logo

JSF

135
222
4
It is used for building component-based web interfaces
135
222
+ 1
4
PROS OF JSF
  • 2
    Rich and comprehensive Request Life-cycle
  • 1
    Very Mature UI framework
  • 1
    Server Side component
CONS OF JSF
    Be the first to leave a con

    related JSF posts

    Hello guys, my first time here, and for requesting advice.

    I am a JavaScript Developer MERN Stack with a focus on Frontend Development. I wanna go more to Backend Development.

    Which Language has a Solid Ecosystem and not so many changes like JavaScript Frontend, quite Frankly that's freaking me out nowadays!

    In my Location Germany Industries, Finance, Utilities, Insurances, Retails, and Healthcare dominate Java in the Backend. In my case Java is the logical choice BUT, XML, old codebase, JSP/JSF , boring and verbose syntax without Syntactic Sugar, test Battle, and so on make me crazy.

    I have Java, Python, Golang, and Node.js/TypeScript as a choice, but because of a lack of Backend knowledge, I can't make a decision. Which Language and Ecosystem should I learn and master for a long time, my Goal is to work with a selected stack for 10+ years and I don't do Data Science only Software Engineering.

    Thanks for reading and Advice! Important! !!! I see via Email somebody send me an Advice, but unfortunately i can't see/read your Advice here :( Users like: Jose Manuel Ortega or nullStack65....

    See more

    Hello guys! I would ask for your advice. Our situation is like that there will be a project to revamp workflows and introduce new services like mobile apps, machine learning, and some online services that would use cloud storage. We use JSF, JavaScript, Ajax, Spring, Oracle 12c running on Linux (VM) and providing online services to internal users and the public. But, we are not technically savvy enough to evaluate what tools should be introduced. Personally, I am evaluating whether to take this opportunity to change our practice/PM approach from Prince to Scrum/Agile (It seemed that DevOps is popular) ... Since we adopt ISO 27001 and ISO 20000, security is a crucial factor that we consider. Would you please help to recommend a list of tools and explain the reasons why you recommend them? Thanks in advance~!

    See more
    Blazor logo

    Blazor

    515
    694
    440
    An experimental web UI framework using C#/Razor and HTML, running in the browser via WebAssembly
    515
    694
    + 1
    440
    PROS OF BLAZOR
    • 62
      Uses C#
    • 48
      No need to learn separate language or technology
    • 41
      Supports making a single page application
    • 39
      Tight integration with .NET project
    • 37
      Uses .NET standard library
    • 30
      Very little JavaScript required
    • 29
      Components
    • 27
      Shared classes between client and server
    • 27
      No need to compile, bundle and deploy separately
    • 24
      Cross Platform
    • 21
      Has Server AND Client hosting models
    • 18
      Very easy JavaScript interop if required
    • 17
      Third party state management i.e. Blazor-State
    • 14
      App state can be managed singleton objects
    • 4
      Portable Code across Mobile, Web and Desktop
    • 2
      Work with Electron/MAUI
    CONS OF BLAZOR
    • 4
      Initial load time
    • 2
      Hard to inject javascript

    related Blazor posts

    The only two programming languages I know are Python and Dart, I fall in love with Dart when I learned about the type safeness, ease of refactoring, and the help of the IDE. I have an idea for an app, a simple app, but I need SEO and server rendering, and I also want it to be available on all platforms. I can't use Flutter or Dart anymore because of that. I have been searching and looks like there is no way to avoid learning HTML and CSS for this. I want to use Supabase as BASS, at the moment I think that I have two options if I want to learn the least amount of things because of my lack of time available:

    1. Quasar Framework: They claim that I can do all the things I need, but I have to use JavaScript, and I am going to have all those bugs with a type-safe programming language avoidable. I guess I can use TypeScript?, but that means learning both, and I am not sure if I will be able to use 100% Typescript. Besides Vue.js, Node.js, etc.

    2. Blazor and .NET: There is MAUI with razor bindings in .Net now, and also a Blazor server. And as far as I can see, the transition from Dart to C# will be easy. I guess that I have to learn some Javascript here and there, but I have to less things I guess, am I wrong? But Blazor is a new technology, Vue is widely used.

    See more