- one does not need to write lexer and understand Java keywords
- one does not need to write parser to create a Java AST
- one does not need to do attribution - e.g. resolve fully qualified names of every symbol
- new versions of the Java language are supported (almost) immediately
Gmail Web Toolkit
GWT started as a framework to allow Google to write Gmail. In fact, it is almost clear it was the opposite way - the goal was to write Gmail (with permission to do it in experimental Java) - to support this goal GWT was created. First of all only internally, then it was released as a toolkit of its own.
However the history remains - GWT is perfect for writing Gmail and applications that look like Gmail. But be honest, do you really want to write applications like that? And when you want something just a little different, don't you feel GWT is a bit too heavyweight?
Bck2Brwsr is different. It started small with the goal to have as small Java as possible. Support just as little as possible to bootstrap Bck2Brwsr - this means less than 100 classes. The rest of the system is modular - look at the Bck2BrwsrJavadoc. It contains minimal emulation library, it contains Bck2Brwsr profile (the standard library people code against). When you want more - like access to an HTML page - you can use another library. When you want to use widgets (like Java FX ones) - add another library. If you don't need them, don't include such library and your framework is still going to be as slim as possible (currently ~200KB gzipped).
Language or a Framework?
In one of my essays I asked: Is Java language or a framework? GWT answers such question clearly: Java is seen as a language. The fact that there is also a VM specification is put aside. The fact that various systems/languages can talk via ByteCode to each other, is ignored.
On the other hand Bck2Brwsr tries to treat Java as a framework. The VM interface is there, ByteCode is the lingua franca which the Bck2Brwsr VM understands. Reflection is naturaly present. Sure, the Bck2Brwsr framework is not full featured Java SE - it is a subset. But a base, common subset that can grow and behave same in browsers as well as HotSpot.
Common Ground and WORA