Show notes
Wir sprachen mit Matthias Richter über die Freuden der Java-EntwicklungEinleitung & GST-Meta (00:00:00)Matthias Richter (@mr_samma) ist heute unser GastGST019 mit Stefan Schiffer "Weg von .NET & Windows": http://geekstammtisch.de/#GST019Der Geekstammtisch und die Nerdkunde beim Rudelpodcasten: http://das-sendezentrum.de/blog/podcasts-aus-unserer-30c3-assemblyDas neue Büro des Home Office Cologne in der Lindenstraße 14: https://twitter.com/HomeOfficeCGN/status/425630254364119040Unser Gast (00:02:45)Matthias hat mit Dirk & Basti studiert…und hat nach dem Studium als Java Entwickler bei einer Softwarefirma im "Telekommunikationsumfeld" gearbeitetMatthias hat dort nie Admins zu Gesicht bekommen :)Nach vier Jahren hat Matthias dann etwas neues gesucht und ist in der Logistikbranche gelandetKleineres Unternehmen, eigene Produkte, jeder macht alles (Matthias ist also "auch" Admin)wollte weiter auf der JVM entwickelnScala: http://www.scala-lang.org/Clojure Koans: http://clojurekoans.com/Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (von Bruce A. Tate): http://pragprog.com/book/btlang/seven-languages-in-seven-weeksJava-Entwicklung (00:12:30)Dirk hat das letzte mal ernsthaft Java 2005 gemacht (mit Apache Struts, http://struts.apache.org/); "Das war schlimm!" – DirkBasti hat es nie ernsthaft gemacht (abgesehen vom Studium)"Java, das Ökosystem"Die JVM ist ein ErfolgsmodellK virtual machine (KVM): http://en.wikipedia.org/wiki/KvirtualmachineJava Platform, Micro Edition, J2ME: http://en.wikipedia.org/wiki/JavaPlatform,Micro_EditionJava EE Application Server: http://en.wikipedia.org/wiki/Comparisonofapplication_serversJava ME / SE / EE: http://docs.oracle.com/javaee/6/firstcup/doc/gkhoy.htmlJava Community Process: https://www.jcp.org/en/home/indexServlet API ist Teil der Java EESpring Framework: http://spring.io/Zwischen Anhängern von Spring und Java EE hat sich ein flame war entwickelt:Blog Beitrag eines bekannten JEE Evangelist inkl. Antworten von Spring Mitarbeitern in den Kommentaren: https://blogs.oracle.com/arungupta/entry/whyjavaee6isAntwort eines VMWare Mitarbeiters: http://www.iamjambay.com/2012/03/arun-gupta-java-ee-6-and-spring.htmltl;dr: hier eine Zusammenfassung auf deutsch: http://jaxenter.de/news/JavaEE-versus-Spring-Hitzige-Debatte-um-Arun-Guptas-Legacy-VorwurfMatthias würde immer Spring wählen, da es dynamischer ist und aktuellerSpring legt wesentlich mehr Wert auf TestingJava 8 SE Release März 2014, EE dann wesentlich später, irgendwann noch später lassen sich Application Server zertifizieren Vielzahl an Java Frameworks für jeden ZweckWeb Frameworks, die "Großen" http://zeroturnaround.com/rebellabs/the-curious-coders-java-web-frameworks-comparison-spring-mvc-grails-vaadin-gwt-wicket-play-struts-and-jsf/Liste von sonstigen Web Frameworks: http://java-source.net/open-source/web-frameworksListe von Persistenz Frameworks: http://java-source.net/open-source/persistenceFrameworks zur asynchronen Verarbeitung: http://spring.io/blog/2013/05/13/reactor-a-foundation-for-asynchronous-applications-on-the-jvmhttp://akka.io/http://vertx.io/Web Service Frameworks, Xfire, Apache CXFDAO / ActiveRecord als Beispiel dafür, dass in Rails Dinge falsch angegangen werdendies kann aber für einfache Anwendungsfälle in Ordnung sein, findet Matthias, Dirk sieht das aber andersDAOs sind lange Standard in Java Apps gewesenmittlerweile werden häufig Repositories eingesetzt: http://thinkinginobjects.com/2012/08/26/dont-use-dao-use-repository/Repository Ansatz in Java EE 6 / 7Misko Hevery zu AR: http://misko.hevery.com/2009/05/05/the-problem-with-active-record/Spring Roo nutzt ActiveRecord Pattern in Java Apps: http://docs.spring.io/spring-roo/reference/html/architecture.html#architecture-daoAR in Rails tief verwurzelt, ermöglicht aber die Geschwindigkeit in der Rails EntwicklungMatthias findet opinionated Ansatz in Rails gutMatthias macht mittlerweile Projekte mit JRuby on Rails, AngularJS und ElasticsearchElasticsearch basiert auf Lucene, in Java geschriebenDeployment & JVM (01:20:00)JRuby ist ein guter Einstieg in Ruby-Entwicklung gewesen, da man "nur" ein WAR (https://en.wikipedia.org/wiki/WAR(fileformat)) erstellen muss und es im bisherigen Application-Server deployedJava Wissen auf der Betriebsseite kann im Grunde 1:1 weiter verwendet werdenAuch Deploymentstruktur über Jenkins konnte weiter verwendet werdenDeployment via JMX (https://en.wikipedia.org/wiki/JavaManagementExtensions)Das WAR wird per Warbler erstellt (http://caldersphere.rubyforge.org/warbler/)Switch von Java auf JRuby ist schneller gemacht als die Umstellung von JBoss auf nginx+passenger (o.ä.)Maven ist auch im Projekt o/Entwicklungsumgebung (01:23:05)Matthias hat jahrelang Eclipse verwendet, dann zu IntelliJ gegangenMit Ruby dann zu RubyMine gegangen (bzw. IntelliJ mit Ruby-Plugin)Sublime Text auch mal ausprobiert, geweintVim ausprobiert, noch mehr geweintAngularJS auch in RubyMine, Alternativ auch WebStorm vielleicht eine MöglichkeitLokale Entwicklung ist schneller geworden, da kein Kompilieren und Deployment mehrLokal wird die Anwendung mit Puma/JRuby entwickelt sowie Grunt für JavaScriptKeine weiteren Java-Abhängigkeiten (außer dem Datenbanktreiber)Basti möchte wissen wie der Umstieg von IDE in die Welt des Terminals warMatthias ist aber leider ein schlechtes Beispiel ;-) Er hat Eclipse eigentlich immer "nur" als Editor verwendetMatthias würde sich gerne auch Vim mal ansehen, aber scheut derzeit die LernkurveFrage: Warum Vim? Antwort: Kosten. Aber wir stellen in Frage, ob die Kosten wirklich ein Grund ist. Wahrscheinlich nicht :-)Insgesamt ist Matthias noch in der Findungsphase: RubyMine ist aber ein FavoritMatthias hat Spaß auf neue Tools umzustellen :-)Next Steps (01:30:47)Derzeit macht er AngularJS Entwicklung, Testing mit Karma, Jasmine, PhantomJSEs wird auch für Mobile-Plattformen mit AngularJS und Cordova (https://cordova.apache.org/) entwickeltDie Software die derzeit entwickelt wird, ist sehr allgemein einsetzbarIm Grunde geht darum Firmen zu unterstützen ihren Kram zusammenzuhaltenZusätzlich gibt es Systeme die auf Gabelstapler montiert werdenDer Branchenwechseln war eine gute IdeeFazit (01:33:10)Bewertung des Wechsels: Positiv, nicht nur wegen dem Spaß sich in neue Dinge einzuarbeitenFrontend-Entwicklung mit AngularJS fühlt sich tatsächlich mal an wie Entwicklung ;-)Gab es auch Probleme bei der Umstellung?Einige Mitarbeiter wollen sich nicht mit so vielen Technologien befassen, das kann auch OK sein, aber man muss damit als Unternehmen/Team umgehenEin Kollege ist auch gegangen, da er mehr .NET machen wollteLernkurven müssen an die Geschäftsführung und die anderen Kollegen kommuniziert werdenViele Parallenen zu GST019 (http://geekstammtisch.de/#GST019)Die Umstellung ist unter anderem auch dadurch motiviert worden, weil der Chef die Folge gehört hat :-)Frage dann vom Chef: Was ist eigentlich dieses Ruby und Rails? Und wenn das so gut ist, warum machen das nicht alle?Entwicklungsgeschwindigkeit hat mit überzeugtAusklang (01:38:35)Wir sind uns einig, dass die Folge Leute nicht davon abhalten wird weiter Java zu bashen. Dafür ist es auch einfach zu lustig.Kritiker werden sagen: "Matthias hat ja dann doch von Java auf Ruby gewechselt"Matthias hat sich eigentlich auf Java 8 gefreutDas Unternehmen wird nie ganz auf (J)Ruby umstellen, dafür gibt es zu viele Bereiche in denen man Software entwickelt. Gleichzeitig macht das den Reiz ausJRuby hat zwar kein Komitee aber dennoch genug Entwicklungsresourcen :-)Problem ist aber, dass die Community recht klein ist und man schwieriger Lösungen für seine Probleme findet:Erste Einschränkung: JRubyZweiter Einschränkung: JBoss DeploymentMatthias empfiehlt: Wenn man kein Java-Know-How hat, einfach MRI verwendenWir fordern Matthias zu Usergroups zu kommen und ihr Wissen zu teilenVor allem JRuby Wissen in die Welt zu tragen lohnt sichNoSQL-Matters als Konferenz Empfehlung (http://2014.nosql-matters.org/cgn/)Wenn man ernsthaft JRuby macht, kann man auch mal mit dem Core-Team Kontakt aufnehmen, die freuen sich über derartiges FeedbackHiring-Pitch (01:44:06)Wir fragen explizit nach ob noch Entwickler gesucht werdenAntwort: JaFirma sitzt in St. Augustin, direkt neben der FHFrOSCon quasi einen Steinwurf entfernt ;-)Aufgaben sind sehr vielfältig (Mobile-Entwicklung, Emedded-Entwicklung, Hardware-Entwicklung, Web-Entwicklung, Infrastruktur, etc.)Die Branche nennt sich: Intra-LogistikDie Firma heißt IdentPro: http://www.identpro.de/de/, aber bitte nicht von der Webseite abschrecken lassen, die ist old-school-Industrie-kompatibel o/

