Hallo allerseits,
das letzte Jahr war ja recht spannend was die Einführung/Verbreitung neuer Web-Technologien anbelangt.
- Mit Node.js hat sich JavaScript auf dem Server durchgesetzt
- Composer bietet Dependency-Management unter PHP
- ORM ala Doctrine wird immer ausgereifter
- D3 hat sich etabliert
- Ruby On Rails ist immer mehr am kommen
- JavaScript Frameworks sprießen aus dem Boden Meteor, Backbone, Ember, Angular..
- Zend hat die 2. Versionsnummer erreicht, so auch Symfony
- JSON als Datenhaltung hat sich etabliert (CouchDB, allg. No-SQL)
- Google's GO verdient auch eine detailliertere Betrachtung
- Das Grails-Framework ist erwachsen geworden
- Mit Stripe steht einem eine sehr vereinfachte Payment-Anbindung-Solution zu Verfügung
- Continuous Integration etabliert sich nun auch außerhalb der Java-Welt (Travis-CI, Jenkins)
- Viele Architekturen werden modularisiert (bsp RESTful-BackendAPI + JS-Frontend)
- Responsive-Design ist nicht mehr ein Fremdwort
und und und.. die Liste kann man noch beliebig erweitern.
Ich verfolge die Entwicklung relativ begeistert, muss aber auch eingestehen, dass ich - als jahrelanger Java-Entwickler - die ganzen Hypes auch recht kritisch betrachte. Ich wäre zum Beispiel bisher nicht auf die Idee gekommen node.js als Backend-Solution zu nutzen. Dafür ist mir das noch viel zu frisch. Auch würde ich mich nur selten für RubyOnRails entscheiden, wenn man ähnliches mit Grails auch im Enterprise-Sektor haben kann. Auch weiß ich die No-SQL-Datenbanken noch nicht so recht zu deuten - sehe aber auch ein, dass man sich in Bezug auf die oben erwähnte stark zunehmende Modularisierung der Web-Architekturen evtl. auch von alten Denkmustern befreien muss.
Nun die Frage, wie es wohl in 2013 aussehen wird.
In den nächsten Wochen steht bei mir die Planung der Architektur für ein doch recht großes Projekt an.
Und nun bin ich das erste Mal an dem Punkt angelangt, nicht reflexgebunden J2EE in den Raum zu schreien.
Habe auf der anderen Seite jedoch auch meine Zweifel was eben den Enterprise-Sektor der neuen Technologien anbelangt.
Im Falle der SPA-Frameworks (Single Page Applications) bin ich zum Beispiel gut abgeschreckt, da sich grundlegende APIs selbst in Minor-Versionen geändert haben. Und ich habe den Eindruck, dass man zwar die Notwendigkeit solcher Frameworks erkannt hat, aber noch nicht so recht weiß, wohin genau die Entwicklung eigentlich gehen soll.
Node.js. JavaScript auf dem Server. Als Web-Entwickler, der noch aus den Zeiten stammt, in denen es jQuery noch gar nicht gab -
bereitet mir der Gedanke - wenn ich ehrlich bin - doch etwas das Bauchschmerzen. Und ich kann mich nicht so wirklich von dem Gefühl trennen, dass das nicht der richtige Weg ist bzw. dass es sich hierbei eben um einen Hype handelt.
Grails ist mitterweile sehr ausgereift, man stößt aber leider immernoch an Performance-Probleme, wenn man mit einer nicht geringen Menge von Domain-Instanzen arbeitet. Aber im Gegenzug bekommt man eben die Vorzüge von J2EE gepaart mit einem sehr flexiblen und gutem Framework.
PHP/Zend. Dank der Annotations-Interpretierungen der gängigen IDEs kann mitterweile die Typenlosigkeit gut umgangen werden. Auch dank Tools wie Doctrine hat sich das ORM vereinfacht - auch wenn man noch Welten von den in anderen Sprachen etablierten Pendants (LinQ, Hibernate, etc) entfernt ist.
Symfony2. Das macht mitterweile einen doch recht sauberen Eindruck auf mich - zumal auch Doctrine von Haus aus integriert ist (Component). Und Unit-Testing auch ausreichend unterstützt wird.
Über Laravel 4 hört man auch einiges Gutes in letzter Zeit.
Nun denn, was die Architekt angeht, so werde ich wohl weiterhin an dem Aufbau
RESTful Backend-API <-> Clients
festhalten.
Welche Technologien ich jedoch verwenden werde, da bin ich mir eben noch nicht sicher.
Vielen Dank fürs Lesen,
würde ich mich über ein paar Eindrücke/Erfahrungen eurerseits freuen.
Kristof