Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I consider myself a decent java/web developer. In my career I have always used servlets and ejb's with a web front end, most recently incoporating jquery and ajax.

I can see the theoretical benefit of using GWT or Vaadin: it is my understanding they convert Java code to the required JavaScript/HTML. So the developer gets the benefit of cross browser compatibility and compile time error checking (of web GUI elements).

My question is threefold:

  1. Are there any other benefits I am missing that would be gained using Vaadin or GWT?
  2. I am actually quite confident and productive using HTML and JavaScript - so will I actually see any benefit? Or will it just make my knowledge of these areas redundant (as they are handled by GWT/Vaadin)?
  3. Will the end result be that I can create enterprise scale data driven websites in a reasonably short time? I can however already do this, and I have not wasted any time learning GWT/Vaadin.
share|improve this question

closed as not constructive by gnat, ChrisF Feb 10 '13 at 12:06

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
Someone who works for a company who's flagship (and only, for now) product is written in GWT told me that, if you're not reaping the benefit of the Java ecosystem and leveraging a full Java stack from front to back (so you can do awesome things like debugging the full stack at once), it's probably not worth it. –  Brandon Tilley Mar 14 '11 at 2:41
    
@Brandon Tilley That were exactely my experiences with GWT. Besides, it's not very well suited for small sized projects (which is okay, as it is intended for large-size apps). –  Oliver Weiler Nov 15 '11 at 9:25
    
Why GWT OR Vaadin? Vaadin is based on GWT, it is a framework like Sencha GXT or SmartGWT, just a bit different in its approach, but still rooted on GWT. –  PhiLho Oct 26 '12 at 9:15
    
@PhiLho I was not aware vaadin was based on GWT, I'm pretty sure it isn't actually. Never heard of the others, but yes they look interesting. –  NimChimpsky Oct 26 '12 at 9:18
    
vaadin.com/fr/features -- "Based on Google Web Toolkit (GWT)" Some adaptation is needed but you can use GWT components in Vaadin. –  PhiLho Oct 29 '12 at 15:10
add comment

6 Answers 6

up vote 3 down vote accepted

So the develoepr gets the benefit of cross browser compatibility and compile time error checking (of web gui elements). My question is three fold, are there any other benefits I am missing that would be gained using Vaadin or GWT ?

You also get hosted mode debugging, so you can step in and out of server code from your client.

Also, you may find you insulate yourself from changes that will come about with evolution of browsers, HTML & Javascript. If your code is all GWT then you just rely on Google to keep up for you.

Secondly, I am actually quite confident and productive using html and javascript - so will I actually see any benefit ? Or will it just make my knowledge of these areas redundant (as they are handled by gwt/vaadin) ?

I doubt you will be a lot more productive. It depends maybe on how good you are at writing Java UI code. I prefer Javascript frankly.

Knowledge would not be totally redundant - its always better to know how things work under the hood.

Will the end result be that I can create enterprise scale data driven websites in a reasonably short time? I can however already do this, and I have not wasted any time learning GWT/Vaadin.

Unless you just really want those letters on your resume I don't see why you would do this right now. I'd wait and see if the market really moves much in that direction.

share|improve this answer
1  
It also depends on the complexity of the projects. GWT/Vaadin might decrease the development time (and sometimes get you more money from client :) ). –  Denys S. Feb 9 '11 at 16:22
add comment

Java is statically typed which in my experience make for more robust programs. So GWT get this benefit from Java plus All the Eclipse refactoring, as well as the runtime advantages of Javascript. That is in my opinion a very powerful combination.

share|improve this answer
    
The benefits of statically typed vanishes if you test your code properly. –  froderik Mar 5 '12 at 11:16
2  
@froderik Words are cheap. How do you measure if you do it "properly"? –  user1249 Mar 5 '12 at 11:45
    
Good point. I think it is possible to build robust programs with javascript but it requires a more disciplined approach to automated test than what is found in most organisations. I think GWT is a good choice for many large organisations that may have a hard time finding relevant web expertise and where full control over the web interface is less important. –  froderik Mar 5 '12 at 15:35
add comment

we had same situation last year, and then we decided to go with gwt for our new project and it was a great experience. of course your js knowledge will be added advantage as you can integrate js code in gwt (native javascript). the things we achieved out of that project were performance, relatively fast development, and great maintainability. i think its worth investing time.

in our current jee project we started with jsf 2.0 as presentation layer but we ended with vaadin because of some reasons. its just been very few days, lets see how it will go.

share|improve this answer
add comment

We are using GWT for almost 3 years now and we developed media and also business typed application. I'm currently using pure JavaScript (with help of jQuery ofcourse).

My opinion is, that GWT can be very useful for debugging, but it can be very slow - specially when your project becomes huge. You have to be very careful to use code splitting and features like that to decrease load of client side code at startup. But anyway, if your client side code becomes huge, you will wait for long time before application reloads. Maybe SSD hard drive would be nessessary for developer which is using GWT.

If you are developing business kind of application I think you should use GWT, but for other types of apps you dhould stay with JavaScript.

We tried Vaadin a little and we have been very surprised how fast reload apply, but I can't say how useful it is - we didn't tried it enough to give that opinion.

share|improve this answer
add comment

Can't tell anything about Vaadin, but here what I think about GWT:

GWT compiler will not only compile java to javascript, but also JS and java code optimizer. About GWT compiler you can see nice presentation here.

If you are confident with Jasascript and can easy create heavy AJAX based web applications using JS and Html, then I suppose you wouldn't see much difference in development speed, but for developers(with Java background) with not so good JS knowledge (like me for example) this could be a life savior when developing AJAX based web application. Working with GWT you will not write JS code very often. So I suggest if you have some free time to spare to learn GWT you can do it, but if you already creating enterprise AJAX applications with javascript and html in reasonably short time then you would not see much difference between development using Js/Html or GWT.

share|improve this answer
add comment

I have used both Vaadin AND GWT on several projects. They work in very different ways:

Vaadin - You code only on the server side and the Vaadin framework handles all of the client server communication. As a result Vaadin applications tend to be very "chatty" with respect to client/server communication. Also the Vaadin framwork is quite a large download. However Vaadin let me develop faster than any other web framework I have ever used since you do not have to program in both the client and the server, only the server. But because of the chattiness and the download size ONLY use this for applications which runon your intranet, not for large scale web sites (Note that the client side widgets for the Vaadin framework are written in GWT). Also, Vaadin apps generally are not so easy to style with CSS

GWT - You can write very high performance and large scale web apps with pure GWT, but you will have to understand HTML, CSS, and Javascript natively to get the most out of it. However you will end up writing alot of your own widgets to perform common tasks, or end up with a library like Sencha GXT, although GXT apps mostly end up having a similar look, so maybe GXT only if you are developing an enterprise app, and plain GWT if it is for the public internet

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.