top | item 8945858

GWT just got a new look

52 points| florian-f | 11 years ago |gwtproject.org

68 comments

order
[+] zamalek|11 years ago|reply
Gah! Again! People not explaining what something is on the landing page!

> GWT is used by many products at Google, including Google AdWords and Google Wallet. It's open source, completely free, and used by thousands of enthusiastic developers around the world.

Any amount of things fit that description. Beer? Air? Clicking "Learn about GWT" gets you this:

> GWT is a development toolkit for building and optimizing complex browser-based applications.

That's all it takes! Can we please start seeing these kinds of descriptions on landing pages. You're not selling a clothing brand, you are selling a toolkit to developers: I care first and foremost what the thing does, not how fashionable it is.

[+] kosinus|11 years ago|reply
Not even that is enough. My train of thought was: "This is the Java thing, right?" But I wasn't sure, and it's not mentioned anywhere in the opening paragraph of that page either. Java is not mentioned until "The GWT SDK contains the Java API libraries, compiler, and development server."
[+] prohor|11 years ago|reply
I wonder though, why they don't mention the latest Google Inbox, which is also done in GWT.
[+] Kiro|11 years ago|reply
I agree but GWT is such a well-known project that it's almost OK in this case.
[+] yitchelle|11 years ago|reply
When I see a landing page like this, I feel that this is their filter. If you are interested in knowing more, you will seek the answers. Otherwise, you will move on to the next HN post...

The ones that seek to know more are the ones they want to engage.

Only my speculation.

[+] ezequiel-garzon|11 years ago|reply
Grammar question from this non-native English speaker: does it sound right to say "you can quickly develop performance AJAX applications"? Wouldn't you say something like "high-performance AJAX applications" or "highly performant AJAX applications" (or just "performant AJAX applications")? It seems to be missing something.
[+] johnyzee|11 years ago|reply
Been using GWT for almost a decade. It makes it easy to develop and maintain enormous and complex web applications, which would otherwise be difficult if you had to rely only on JavaScript (both the language and the toolchain).

Being able to write the entire application, from the client and the domain model on down to the backend, in the same language, re-using classes across the entire application, is a big advantage.

In addition, being a very mature toolkit by now, GWT has A LOT of features to make life easier. Transparent RPC/serialization, code obfuscation/deobfuscation, IDE integrated debugging, i18n, resource bundling, code splitting, JavaScript interoperability, and a lot of other stuff.

Current project: Real-time multiplayer GTA-style game based on HTML5 canvas:

http://www.webworks.dk/html5engine

[+] ExpiredLink|11 years ago|reply
> * GWT has A LOT of features ... and a lot of other stuff.*

Yep, that's the problem. I had to learn GWT for a project last year and I don't share your enthusiasm. The learning curve is steep, integration with "the rest" of a Java EE application messy (but doable) and you still need a CSS expert. GWT is now a 'grown' framework. Many concepts have changed during the years and therefore many previous recommendations are obsolete nowadays. Documentation is meager. After a while I spent most of the time searching for the right code snippets on Stack Overflow.

[+] polskibus|11 years ago|reply
I've never used GWT, but it looks a lot like ASP.NET (all the button declarations in code, heavy page lifecycle in code, etc.). Can anyone with ASP.NET knowledge comment on that? ASP.NET has many problems, there are valid reasons why most developers are moving towards ASP.NET MVC so I wonder what is the place for GWT in modern web dev.
[+] prohor|11 years ago|reply
First difference is that ASP.NET is running on the server side. GWT is fully compiled to JavaScript and runs in browser. The server doesn't even need to be Java, can be even plain web server without server side code. With GWT you typically develop one-page web applications.

As of doing everything in code - not necessary. As of now GWT has UiBinder - it is a kind of template or DOM + widgets, where you then bind code to it. But in upcoming 3.0 it will use web components standard (http://www.w3.org/TR/components-intro/)

[+] mradmin|11 years ago|reply
GWT pronounced «gwit»

Seriously? First I've heard this is how you pronounce it. And how does one pronounce gwit? I think I'll continue to call it: G.W.T.

[+] insin|11 years ago|reply
First I've heard of this too.

Obviously "gwit" is pronounced as "jwit", right?

[+] taejo|11 years ago|reply
Yes, seriously (at least that's what I heard people at Google calling it). How many different ways could you pronounce "gwit"? (If you really don't get it, it's like "quit" but with a voiced consonant at the beginning).
[+] farresito|11 years ago|reply
I think the word 'resource' is not well spelled ('ressource').
[+] amelius|11 years ago|reply
I'm looking for a toolbox that can give me:

1. client-side (javascript) database access

2. automatic updates to the client's view of the database

And also:

3. automatic optimal re-execution of javascript code whenever something changes in the input (e.g., the database). Note the word "optimal", e.g., no glitches, and no (or minimal) unnecessary work done.

Of course, it should be fast :) Does anybody know where to find such a toolbox, or libraries that allow me to accomplish the above? Any pointers are greatly appreciated!

[+] ExpiredLink|11 years ago|reply
You are looking for ... PHP!
[+] waps|11 years ago|reply
Since there are a million "what is GWT" questions, let me give a thorough answer :

If you have any question with "javascript" anywhere in there GWT is not the answer, unless it's "how can I avoid javascript alltogether ?" (a common question for me and a lot of others).

GWT is a crosscompiler, RPC generator and UI toolkit. That means :

1) Crosscompiler: all code is in Java (and you can pick what code runs client-side). You write browser applications in Java, instead of Javascript. It's not emulated. The client-side javascript is not large (like asm.js stuff), doesn't require plugin downloads that don't work on half the platforms (flash, ms stuff, ...), it's not limited (like most of the javascript frameworks that are advised here that won't work for graphs in canvas ...), ...

TLDR: it's cross-platform, resulting application can work on all browsers, and everything else (e.g. native Android/iOS/Windows/...) (even IE6 if you really want).

2) RPC generator: you can call server-side methods that are also in Java. You can call them as if they are local methods, except that they can execute asynchronously and they can fail with network-related exceptions. This means you don't do it yourself, meaning no work and no errors.

