GWT as an open source project, current status

Since GWT has been open sourced years ago, GWT mainly stayed an open sourced project run by Google. This has been changed with the introduction of the GWT committee and the big move into more openness.

Matthew Dempsky shared a few insights with the current state of GWT as an open source project. GWT finally detached from integral Google build process, moved to external GIT and Gerrit as first source of truth.

The GWT “re-opensourcing” and move to GIT started paying of. From 5% non Google patches in 2012 to actually 20% in 2013. Still rough spots in the review process, no official ownerships: only unofficial owners and un-owned code. Integration builds are still a problem, since testsuite too large, too expensive to run. Presubmit testing delivers fast response.

The build process is a work in process. The move to maven was stopped as seen as unfitting for GWT. The ant build files are working but are not good, there is some interest in gradle/ buck. Unfortunately there is no dependency management yet.

The future of GWT and web development

Vaadin is actually hosting a purely GWT focussed, not the first one, but it is a long time since we had a GWT conference, and Joonas (from Vaadin) shared some stats: we have 600+ attendees in San Francisco and in Frankfurt together, Frankfurt being sold out.

Ray Cromwell just held the keynote on the gwt.create conference in San Francisco and shared some quite interesting insights on where GWT has come from and how it is moving forward.

While GWT has it’s roots in a time where JavaScript VMs where slow and incompatible, the current state of the browsers and their JVMs is quite different.

chart

So the main challenge in web development changed, and GWT being used so widely at Google, will move forward as well. While speed is going to improve further (Google is still working very hard on the compiler, improving split point generation, fully integration of the closure compiler and much more), the main magic (from my personal view) is happening in the JS inter-operation.

There are really many powerful JS libraries, and modern web development uses them all. The GWT team is working on seamless integration of JS libraries, from lightweight wrappers (say goodbye to JSNI and overlay types) to zero effort JS interop, where the required Java interfaces get generated auto-magically for the JS libraries you drop into your project. And best of all – those libraries should be used un-minified in development and will be parsed by the GWT compiler and get all the optimizations the GWt complier is great at. This means that you can drop the complete jQuery library into you project, but only the JS you use will find its way into your application.

The next major GWT release is expected to come mid 2014 with full Java 8 support and hopefully a bunch of the new magic demoed today.

WJAX 2013 – GWT DAY

Nach längerer Sendepause mal wieder Folien von mir aus zwei GWT Vorträgen, dieses Mal von der WJAX 2013. Neu dieses Jahr ist ein dedizierter GWT Day mit Themen Rund um die Software Entwicklung mit dem Google Web Toolkit.

Den Anfang hat Daniel Kurka mit einem sehr interessanten Vortrag über GWT im allgemeinen und JavaScript Besonderheiten im speziellen: History, Present and Future of GWT → Folien.

Meine Vorträge hatten den Fokus auf Architekturentscheidungen in der GWT Anwendungsentwicklung, sowohl auf dem Client als auch in der Kommunikation mit dem Server:

GWT Architectures and Lessons Learned → Folien

GWT-Entwicklung ist Rich-Client-Entwicklung, und das ist für viele Webentwickler neu. Mit den “Lessons Learned” aus der Entwicklung von Google AdWords wurden Architekturmuster für GWT-Anwendungen vorgestellt. Einiges davon ist inzwischen in GWT gelandet und kann sofort eingesetzt werden. In diesem Vortrag werden Architekturmuster vorgestellt, die in den letzten Jahren in einigen Projekten erfolgreich eingesetzt wurden.

Client-Server-Kommunikation mit dem Command Pattern → Folien

Eine Client-Server-Architektur stellt besondere Anforderungen an die Client-Server-Kommunikation. Einerseits wird Sparsamkeit angestrebt, andererseits absolute Flexibilität, Wiederverwendbarkeit und Wartbarkeit. Gerade im GWT-Umfeld fehlen clientseitig eine vollwertige JVM und das Reflection-API. Hinzu kommt noch der teilweise ungewohnte Umgang mit den asynchronen Aufrufen. In diesem Vortrag wird das Command Pattern vorgestellt. Es werden konkrete Lösungsansätze für Batching, Caching, Security und Journaling vorgestellt.

