GWT, SaaS, technology

Why GWT is our framework of choice

Why GWT is our framework of choice There are many things that drive the framework choice. Nuospace is quite a challenge technically. Web applications have become very interactive and we were solving to the best possible user experience to be competitive.

We have started the development of our new product, Nuospace enterprise wiki about a year ago. We wanted to give business users an ability to collaborate on any type of document, be it a wiki page or a Word document, easily and efficiently right from their browsers.

Nuospace was also a challenge from the technical perspective. Web applications have become much more interactive and we had to keep up with the trends to provide users with the best experience possible. Almost immediately we faced a huge issue of choosing an underlying web technology. Building rich interactive web application is hardly easy, so the right technology choice is crucial for project’s success, especially for a small self-funded startup.

There are many things that drive the framework choice. Arguably there is no single framework that is suitable for any usage scenario or application. For us the most essential where the following factors:

  • outstanding user experience
  • the ease of development
  • experience in the technology of choice
  • ability to resolve potential issues quickly and effectively
  • vibrant user community and quick development of the framework itself
  • reuse facilities
  • scalability
  • having fun 🙂

We have evaluated many solutions besides GWT: Ruby on Rails, jQuery on the client/Java on the server, Echo framework to name a few. In the outcome GWT was a clear winner:

  • GWT applications provide true interactivity with lots of code being executed on the client, reducing server-side interaction to a minimum.
    Our application indeed feels the most responsive compared to anything we have ever done before. I believe this is the most important differentiator as user experience may become the key in “buy/no buy” decision.
  • GWT is extremely easy to use, especially for Java veterans.
    We have been developing in Java for many years and while other platforms do offer many benefits (Ruby, for instance), I think that experience is one of the key productivity factors.
  • JavaScript development is far from being mature.
    There are no IDEs and debugging is pretty weak. GWT provides all the benefits of Java development – excellent IDE support with advanced debugging capabilities allowing us to code in Java only. But when we have to use JavaScript – it is pretty easy to code and integrate into the application using JSNI (JavaScript Native Interface).
  • Java frameworks like Hibernate are very rich and powerful, giving us both fast development and high performance.
  • The framework is being actively developed with cool features being added for each release. The newsgroups are active; it is very easy to find solutions to any problems by means of a simple search.
  • GWT is fun to work with.
    I believe this is a critical factor for any technology choice. The “fun” factor or absence thereof may drive or suppress motivation – the single most important productivity factor. Most of our application is plain Java code; components allow for easy and powerful reuse encapsulating parts of the UI layer into self-contained pieces; the UI is slick and very quick making all the developer feel very good about the results of their hard work.

Almost a year has passed since we launched the project on GWT and we are very happy with the framework choice. I would like to say “Thank you” to GWT team for their great work!

Advertisements
Standard

4 thoughts on “Why GWT is our framework of choice

  1. companyranjan says:

    I am also thinking about using GWT for my future project. I wanted to know what limitation s did you had to face as far JavaScript is concerned also after this much amount of time what are the benefits in terms of speed , maintainability that you are seeing.

  2. We have not had much issues with JavaScript. GWT supports easy integration with JavaScript code through JSNI (JavaScript Native Interface) that allows to easily plug-in JavaScript code into the application including third-party libraries. For instance, we are using script.aculo.us in Nuospace.

    For us the greatest disadvantage of GWT has been slow compilation. The compile time grows with application size especially after adding localization. The compilation process does not support multiple CPUs so there’s not much gain from the new multi-core processors.

    Another important issue is HTML design integration. It is quite inconvenient to use arbitrary HTML with GWT. We solve this buy heavy relying on CSS which has its own benefits whether using GWT or some other framework. Very simple control creation also helps here – we create lots of custom controls, from simple buttons to application fragments. Working this way in Java environment is very convenient – IDEs support Java code very well allowing navigation, refactoring, unit testing etc.

    GWT is well built. Standard controls are very easy to use and easy to grasp quickly due to thought-out and intuitive APIs. The code is of very high quality, easy to understand and to hack :). If built-in control does not suite you – just copy the code into custom control and change what is needed.

    So overall we are happy with the framework. In my personal opinion GWT is one of the best Java web frameworks out there.

  3. korebantic says:

    @amaslov GWT is not really a web framework — it’s a framework for building web based user interfaces (I realize it has some server side components). You need a whole lot more than just GWT to roll out a top notch web application…

    If you want to compare GWT with Rails then you need to add just a “few” things to that comparison. Here is a better way to compare GWT against Rails:

    * GWT + Hibernate + Spring + SpringMVC Rails
    * GWT + EJB3.0 + Struts Rails
    * GWT + Toplink + Wicket Rails

    And that’s just off the top of my head. I’m sure we could name a pretty lengthy list of java frameworks you need to create a web app.

    In fact you can use Rails with GWT. We have found this combination quite effective. You just need to know how to marry your Fundamentalist Christianity with your Neo-Paganism (http://www.aegisub.net/2008/12/if-programming-languages-were-religions.html)

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s