This means that using any java-accessible code on the server in your in-browser applications is trivial.

3) A powerful desktop-like UI toolkit that works well. GWT is "Delphi/Visual Basic/Visual C++/..." with Java as the backing language on the web. https://www.youtube.com/watch?v=kV5H3rGfqOE

4) It's java. The same code works on Android, works on iOS, works in Windows, works on linux native, works on ... and works in the web browser (though you'll have to use different UI toolkits. But in a well-designed application, MVC, only the V needs to be platform-specific).

5) Because reusable code is actually possible in this UI toolkit, you find graphing libraries/controls/... that work well within the toolkit and that work together and you can usually get support for (e.g. Vaadin).

Making client-side Models and Controllers that work on all platforms is very easy (with a little discipline). Making sure that code stays in sync across all platforms is trivial (java is statically typed. Add a new field, and forget to add it on one platform, boom, compile fails).

The big disadvantages :

The big one : Java is a language that is made primarily to allow you to manage complexity in large applications. There is a lot of "default" complexity and lots and lots of tools to manage and refactor large codebases. Java itself is a static language with access controls and many tools to help you. That means that GWT-Java based applications can be a LOT larger than anything you'll ever write in Javascript. This also means that this is meant for large applications. You will find it less helpful for small applications.

You can't use javascript frameworks easily (but it's possible).

It's possible to not use the UI toolkit, but it requires lots of inside knowledge.

You have no easy control over the generated javascript (again, possible, but if you don't know compilers, you may want to avoid this).

You have very indirect control over the DOM elements in your web page. If this is important to you, life's gonna suck.

It's java, not many people would call this their favorite language.

[+] JensRantil|11 years ago|reply
I'm surprised GWT is still used out there. It's slow as hell to compile and JS libraries are so much better and more response nowadays.
[+] rdwallis|11 years ago|reply
GWT 2.7 has incremental compilation. During development, recompile takes less than a second.
[+] florian-f|11 years ago|reply
It's not exactly been bleeding edge the past few years. Now with the 2.7 release and the 3.0 release (which is hopefully coming very soon) it's receiving a major revival.

One of the most important new features are javascript interopt, which enables you to write libraries in java and let other people use it like any other js library. In the other direction, you can easily use javascript (libraries) in java. That means it's possible to just use modern stuff like polymer from within gwt without much of a hassle.

[+] pjmlp|11 years ago|reply
It is used a lot in enterprise projects.
[+] needusername|11 years ago|reply
This http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsCom... seems to indicate that GWT still supports only Java 1.5. Is this true or simply outdated documentation?
[+] florian-f|11 years ago|reply
No, currently it's 1.7 (with gwt2.7.0) and soon (when gwt 3.0.0 is released) it will support java 8.

Parts of the page are still rather outdated and haven't really been touched since 2010/ 2012.

This is why it's so great that the site got a new look now, it indicates that things are moving again and I'm sure the outdated parts are going to be removed soon.

[+] ciudilo|11 years ago|reply
Could not easily find what version GWT is on now and OMG those showcases look like they are from previous century.
[+] jamies888888|11 years ago|reply
I've never knowingly seen GWT used in practice. Does anyone have any examples of (semi) notable websites utilising it?
[+] stephen123|11 years ago|reply
I used it for about 8 months, Hated it. Its like a big wall between you and the DOM.

I guess its good of you hate html and javascript. But once you grow up and realise your making a web page and need to control the DOM in a particular way, it just gets in your way.

[+] pavlov|11 years ago|reply
According to an HN comment by user cromwellian, it's widely used inside Google including the new Inbox mail app:

https://news.ycombinator.com/item?id=8554339

Other references mentioned by the poster are "Apple (iAds Workspace), Amazon (AWS Console), Nike".

[+] bvm|11 years ago|reply
Moreover Newsdesk, a reasonably large media monitoring platform is pretty much solely based on GWT, though it looks like they are moving away from it in their new development.
[+] Djorak_|11 years ago|reply
I worked for a big French bank for a few months about 3 years ago and they were using it on a few of their projects (CRM, budget planner).
[+] buu700|11 years ago|reply
Most of Google's Web apps use Closure AFAIK, but Inbox and Wave use GWT. Those are the most notable examples I know of.
[+] mg74|11 years ago|reply
Google Inbox
[+] bshimmin|11 years ago|reply
Is it just me, or do the pagination blobs on the right really not work at all?
[+] BilalBudhani|11 years ago|reply
carousel switching buttons on the right hand side are not working, even in chrome.
[+] x0rg|11 years ago|reply
It makes sense in the enterprise world where everyone love Java and Eclipse (at least as far as I can see). It doesn't make sense on HN, not at all.
[+] collyw|11 years ago|reply
When does something "make sense on HN"? When it is a reinvention of the wheel done in JavaScript?
[+] raverbashing|11 years ago|reply
Seems to me the textbook example of Java people trying to make everything Java (and failing at it, as usual)

While it's funny (and sometimes silly) to see a huge amount of .js libraries popping up, they're not adding a big block between the programmer and the browser.

And js may have its quirks, but it's not java and I'm thankful for that. I'd rather use js over java anyday, unless there's something really dependent on it.