Need advice about which tool to choose?Ask the StackShare community!
GWT vs Blazejs: What are the differences?
What is GWT? *An open-source set of tools to create and maintain complex JavaScript front-end applications *. It is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript.
What is Blazejs? *Powerful library for creating user interfaces *. It is a powerful library for creating user interfaces by writing reactive HTML templates. Compared to using a combination of traditional templates and jQuery, it eliminates the need for all the “update logic” in your app that listens for data changes and manipulates the DOM.
GWT belongs to "Javascript MVC Frameworks" category of the tech stack, while Blazejs can be primarily classified under "Javascript UI Libraries".
Blazejs is an open source tool with 438 GitHub stars and 89 GitHub forks. Here's a link to Blazejs's open source repository on GitHub.
React was a very contentious decision among the Meteor community. We started off with Blazejs, which itself was based off of Handlebars. We liked the HTML-like syntax of Blaze and how nurses, doctors, and other clinicians could become familiar with it. However, the code wasn't very reusable and it was neither modular nor composeable nor testable, and became a major headache to maintain. React solves the problems of composeability and reusability and testing isolation, at the price of having worked the problem backwards and having wound up with a quirky syntax that runs within Javascript that looks similar to HTML but isn't. Nonetheless, React is quickly become a classic example of functional programming techniques, what with its' pure components. All in all, an enjoyable technology to work with that brings some sanity to front-end user interfaces.
We chose React on the advice of the Meteor Development Group, which acts as our upstream technical advisors. We had a prior investment in BlazeJS, due to it's optimistic UI, latency compensation, and real-time updates. However, the BlazeJS code wasn't composable and didn't lead to good reuse, as it was already overly abstracted. It also carried with it a lot of baggage from the default HTML DOM. We have enjoyed React's functional components, deterministic rendering, testability, composability, and widespread support. It's taken some time to get used to, but fits in very well with a functional programming style. We had also taken a look at AngularJS components, but they were always half-baked in comparison to the active React community.