Present and Future of GWT
from a developer perspective
Manolo Carrasco
+ManuelCarrascoMonino
@dodotis
About me
Agenda
1. A little bit of context of Vaadin and GWT
2. The Present of GWT
3. Future of GWT
4. State of the Frontend
FIGHT FOR SIMPLICITYthinking of U and I
- Vaadin is a development platform for web
applications that prioritizes ease of development
and uncompromised end user ex...
Architecture
Developer Space
Provided by Vaadin
JVM
Browser
Java Lang JVM
ecosystem
libs, IDEs ...
Developer space GWT vs Vaadin
Java Lang JVM
ecosystem
libs, IDEs ...
Scala, Groovy....
Millestone 3.0
IT Mill 4.0
IT Mill 5.0
2002
2007
2008
2018
2013
2009
Vaadin 6.0
Vaadin 7.0
2017
Vaadin 8.0
Vaadin 10
Vaadi...
Next Generation Architecture
GWT's mission is to radically improve the web experience
for users by enabling developers to use existing Java tools
to bu...
Innuvo
1.0.21
1.3.3 O.S
2005
2006
2007
2018
2010
2009
2.0 UIB OOPHM
2.1 MVP RF
2011
2.2 Designer
3.0 J2cl ?
GWT a 12y whis...
The present of GWT
GWT is Popular in the Java Web
2016
2012
Stable Platform
Reliable
Good Tools & Ecosystem
High Quality and Mature
Fast development cycles
For Big Teams & Big Projects
But
High Learning Curve
Outdated docs
Obsolete Stuff
↝ Generators
↝ Widgets, Elements, JSO
↝ RPC
↝ RF
↝ AutoBeans
↝ UiBinder
↝ JSNI
↝ Classic DevMode
↝ Ant
↝ De...
Project Activity Deceleration
A project with few Contributors
Unmaintained libs
GWT spring react
Hard to Use the Platform
Status of the current GWT
GWT 2.8.x
- Big artifacts (no split in modules)
- Stable & Long Term API Support
- No new Featur...
Long Term Support Applications
LTS Apps
2.8.x is perfect for Long Term Apps
- Be updated and use latest stable GWT
- Avoid legacy modules
- Most Widgets, RPC, RF, etc
- Design with UIBinder and CSS3...
The future of GWT
The Near future of GWT
GWT 2.9.x
- Modular (split in small artifacts)
- Parts might be transferred to, or taken by the com...
2.9.x might be your Transition Path
- Use min set of modules, start with Core.gwt.xml
- Forget Classic Widgets and Element
- Replace classic DOM with Elementa...
Inherit: the minimum stuff
Import: JsInterop & elemental2
Use UiBinder as an HTML container
Code: Interact with Elemental2
Alternatives
Since UiBinder is still thought for Widgets or Elements
and it uses generators, try:
- Elemento is a lightwei...
Frontend: State of the art
We are in the JavaScript Era
Popularity of Web Platforms
Huge ecosystem
Good dev tools in JS
JS also runs everywhere
How is GWT in this jungle
Lot of reactions, Is GWT Dead?
- Most GWT apps and webs ported to other solutions.
- Vaadin, Sencha, ArcBees... are redirecting their efforts.
- Google i...
GWT reasons, not valid anymore
- For the Browser (2006)
- Huge diffs between vendors (IE6)
- memory limitations (256Kb RAM...
- The Java Language is the strong Key of using GWT
GWT reasons nowadays
What should GWT
developers do?
Embrace the JavaScript world
GWT 3.0 is for the frontend jungle
- New compiler and tooling
- J2CL
- Runtime JVM, Node or both?
- Build system bazel, ma...
Two possible paths for J2CL
➔ Classic Java Development flow
◆ Java IDE
◆ Java dependency artifacts (.jar)
◆ Java Build too...
A java transpiler in the JS world
NODE
ECOSYSTE
M
npm,gulp,*.js
,
Java IDE
mvn, jar,
Java IDE
JVMJAVA NODE
npm, gulp,
*.js...
Thanks
manolo@vaadin.com
+ManuelCarrascoMonino
@dodotis
Present and Future of GWT from a developer perspective
Próxima SlideShare
Cargando en…5
×

Present and Future of GWT from a developer perspective

1.065 visualizaciones

Publicado el

GWTCon 2017 - Florence

Publicado en: Internet
  • Sé el primero en comentar

Present and Future of GWT from a developer perspective

  1. 1. Present and Future of GWT from a developer perspective Manolo Carrasco +ManuelCarrascoMonino @dodotis
  2. 2. About me
  3. 3. Agenda 1. A little bit of context of Vaadin and GWT 2. The Present of GWT 3. Future of GWT 4. State of the Frontend
  4. 4. FIGHT FOR SIMPLICITYthinking of U and I
  5. 5. - Vaadin is a development platform for web applications that prioritizes ease of development and uncompromised end user experience. - The Vaadin platform consists of a comprehensive set of web components, a Java web framework, configurable themes, tools and a set of app templates. Vaadin
  6. 6. Architecture Developer Space Provided by Vaadin JVM Browser
  7. 7. Java Lang JVM ecosystem libs, IDEs ... Developer space GWT vs Vaadin Java Lang JVM ecosystem libs, IDEs ... Scala, Groovy...
  8. 8. Millestone 3.0 IT Mill 4.0 IT Mill 5.0 2002 2007 2008 2018 2013 2009 Vaadin 6.0 Vaadin 7.0 2017 Vaadin 8.0 Vaadin 10 Vaadin: a 18y whisky
  9. 9. Next Generation Architecture
  10. 10. GWT's mission is to radically improve the web experience for users by enabling developers to use existing Java tools to build no-compromise AJAX for any modern browser. GWT Mision A high-level language allows the Developer not to miss out on low-level details GWT Productivity 2006
  11. 11. Innuvo 1.0.21 1.3.3 O.S 2005 2006 2007 2018 2010 2009 2.0 UIB OOPHM 2.1 MVP RF 2011 2.2 Designer 3.0 J2cl ? GWT a 12y whisky 2012 Grid 2.4 2013 2.5 SDM 2017 2.8 J8 JSi2014 2.6 J7
  12. 12. The present of GWT
  13. 13. GWT is Popular in the Java Web 2016 2012
  14. 14. Stable Platform
  15. 15. Reliable
  16. 16. Good Tools & Ecosystem
  17. 17. High Quality and Mature
  18. 18. Fast development cycles
  19. 19. For Big Teams & Big Projects
  20. 20. But
  21. 21. High Learning Curve
  22. 22. Outdated docs
  23. 23. Obsolete Stuff ↝ Generators ↝ Widgets, Elements, JSO ↝ RPC ↝ RF ↝ AutoBeans ↝ UiBinder ↝ JSNI ↝ Classic DevMode ↝ Ant ↝ Designer
  24. 24. Project Activity Deceleration
  25. 25. A project with few Contributors
  26. 26. Unmaintained libs GWT spring react
  27. 27. Hard to Use the Platform
  28. 28. Status of the current GWT GWT 2.8.x - Big artifacts (no split in modules) - Stable & Long Term API Support - No new Features planned - Prepared for JS - JsInterop stable - Elemental2 unstable - Large ecosystem - 2.8 is stable and available for foreseeable future
  29. 29. Long Term Support Applications LTS Apps
  30. 30. 2.8.x is perfect for Long Term Apps
  31. 31. - Be updated and use latest stable GWT - Avoid legacy modules - Most Widgets, RPC, RF, etc - Design with UIBinder and CSS3 - Use J8 syntax, collapse browser permutations. - Select good 3rd party libs - Gwt-material, Gwt-bootstrap, Gwt-query - Use JsInterop for json data or Resty-GWT - MVP or GWTP ? Good Practices for LTS apps in 2.8.x
  32. 32. The future of GWT
  33. 33. The Near future of GWT GWT 2.9.x - Modular (split in small artifacts) - Parts might be transferred to, or taken by the community - Expect changes and new Features in API - Removing browsers, jsni, moving namespaces, etc - Replacing generators with Annotation Processors - But maintaining backwards compatibility - Prepared for the JavaScript wild - Stable JsInterop - Stable Elemental-2
  34. 34. 2.9.x might be your Transition Path
  35. 35. - Use min set of modules, start with Core.gwt.xml - Forget Classic Widgets and Element - Replace classic DOM with Elemental2 - #useThePlatform as much as possible - Check 3rd party modules not to import User.gwt.xml - Design the UI using Js reusable widgets - Web components (gwt-polymer) - Html templates (elemento or polymer) - Decouple business logic from UI Best practices for the Transition
  36. 36. Inherit: the minimum stuff
  37. 37. Import: JsInterop & elemental2
  38. 38. Use UiBinder as an HTML container
  39. 39. Code: Interact with Elemental2
  40. 40. Alternatives Since UiBinder is still thought for Widgets or Elements and it uses generators, try: - Elemento is a lightweight template system based in pure HTML and Annotation Processors - Designed with Elemental2 & jsInterop in mind - Polymer templates - Are evaluated in runtime with good performance - Powerful data-binding - You need to import manually until work in progress in gwt-polymer
  41. 41. Frontend: State of the art
  42. 42. We are in the JavaScript Era
  43. 43. Popularity of Web Platforms
  44. 44. Huge ecosystem
  45. 45. Good dev tools in JS
  46. 46. JS also runs everywhere
  47. 47. How is GWT in this jungle
  48. 48. Lot of reactions, Is GWT Dead?
  49. 49. - Most GWT apps and webs ported to other solutions. - Vaadin, Sencha, ArcBees... are redirecting their efforts. - Google is moving to J2CL - GWT-3.0 was announced in 2014 but ... - 3 years of uncertainty that confuses and concerns the community - Not open sourced yet, and no ETA - No Presence of GWT in tech channels or events - There are no GWT jobs GWT Facts
  50. 50. GWT reasons, not valid anymore - For the Browser (2006) - Huge diffs between vendors (IE6) - memory limitations (256Kb RAM PCs) - Related with JavaScript (2006) - No way to debug JS - No tooling for JS optimisation and obfuscation - No way of modularising / managing dependencies - No IDE. No Testing tools. Slow runtime. - Java Specific (2006) - Same language client/server - More developers than JavaScript
  51. 51. - The Java Language is the strong Key of using GWT GWT reasons nowadays
  52. 52. What should GWT developers do?
  53. 53. Embrace the JavaScript world
  54. 54. GWT 3.0 is for the frontend jungle - New compiler and tooling - J2CL - Runtime JVM, Node or both? - Build system bazel, maven, npm ? - Big changes in API and emulated JRE - Prepared for the platform - JsInterop - Elemental2 - Comes with a different DX paradigm
  55. 55. Two possible paths for J2CL ➔ Classic Java Development flow ◆ Java IDE ◆ Java dependency artifacts (.jar) ◆ Java Build tools mvn, gradle, j2cl, closure, linker ◆ JVM for server side and testing tools ➔ Just a transpiler to JavaScript ◆ Java IDE ◆ JS dependencies (.js) ◆ JS Build tools npm, closure-compiler-js ◆ node-js for server side ◆ JS testing tools
  56. 56. A java transpiler in the JS world NODE ECOSYSTE M npm,gulp,*.js , Java IDE mvn, jar, Java IDE JVMJAVA NODE npm, gulp, *.js, Java IDE JAVA
  57. 57. Thanks manolo@vaadin.com +ManuelCarrascoMonino @dodotis

×