SlideShare a Scribd company logo
1 of 12
DNG Consulting
http://www.dng-consulting.com




   Google Web Toolkit
   Why this technology is cool ?




                                   v1.0
Speaker : Sami JABER – DNG Consulting


 DNG Consulting owner & Software Architect
 Author of "Programmation GWT 2" published with
  Eyrolles (next version expected in the coming weeks)
 DNG Consulting : IT Consulting & Training & Services
  company focused on JEE and .NET technologies
   Architecture, Google Web Toolkit experts
   Rich-Client applications (Java, .NET, …)

 We build software for our customers in an agile fashion
 with the best technologies


                                                            2
Project history

  Initially created by a small team at Google
  The beginning : Open Source in 2006
  Large community
      Project hosted at : http://code.google.com/webtoolkit/
      Active forums with lot of contributors (gwt-users & gwt-contribs)
      Several books in English and French, conferences, ...
      More and more applications are migrated in GWT (to convert existing
      Flash or Silverlight applications)

  Version 1.5 downloaded 800.000 times
  Version 2.0 shipped in 2010
  Version 2.4 shipped in 2012
                                                                          3
GWT philosophy


  For GWT, a Web Developer should not be a Javascript,
 HTML or CSS Guru
  GWT relies on a real component model similar to the way
 we build « Swing » applications
  GWT ensures transparently JS/HTML code generation
 from Java code
  GWT has been designed to be multi-browsers thanks to
 Deferred Binding technology
  JavaScript becomes a kind of Assembly language (it is
 optimized, obfuscated and compressed)

                                                           4
Coding in JavaScript is tricky

  Javascript is a script language poorly mastered by most
 developers (in the other hand, quite everybody know Java)
  There is more than hundred different frameworks, which
 one to use ? JQuery ? Prototype ? Closure ? ExtJS ?
  Maintainability of a big application containing tons of JS
 code can be a nightmare
  Technical skills required to master HTML 5
      JavaScript, DX?HTML (3.2, 4, 5), CSS[1-3], DOM Level[0-3], SVG,
      Canvas…

  Debugging is tricky (specially if we want a real stack
 trace), complex variable watching not always possible
  JavaScript is not natively « Object Oriented »                       5
Why GWT is cool ?

 Because Java is cool
     Strongly typed language, Compile Time checking, polymorphism,
     refactoring, « testability »

 Productivity
     Similar to a Swing, Rich-client development
     Code completion

 Performances
     Generated JavaScript is
     optimized, reduced
     The framework
     eliminates JS memory leak
     You pay only for what you use (more Java code you have, more the
     JavaScript will grow) with the help of the Compiler
                                                                        6
Performances




               7
One code generates multiple JS scripts


               One code used to generate
                multiple JS scripts called
                     "permutations"



                      One Java
                      Code base
                     Mycode.java

                 Optimized JavaScript
                without if/else useragent




                                             8
GWT Components

 Checkbox, list, textbox, labels, tree, datagrid, …
     Similar to what we can see with Swing, SWT




                                                       9
Eclipse tooling

 Google Plugin for Eclipse allows to easily create and
deploy GWT applications
    New Web Application Wizard to create a App Engine application
    Cloud SQL tooling to use Cloud SQL as a database for your App
    Engine application, and JPA support for Cloud SQL
    Importing the latest Google APIs
    Using an App Engine connected Android project to use App Engine as
    a backend for your Android projects
    One-click deploy to App Engine

 GWT Designer
    Assists developers in creating a rich user experience via WYSIWYG



                                                                        10
Démo




       11
Features in the pipe …

 New feature (experimental in 2.5) : SuperDevMode

     Ability to debug directly the JS generated code
 JS Closure Compiler integration :

     The generated JavaScript is compiled with Closure (10%
   more code reduction)
 CodeSplitting2 :

     Code Fragmentation with optimized leftover fragments
     Big applications are better handled by GWT
 Bug fixing

     Map support in RequestFactory, Safe Styling, …
                                                              12

More Related Content

What's hot

Microsoft Silverlight 2
Microsoft Silverlight 2Microsoft Silverlight 2
Microsoft Silverlight 2
David Chou
 

What's hot (20)

Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
Connecting Spring Apps to Distributed SQL Clusters Running in KubernetesConnecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
 
Next Generation Tooling with WSO2 Enterprise Integrator
Next Generation Tooling with WSO2 Enterprise IntegratorNext Generation Tooling with WSO2 Enterprise Integrator
Next Generation Tooling with WSO2 Enterprise Integrator
 
ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...
ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...
ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...
 
Know the difference - Angular.js vs Node.js
Know the difference - Angular.js vs Node.jsKnow the difference - Angular.js vs Node.js
Know the difference - Angular.js vs Node.js
 
