About GWT

GWT is a key technology we use; this page provides some technical background about GWT for those who may not be familiar with it, to help understand why we consider GWT such a key technology. SpiffyMap adopted GWT as one of our core technologies in 2009, when GWT 2.0 came out. Since then we have built up a considerable body of experience with it, having used it in large production systems (see products) for many years.

Audience: this is a technical overview intended for those some (minimal) exposure to software development and computing terminology.

What is GWT?

GWT started out as the Google Web Toolkit, but Google later open-sourced the entire codebase. Since open source projects aren't allowed to have Google in the name, the system is now simply known as “GWT” (pronounced gwit) without the letters standing for anything.

GWT is a transpiler which cross-compiles Java code into Javascript. Java is typically used in server-side software, while Javascript has traditionally been used inside web browsers. So GWT allows both server and web client software to be written in Java. Parts which will execute in the web browser are cross-compiled into highly optimized Javascript. Since all web browsers include a Javascript interpreter, the code can be run on the browser without needing the Java plug-in, which isn't always available; indeed fact it doesn't require any browser plug-ins.

Why Java?

Fashions in programming languages come and go, and can be particularly visible in open-source projects. But Java is the “language of the enterprise” - in other words, a favourite with large organisations. Two key design choices have influenced this: its architecture independence (the same program code, once compiled, will run on any kind of CPU) and its emphasis on readability over conciseness. Many programmers value conciseness, but large organisations know that whenever large teams must work on the same codebase, over many years, readability is far more valuable. This is why Java shot to prominence as one of the world's most popular languages quickly after its launch 20 years ago, and has stayed at or near the top ever since (as measured by, for instance, the Tiobe programming language index).

Java has been used in all types of devices from Mars rovers to TV set-top boxes. The world's financial institutions rely on it heavily. 8 billion cellphones have a SIM card which runs Java (JavaCard). The Android phone/tablet operating system is written in Java and so are most applications which run on it. Java is reliable and mature, and so are the tools which developers use to develop in Java: integrated development systems, testing systems, web servers and so on.

What benefits do Java/GWT bring?

These benefits have contributed to Google's invention of GWT and its growing use within Google. AdWords and the new version of Gmail (called Inbox) - two of Google's flagship products - are both written using GWT. The GWT Project's surveys of who uses GWT shows that it is mainly used by large organisations with very large applications to build.

That concludes our overview of GWT. If you have found this introduction useful, please share it: