Browsed by
Tag: java

Veränderungen

Veränderungen

In den letzten Jahren ist einiges passiert. Ich habe meinen Arbeitgeber gewechselt und bin bei einem Consultingunternehmen tätig. Ich habe mich, anschließend an das Vaadin Projekt, weiterhin auf Java/EE und hier vor allem, aber nicht ausschließlich, auf Webapplikationsentwicklung spezialisiert. Nicht aus bleibt dabei natürlich sich mit den diversen JavaScript Frameworks und Toolchains zu beschäftigen. In letzter Zeit kam dann noch Scala als Basis für Reactive Programming hinzu und in der Freizeit beschäftige ich mich aktuell passend dazu mit dem Play Framework Version 2 in Scala, was ein guter Kontrast zu meinem aktuellen beruflichen Projekt ist, wo es um einen Java Desktopclient geht. Ergänzend dazu habe ich seit meiner Masterarbeit das Thema Softwaretests und testbare Architekturen bzw. wie man Software gut und einfach testbar macht und was die Probleme sind weiterverfolgt und das ganze hat sich zu einem Steckenpferd entwickelt mit dem ich mich immer wieder gern mal beschäftige. Hier passt auch Play gut rein und (nicht nur) deswegen steht auch AngularJS noch recht weit oben auf meiner Interessenliste. Diese Themen könnten entsprechend hier demnächst vermehrt aufschlagen.

Zudem habe ich meine persönlichen und beruflichen Computingplattformen nun schon seit einiger Zeit komplett auf Apple gewechselt. Das war nicht zuletzt durch meine guten Erfahrungen mit iOS motiviert, hatte aber auch damit zu tun das mich bei Ubuntu Unity nicht so richtig glücklich gemacht hat und ich davon angenervt war keine Video on demand Dienste nutzen zu können (wegen nicht unterstütztem DRM), wegen der nicht vorhandenen Hardwareunterstützung zum Drucken/Scannen Windows booten zu müssen, keine gute Banking- und Steuersoftware zu bekommen und vom Hardwaresupport meines damaligen Dell XPS will ich gar nicht sprechen. Ich habe zunächst an meinem privaten Arbeitsplatz auf einen 27″ iMac umgestellt und war so zufrieden mit Hard- wie Software, das ich beim Wechsel meines Arbeitgebers direkt auch beruflich auf ein 13″ MacbookPro umgestellt habe. Auch hierum könnte es hier in Zukunft also ab und an gehen, aber das OSX natürlich im Kern noch immer ein BSD ist überschneiden sich hier viele Dinge mit Linux und gerade Commandline Tools sind häufig gleich.

Webapplikationen mit Vaadin

Webapplikationen mit Vaadin

Nach einiger Evaluierungszeit, für ein anstehendes Projekt, hat sich meine Firma für den Einsatz eines Webframeworks namens Vaadin entschieden. Da ich von dem Framework und der dahinter stehenden Company sehr begeistert bin möchte ich meine 2 Cents zur Verbreitung beitragen und einmal kurz umreißen worum es sich handelt.

Vaadin ist ein finnisches Framework das von der gleichnamigen Firma entwickelt wird. Es handelt sich um ein serverseitiges Java Framework das auf dem Google Web Toolkit (GWT) aufsetzt. Die Aufgabe des GWT Compilers ist es den Java UI Code in natives Javascript zu übersetzen und gleichzeitig Anpassungen für die verschiedenen Browser vorzunehmen. Der Vorteil hierbei ist das die Nutzer keine PlugIns brauchen und die entstehenden Applikationen sofort auf allen gängigen Browser lauffähig sind. Die Entwickler brauchen durch dieses Vorgehen selber kein Javascript mehr zu entwickeln, wodurch vor allem das Debuggen sehr erleichtert wird da man die üblichen Java Debugger nutzen kann.

Im Gegensatz zu GWT nutzt Vaadin einen serverseitigen Ansatz. Das bedeutet das sämtliche Applikationslogik sowie auch die Views und deren Events etc. auf dem Server laufen. Hierdurch erspart man sich ein eigenes Management der Client/Server Kommunikation die aber natürlich mit etwas mehr Serverlast erkauft wird. Bei Vaadin selbst spricht man von 10.000 möglichen Concurrent Usern pro „modernem“ Server. Für eine Webapplikation die in einem eingegrenzten Nutzerkreis einen Desktop Applikation ersetzen soll dürfte das mehr als genug sein, für ein neues Twitter aber sollte man sich wohl eher nach etwas anderem umsehen (wobei ein relativ leichtes Clustering mehrerer Server möglich sein soll).

Vorteile die für Vaadin sprechen sind dass das komplette Java Ökosystem samt IDEs, Tools, Libraries und allem drum und dran genutzt werden kann. Selbst der Einsatz anderer JVM Sprachen wie Scala oder Groovy ist möglich. Da alles standardmäßig in Java entwickelt wird ist auch die Lernkurve für Java Entwickler nicht sehr steil und die Entwicklung kann relativ schnell starten. Im Gegensatz zu vielen anderen Java Frameworks nutzt Vaadin keine XML Konfigurationsfiles, was das Arbeiten ebenfalls sehr angenehm gestaltet. Nicht zuletzt ist Vaadin sehr gut dokumentiert. Es existiert ein eigens geschriebenes Buch das kostenlos herunterladbar oder auch als Druckversion zu haben ist (wird auch gern auf Konferenzen kostenlos verteilt). Sollten trotzdem noch Fragen offen bleiben steht ein Forum zur Verfügung an dem sich viele Mitarbeiter von Vaadin beteiligen. Reicht das immer noch nicht aus gibt es noch die Möglichkeit via Twitter, IRC oder Mail direkt Kontakt aufzunehmen der (meiner Erfahrung nach) auch immer recht schnell beantwortet wird, oder man besucht einfach eine der vielen Veranstaltungen wo Vaadin Talks abhält oder mit einer Booth zu gegen ist.

Wer sich für Vaadin interessiert kann sich einen ca. 45 minütigen Einstiegstalk von Joonas Lehtinen (CEO bei Vaadin) in englisch ansehen.

Mehr zum Thema Vaadin folgt sicher demnächst hier

Maven Archetypes in Eclipse

Maven Archetypes in Eclipse

Wer sich schon immer gefragt hat wieso auch bei installiertem m2eclipse Maven-Plugin nur eine minimale Auswahl an verschiedenen Archetypes in Eclipse zur Verfügung steht kann diese Auswahl ganz einfach manuell erweitern. Dazu muss im Eclipse das Maven Archetype Menü geöffnet werden:

Window > Preferences > Maven > Archetype

Dort kann unter der Option Add Remote Catalog ein beliebiges Repository eingetragen werden. Am sinnvollsten ist hier das Maven Central hinzuzufügen (http://repo1.maven.org/maven2/archetype-catalog.xml). Nun sollten etliche neue Archetypes zur Verfügung stehen.

maven archetypes