Fitur Terbaru Flutter di Tahun 2021 - Widyarso Joko Purnomo
Fitur Terbaru Flutter di Tahun 2021 - Widyarso Joko PurnomoFitur Terbaru Flutter di Tahun 2021 - Widyarso Joko Purnomo
Fitur Terbaru Flutter di Tahun 2021 - Widyarso Joko Purnomo
 
AngularJS Vs NodeJs
AngularJS Vs NodeJsAngularJS Vs NodeJs
AngularJS Vs NodeJs
 
LCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDKLCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDK
 
Angular.js vs node.js how are they different
Angular.js vs node.js  how are they different Angular.js vs node.js  how are they different
Angular.js vs node.js how are they different
 
CRUD with Polymer 2.0
CRUD with Polymer 2.0CRUD with Polymer 2.0
CRUD with Polymer 2.0
 
Maemo 6 UI Framework
Maemo 6 UI FrameworkMaemo 6 UI Framework
Maemo 6 UI Framework
 
5 Key Steps To Implementing Micro Frontends On Kubernetes
5 Key Steps To Implementing Micro Frontends On Kubernetes5 Key Steps To Implementing Micro Frontends On Kubernetes
5 Key Steps To Implementing Micro Frontends On Kubernetes
 
Microsoft Silverlight 2
Microsoft Silverlight 2Microsoft Silverlight 2
Microsoft Silverlight 2
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud Services
 
Javascript - Today's trending script
Javascript - Today's trending scriptJavascript - Today's trending script
Javascript - Today's trending script
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Maemo 6 Technology Highlights
Maemo 6 Technology HighlightsMaemo 6 Technology Highlights
Maemo 6 Technology Highlights
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
Introduction to NodeJS
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
 
GROOVY ON GRAILS
GROOVY ON GRAILSGROOVY ON GRAILS
GROOVY ON GRAILS
 

Similar to GWT Introduction for Eclipse Day

Introduction to Google Web Toolkit
Introduction to Google Web ToolkitIntroduction to Google Web Toolkit
Introduction to Google Web Toolkit
Didier Girard
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwt
supertoy2015
 
Browser and Cloud - The Future of IDEs?
Browser and Cloud - The Future of IDEs?Browser and Cloud - The Future of IDEs?
Browser and Cloud - The Future of IDEs?
martinlippert
 

Similar to GWT Introduction for Eclipse Day (20)

Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
Introduction to Google Web Toolkit
Introduction to Google Web ToolkitIntroduction to Google Web Toolkit
Introduction to Google Web Toolkit
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwt
 
GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)GWT - AppDays - (25 aprile 2014, pordenone)
GWT - AppDays - (25 aprile 2014, pordenone)
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3
 
GWT- Google Web Toolkit
GWT- Google Web ToolkitGWT- Google Web Toolkit
GWT- Google Web Toolkit
 
Gwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca TosiGwt kickoff - Alberto Mancini & Francesca Tosi
Gwt kickoff - Alberto Mancini & Francesca Tosi
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptx
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
Browser and Cloud - The Future of IDEs?
Browser and Cloud - The Future of IDEs?Browser and Cloud - The Future of IDEs?
Browser and Cloud - The Future of IDEs?
 
GWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformGWT + Gears : The browser is the platform
GWT + Gears : The browser is the platform
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1
 
Jquery
JqueryJquery
Jquery
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.x
 
The Java alternative to Javascript
The Java alternative to JavascriptThe Java alternative to Javascript
The Java alternative to Javascript
 
Gwt Presentation1
Gwt Presentation1Gwt Presentation1
Gwt Presentation1
 
Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3
 
Google Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEAGoogle Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEA
 

More from DNG Consulting (9)

Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)
 
Présentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTPrésentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWT
 
Devoxx fr
Devoxx frDevoxx fr
Devoxx fr
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Session GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 Cobra
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity framework
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
Resource Oriented Architecture
Resource Oriented ArchitectureResource Oriented Architecture
Resource Oriented Architecture
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

