HOME

TheInfoList



OR:

Google Web Toolkit (GWT ), or GWT Web Toolkit, is an open-source set of tools that allows web developers to create and maintain
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
front-end applications in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
. It is licensed under the Apache License 2.0. GWT emphasizes reusable approaches to everyday web development tasks, namely asynchronous remote procedure calls, history management, bookmarking, UI abstraction,
internationalization In economics, internationalization or internationalisation is the process of increasing involvement of enterprises in international markets, although there is no agreed definition of internationalization. Internationalization is a crucial strateg ...
, and
cross-browser Cross-browser compatibility is the ability of a website or web application to function across different Web browser, browsers and Fault tolerance, degrade gracefully when browser features are absent or lacking. History Background The history ...
portability.


History

GWT version 1.0 RC 1 was released on May 16, 2006. Google announced GWT at the
JavaOne __NOTOC__ JavaOne is an annual conference first organized in 1996 by Sun Microsystems to discuss Java technologies, primarily among Java developers. It was held in San Francisco, California, typically running from a Monday to Thursday in summer ...
conference in 2006. In August 2010, Google acquired Instantiations, a company known for focusing on Eclipse Java developer tools, including GWT Designer, which is now bundled with
Google Plugin for Eclipse Google Plugin for Eclipse (GPE) was a set of development tools that enabled Java developers to design, build, optimize, and deploy cloud computing applications. developers in creating complex user interfaces, generating Ajax code using the GWT W ...
. In 2011 with the introduction of the Dart programming language, Google reassured the GWT community that GWT would continue to be supported for the foreseeable future but also hinted at a possible rapprochement between the two Google approaches to "structured web programming". They've also admitted, however, that several of engineers previously working on GWT are now working on Dart. In 2012 at their annual I/O conference, Google announced that GWT would be transformed from a Google project to a fully open-sourced project. In July 2013, Google posted on its GWT blog that the transformation to an open source project was complete.


Development with GWT

Using GWT, developers can develop and debug
Ajax Ajax may refer to: Greek mythology and tragedy * Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea * Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris * ''Ajax'' (play), by the ancient Gree ...
applications in the Java language using the Java development tools of their choice. When the application is deployed, the GWT cross-compiler translates the Java application to standalone
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
files that are optionally obfuscated and deeply optimized. When needed, JavaScript can also be embedded directly into Java code using Java comments. GWT does not revolve only around user interface programming; it is a broad set of tools for building high-performance client-side JavaScript functionality. Indeed, many vital architectural decisions are left entirely to the developer. The GWT mission statement clarifies the philosophical breakdown of GWT's role versus the developer's role. History is an example of such: although GWT manages history tokens as users click Back or Forward in the browser, it does not prescribe how to map history tokens to an application state. GWT applications can be run in two modes: * ''Development mode'' (formerly ''Hosted mode''): The application is run as Java bytecode within the Java Virtual Machine (JVM). This mode is typically used for development, supporting hot swapping of code and debugging. In 2014, the classic implementation of Dev Mode was rendered unusable by browser updates until its replacement with the more compatible ''Super Dev Mode'', which became the default in GWT 2.7. * ''Production mode'' (formerly ''Web mode''): The application is run as pure JavaScript and HTML, compiled from the Java source. This mode is typically used for deployment. Several open-source plugins are available for making GWT development easier with other
IDEs Ides or IDES may refer to: Calendar dates * Ides (calendar), a day in the Roman calendar that fell roughly in the middle of the month. In March, May, July, and October it was the 15th day of the month; in other months it was the 13th. **Ides of Mar ...
, including GWT4NB for
NetBeans NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
, Cypal Studio for GWT (an Eclipse plugin), and GWT Developer for
JDeveloper JDeveloper is a freeware IDE supplied by Oracle Corporation. It offers features for development in Java, XML, SQL and PL/SQL, HTML, JavaScript, BPEL and PHP. JDeveloper covers the full development lifecycle from design through coding, debuggi ...
. The
Google Plugin for Eclipse Google Plugin for Eclipse (GPE) was a set of development tools that enabled Java developers to design, build, optimize, and deploy cloud computing applications. developers in creating complex user interfaces, generating Ajax code using the GWT W ...
handles most GWT-related tasks in the IDE, including creating projects, invoking the GWT compiler, creating GWT launch configurations, validation, and
syntax highlighting Syntax highlighting is a feature of text editors that are used for programming, scripting, or markup languages, such as HTML. The feature displays text, especially source code, in different colours and fonts according to the category of terms ...
.


Components

The major GWT components include: ;GWT Java-to-JavaScript Compiler :Translates the Java programming language to the JavaScript programming language. ;GWT Development Mode :Allows the developers to run and execute GWT applications in development mode (the app runs as Java in the JVM without compiling to JavaScript). Prior to 2.0, GWT hosted mode provided a special-purpose "hosted browser" to debug your GWT code. In 2.0, the web page being debugged is viewed within a regular browser. Development mode is supported by using a native-code plugin called the Google Web Toolkit Developer Plugin for many popular browsers. ;JRE emulation library :JavaScript implementations of the commonly used classes in the Java standard class library (such as most of the java.lang package classes and a subset of the java.util package classes). ;GWT Web UI class library :A set of custom interfaces and classes for creating widgets.


Features