Lemniscus geht online!

lemniscus-login

Heute eine kleine Success-Story aus den eigenen Reihen:

Unser Vorzeigeprojekt LEMNISCUS, bisher nur intern als Referenz zum Thema GWT, Spring, Spring-Data uvm. genutzt,  ist in den letzten Monaten zu einem Produkt ausgearbeitet worden und vor ein paar Tagen live gegangen.

Nach vielen Jahren Entwicklung und Nutzung im stillen Kämmerlein gehen wir mit unserer Praxisverwaltungssoftware für Osteopathen online.

Die Idee, Lemniscus zu entwickeln, ist ursprünglich aus privaten Gründen entstanden und sollte einer gestressten Ehefrau mit eigener osteopathischer Praxis das Leben erleichtern und einer Famile mehr Zeit füreinander geben, indem es als ihr virtueller Assistent fungierte und zeit- und nervenraubende Aufgaben übernahm, die verwaltungstechnischer und organisatorischer Natur sind und damit sinnvollerweise delegiert werden sollten und können.

Dabei ließ es sich dann auch hervorragend als Demo für Schulungen, Projekte und Vorträge rund um GWT verwenden, insbesondere als Gegenbeispiel im Zusammenhang mit Aussagen wie “Das geht nicht” oder “Im Web ist alles langsamer”.

Vor einigen Monaten haben wir dann zum ersten Mal weitere Osteopathen auf Lemniscus losgelassen und uns intensiv damit beschäftigt, aus einem Projekt ein Produkt zu machen.

Der nächste Schritt war die Anbindung von externen Diensten an unser LEMNISCUS:

- das Bezahlsystem Automatic von Fastbill
- das Support-System Zendesk (SSO steht noch aus)
- das Newsletter-System Mailchimp

Nun fehlte noch die komplette Verwaltung der Nutzeraccounts für die Therapeuten sowie die rechtlichen Rahmenbedingungen dafür.

Nächste Herausforderung: eine Registrierungsseite, die die Kunden nicht abschreckt, sondern einlädt, das System auszuprobieren.

Natürlich haben wir uns auch die Frage nach dem Hosting gestellt. Wo bekommen wir eine solide, ausfallsichere und bezahlbare Infrastruktur? Am Ende sind wir bei Amazon AWS gelandet.

Die größten Baustellen waren aber einerseits Design und andererseits die rechtliche Lage. Zum Design gibt es nicht viel zu sagen, außer das ich persönlich ein Händchen dafür habe, Designer zur Verzweiflung zu bringen. Das Thema rechtliche Lage war nur mit einer Rechtsanwältin und Datenschutzexpertin zu bewerkstelligen, die wiederum ein Händchen dafür hatte, mich in die Verzweiflung zu treiben.

Fazit:

Jetzt ist die Firma pgt technology scouting GmbH also stolzer Betreiber einer Praxisverwaltung für Osteopathen, Heilpraktiker, Therapeuten und Coaches der unterschiedlichsten Couleur.

http://lemniscus.de

Besonders stolz sind wir auf unsere Terminplanung mit SMS-Benachrichtigungsfunktion. Der Rest der Anwendung (Patientenverwaltung, Einnahmenverwaltung usw.) besticht durch geschicktes “In-den-Hintergrund-Treten“. LEMNISCUS steht für die einfache Verwaltung einer Praxis, die in der Bedienung nicht weh tut.

Es war ein langer Weg, und wir freuen uns jetzt über die zunehmenden Besucherzahlen auf unserer Vertriebsseite (die zugegeben etwas mehr Zuneigung verdient hat, – aber das ist dann eben der nächste Schritt!).