GWT Introduction for Eclipse Day

  • 1. DNG Consulting http://www.dng-consulting.com Google Web Toolkit Why this technology is cool ? v1.0
  • 2. Speaker : Sami JABER – DNG Consulting  DNG Consulting owner & Software Architect  Author of "Programmation GWT 2" published with Eyrolles (next version expected in the coming weeks)  DNG Consulting : IT Consulting & Training & Services company focused on JEE and .NET technologies Architecture, Google Web Toolkit experts Rich-Client applications (Java, .NET, …)  We build software for our customers in an agile fashion with the best technologies 2
  • 3. Project history  Initially created by a small team at Google  The beginning : Open Source in 2006  Large community Project hosted at : http://code.google.com/webtoolkit/ Active forums with lot of contributors (gwt-users & gwt-contribs) Several books in English and French, conferences, ... More and more applications are migrated in GWT (to convert existing Flash or Silverlight applications)  Version 1.5 downloaded 800.000 times  Version 2.0 shipped in 2010  Version 2.4 shipped in 2012 3
  • 4. GWT philosophy  For GWT, a Web Developer should not be a Javascript, HTML or CSS Guru  GWT relies on a real component model similar to the way we build « Swing » applications  GWT ensures transparently JS/HTML code generation from Java code  GWT has been designed to be multi-browsers thanks to Deferred Binding technology  JavaScript becomes a kind of Assembly language (it is optimized, obfuscated and compressed) 4
  • 5. Coding in JavaScript is tricky  Javascript is a script language poorly mastered by most developers (in the other hand, quite everybody know Java)  There is more than hundred different frameworks, which one to use ? JQuery ? Prototype ? Closure ? ExtJS ?  Maintainability of a big application containing tons of JS code can be a nightmare  Technical skills required to master HTML 5 JavaScript, DX?HTML (3.2, 4, 5), CSS[1-3], DOM Level[0-3], SVG, Canvas…  Debugging is tricky (specially if we want a real stack trace), complex variable watching not always possible  JavaScript is not natively « Object Oriented » 5
  • 6. Why GWT is cool ?  Because Java is cool Strongly typed language, Compile Time checking, polymorphism, refactoring, « testability »  Productivity Similar to a Swing, Rich-client development Code completion  Performances Generated JavaScript is optimized, reduced The framework eliminates JS memory leak You pay only for what you use (more Java code you have, more the JavaScript will grow) with the help of the Compiler 6
  • 8. One code generates multiple JS scripts One code used to generate multiple JS scripts called "permutations" One Java Code base Mycode.java Optimized JavaScript without if/else useragent 8
  • 9. GWT Components  Checkbox, list, textbox, labels, tree, datagrid, … Similar to what we can see with Swing, SWT 9
  • 10. Eclipse tooling  Google Plugin for Eclipse allows to easily create and deploy GWT applications New Web Application Wizard to create a App Engine application Cloud SQL tooling to use Cloud SQL as a database for your App Engine application, and JPA support for Cloud SQL Importing the latest Google APIs Using an App Engine connected Android project to use App Engine as a backend for your Android projects One-click deploy to App Engine  GWT Designer Assists developers in creating a rich user experience via WYSIWYG 10
  • 11. Démo 11
  • 12. Features in the pipe …  New feature (experimental in 2.5) : SuperDevMode Ability to debug directly the JS generated code  JS Closure Compiler integration : The generated JavaScript is compiled with Closure (10% more code reduction)  CodeSplitting2 : Code Fragmentation with optimized leftover fragments Big applications are better handled by GWT  Bug fixing Map support in RequestFactory, Safe Styling, … 12

Editor's Notes

  1. Entreprise JavaBeans 3.0
  2. Entreprise JavaBeans 3.0
  3. Entreprise JavaBeans 3.0 GWT est une techologie catalysée par AJAX et qui part du principe qu’un développeur Web doit pouvoir concevoir une application AJAX sans être être un expert JavaScript
  4. Entreprise JavaBeans 3.0 Les défaut de JavaScript sont nombreux Maintenabilité difficile Langage dynamique mal maîtrisé par les développpeurs Compétences nécessaires demandées trop importantes pour le commun des mortels
  5. Entreprise JavaBeans 3.0 Entry-Point Classes A module entry-point is any class that is assignable to EntryPoint and that can be constructed without parameters. When a module is loaded, every entry point class is instantiated and its EntryPoint.onModuleLoad() method gets called. Source Path Modules can specify which subpackages contain translatable source, causing the named package and its subpackages to be added to the source path. Only files found on the source path are candidates to be translated into JavaScript, making it possible to mix client-side and server-side code together in the same classpath without conflict. When module inherit other modules, their source paths are combined so that each module will have access to the translatable source it requires. Public Path Modules can specify which subpackages are public, causing the named package and its subpackages to be added to the public path. When you compile your application into JavaScript, all the files that can be found on your public path are copied to the module's output directory. The net effect is that user-visible URLs need not include a full package name. When module inherit other modules, their public paths are combined so that each module will have access to the static resources it expects.
  6. Entreprise JavaBeans 3.0 Entry-Point Classes A module entry-point is any class that is assignable to EntryPoint and that can be constructed without parameters. When a module is loaded, every entry point class is instantiated and its EntryPoint.onModuleLoad() method gets called. Source Path Modules can specify which subpackages contain translatable source, causing the named package and its subpackages to be added to the source path. Only files found on the source path are candidates to be translated into JavaScript, making it possible to mix client-side and server-side code together in the same classpath without conflict. When module inherit other modules, their source paths are combined so that each module will have access to the translatable source it requires. Public Path Modules can specify which subpackages are public, causing the named package and its subpackages to be added to the public path. When you compile your application into JavaScript, all the files that can be found on your public path are copied to the module's output directory. The net effect is that user-visible URLs need not include a full package name. When module inherit other modules, their public paths are combined so that each module will have access to the static resources it expects.
  7. Entreprise JavaBeans 3.0