* Dynamic and reusable UI components: programmers can use pre-designed classes to implement otherwise time-consuming dynamic behaviors, such as drag-and-drop or sophisticated visual tree structures. * Simple RPC mechanism * Browser history management * Support for full-featured Java debugging * GWT handles some cross-browser issues for the developer. *
Unit testing In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures&md ...
integration * Support for
Internationalization and localization In computing, internationalization and localization (American) or internationalisation and localisation (British English), often abbreviated i18n and L10n, are means of adapting computer software to different languages, regional peculiarities and ...
* HTML Canvas support (subject to API changes) * The developers can mix handwritten JavaScript in the Java source code using the JavaScript Native Interface (JSNI). * Support for using Google APIs in GWT applications (initially, support for Google Gears). * Open-source * The developers can design and develop their applications in a pure object-oriented fashion since they're using Java (instead of JavaScript). Common JavaScript errors, such as typos and type mismatches, are caught at compile time. * The JavaScript that the GWT compiler generates can be tailored to be either unobfuscated (Source-Mapped or Source-Code) and easier to understand or obfuscated and compressed. * A number of libraries are available for GWT, by Google and third parties. These extend the toolkit's features.


Available widgets

As of version 2.4 (September 2011), Google Web Toolkit offers several widgets and panels. Many common widgets not found in the GWT have been implemented in third-party libraries.


Enterprise usage

GWT uses or supports
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mos ...
,
Apache Tomcat Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also ...
(or similar web container), Eclipse IDE,
Internet Explorer Internet Explorer (formerly Microsoft Internet Explorer and Windows Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical web browsers developed by Microsoft which was used in the Windows line of operating systems ( ...
, and
internationalization and localization In computing, internationalization and localization (American) or internationalisation and localisation (British English), often abbreviated i18n and L10n, are means of adapting computer software to different languages, regional peculiarities and ...
. Java-based GWT
rich web applications A rich web application (originally called a rich Internet application, or RIA or installable Internet application) is a web application that has many of the characteristics of desktop application software. The concept is closely related to a sing ...
can be tested using
JUnit JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated ...
testing framework and code coverage tools. Because GWT allows compile time verification of images, CSS, and business logic, many common development defects are automatically discovered without requiring the manual testing commonly required by RIAs. Google has noted that some of its products are GWT-based:
Blogger A blog (a truncation of "weblog") is a discussion or informational website published on the World Wide Web consisting of discrete, often informal diary-style text entries (posts). Posts are typically displayed in reverse chronological order ...
,
AdWords Google Ads (formerly Google AdWords) is an online advertising platform developed by Google, where advertisers bid to display brief advertisements, service offerings, product listings, or videos to web users. It can place ads both in the result ...
,
Flights Flight is the process by which an object moves without direct support from a surface. Flight may also refer to: Arts, entertainment, and media Films * ''Flight'' (1929 film), an American adventure film * ''Flight'' (2009 film), a South Korean d ...
,
Wallet A wallet is a flat case or pouch often used to carry small personal items such as paper currency, credit cards; identification documents such as driver's license, identification card, club card; photographs, transit pass, business cards and ...
, Offers,
Groups A group is a number of persons or things that are located, gathered, or classed together. Groups of people * Cultural group, a group whose members share the same cultural identity * Ethnic group, a group whose members share the same ethnic ide ...
,
Inbox Electronic mail (email or e-mail) is a method of exchanging messages ("mail") between people using electronic devices. Email was thus conceived as the electronic (digital) version of, or counterpart to, mail, at a time when "mail" meant ...
.


GWT 2.0

On December 8, 2009, Google launched Google Web Toolkit 2.0 with Speed Tracer. Version 2.0 of GWT offers a number of new features, including: * In-Browser Development Mode (formerly known as Out Of Process Hosted Mode, OOPHM): prior to version 2.0, hosted mode used to embed a modified browser to allow running the bytecode version of the application during development. With version 2.0, hosted mode, renamed "development mode", allows using any (supported) browser to view the page being debugged, through the use of a browser plugin. The plugin communicates with the development mode shell using TCP/IP, which allows cross platform debugging (for example, debugging in Internet Explorer on Windows from a development mode shell running on a Linux machine). * Code splitting: with the developer providing "split points" in the source code, the GWT compiler can split the JavaScript code into several small chunks instead of one big download. This will lead to reduced application startup time as the size of the initial download is decreased. * Declarative User Interface: using an XML format, the new feature known as UiBinder allows the creation of user interfaces through declaration rather than code. This allows a clean separation of UI construction and behavior implementation. * Resource bundling: the ClientBundle interface will allow resources of any nature (images, CSS, text, binary) to be bundled together and transferred in one download, resulting in fewer round-trips to the server and hence lower application latency. Since the new development mode removed most platform-specific code, the new version will be distributed as a unique archive, instead of one per supported platform as was the case with previous versions.


Mobile

As a general framework for making web apps, Google Web Toolkit is also capable of being used as a framework for creating mobile and tablet apps, either by making the needed widgets and animations from scratch or by using one of the mobile frameworks for GWT. An HTML5 app written in GWT can have separate views for Tablets and Mobile phones.


See also

*
Dart (programming language) Dart is a programming language designed for client development, such as for the web and mobile apps. It is developed by Google and can also be used to build server and desktop applications. It is an object-oriented, class-based, garbage-colle ...
*
Google Plugin for Eclipse Google Plugin for Eclipse (GPE) was a set of development tools that enabled Java developers to design, build, optimize, and deploy cloud computing applications. developers in creating complex user interfaces, generating Ajax code using the GWT W ...
*
Google Code Google Developers (previously Google Code) , application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers usi ...
*
Comparison of JavaScript frameworks This is a comparison of web frameworks for front-end web development that are heavily reliant on JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World ...
* Comparison of web frameworks * Emscripten for converting
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
into JavaScript or WebAssembly


References


Bibliography

* * * * * {{Authority control Web Toolkit Java platform JavaScript libraries Rich web application frameworks Software using the Apache license Web development software