Das Ziel von SpringSource ist es, den Mitarbeitern das Erstellen, Ausführen und Verwalten von Spring-basierten Lösungen so schnell und einfach wie möglich zu machen. Wir haben sowohl Grails als auch Spring Roo, weil uns die Entwicklerproduktivität sehr am Herzen liegt und beide Tools zweifellos einen ernsthaften Schub für das liefern, was Teams zusätzlich zu Spring erreichen können.
Wir haben beide Technologien, weil Roo und Grails auf philosophischer und Implementierungsebene sehr unterschiedlich sind (wie bereits in den anderen Antworten erwähnt). Jede Technologie nähert sich ihrer Primärsprache (Java oder Groovy) und ihrem Betriebsmodell (Entwicklungszeit oder Laufzeit) mit der Philosophie "Wie können wir das Wertversprechen mit dieser Kombination aus Sprache und Betriebsmodell unglaublich gut machen?". Als solches werden Sie sehen, dass jede Technologie einen anderen Stil annimmt, der diese Kombination (Roos Java + Dev-Zeit oder Grails Groovy + Runtime) und die entsprechenden Vorteile maximiert.
Diese Unterschiede sind tatsächlich sehr positiv, da die Spring-Community wählen kann, welchen "Geschmack" der Produktivitätslösung sie bevorzugen. Während diese anfänglichen Unterschiede in Bezug auf die Sprachauswahl und den Laufzeit- / Entwicklungszeitbetrieb sofort erkennbar sind, erstreckt sich die Auswahl von Grails oder Roo auch auf subtilere Überlegungen wie die verwendeten Standardtechnologien, das Benutzerinteraktionsmodell, die IDE-Unterstützung, Abhängigkeiten, Standards, Roadmap, Erweiterungen usw. Fast alle diese Unterschiede sind eine natürliche Folge der Suche nach einer Best-of-Breed-Lösung für einen bestimmten Sprachstil.
Unser bester Rat ist, beide Lösungen in Betracht zu ziehen. Jeder hat seine Sweet Spots, aber es gibt Unterschiede zwischen den beiden, die Ihre Gesamterfahrung mit der einen oder anderen Technologie in einem bestimmten Kontext verbessern. Beide Nachschlagewerken detailliert die jeweiligen Vorteile der einzelnen Lösungen . Denken Sie natürlich daran, dass der Zeitaufwand für das Ausprobieren von beiden minimal ist. In 10 Minuten können Sie ein Projekt in Roo oder Grails erstellen. Probieren Sie sie aus und sehen Sie, was sich für Sie angesichts Ihres spezifischen Hintergrunds und Ihrer Projektanforderungen natürlicher anfühlt.
Der Hauptunterschied besteht darin, dass Roo ein reines Java-Framework ist, während Grails sowohl Groovy als auch Java nutzt. Beide basieren auf den Kernbibliotheken von Spring und verwenden beliebte Java-Open-Source-Bibliotheken.
Diese Frage wurde zurückgestellt, als Roo angekündigt wurde und Graeme Rocher (Grails Lead) sagt, dass beide Frameworks einen Platz im Frühling haben und gleichermaßen unterstützt werden.
Ich denke, Grails hat eine bessere Zukunft als Roo. Ich liebe es, mich damit zu entwickeln und sehe keine Nachteile darin, dass es kein reines Java ist.
quelle
Grails und Roo sind sehr unterschiedlich. Der erste große Unterschied ist die verwendete Sprache. Während Sie Groovy-Code wie herkömmlichen Java-Code schreiben können, benötigen Sie dennoch die Groovy-Abhängigkeiten, um Grails-Anwendungen auszuführen. Um in Grails so produktiv wie möglich zu sein, müssen Sie auch die Funktionen in Groovy kennen, die derzeit nicht Teil von Java sind, wie z. B. Closures. Ein weiterer Unterschied ist die Philosophie, mit der die Frameworks Code generieren. Grails generiert zur Laufzeit viele Methoden, während Roo sie auf Anfrage während des Entwicklungsprozesses generiert. Roo hat keine Magie hinter den Kulissen für die Verwendung von aspektorientierter Programmierung akzeptiert, und Sie können den gesamten Code anzeigen, den Roo generiert. In Roo müssen Sie beispielsweise einen Befehl verwenden, um dynamische Finder-Methoden wie findByBook () zu generieren und dann den generierten Code in den .aj-Dateien anzuzeigen. In Grails wird die findByBook () -Methode zur Laufzeit erstellt, und Sie können den generierten Code nicht anzeigen. Mit Roo können Sie das Framework auch beenden, wenn Sie dies wünschen, während Sie weiterhin eine Anwendung ausführen, indem Sie den gesamten generierten Code in normale Java-Dateien zusammenführen. Sie haben dann weder zur Laufzeit noch zur Entwurfszeit Abhängigkeiten von Roo-Bibliotheken. Wenn Sie entscheiden, dass Sie Grails nicht mögen, können Sie die Verwendung des Frameworks nicht beenden, während Sie weiterhin eine funktionierende Anwendung haben.
quelle
IMO sind sich die beiden nicht sehr ähnlich. Obwohl es Ähnlichkeiten gibt, sind die folgenden signifikanten Unterschiede:
Roo ist sehr ähnlich zu Grails' command line - System (zB die
create-app
,create-domain-class
,test-app
-Art - Befehle gefunden in Grails). Es würde mich nicht überraschen, eine "Fremdbestäubung" zwischen diesem Teil des Grails-Rahmens und Roo zu sehen.quelle
Ben Alex von SpringSource spricht in diesem Interview über Roo und wird nach Grails vs Roo gefragt. Der Hauptunterschied neben der Verwendung verschiedener Sprachen (Groovy vs Java, wie bereits erwähnt) besteht darin, dass Roo hauptsächlich ein Entwicklungszeit-Tool ist und Grails mehr an der Laufzeit beteiligt ist.
quelle
Sie sind sich eigentlich nicht so ähnlich. Roo macht es magisch zur Kompilierungszeit, wo Grails es zur Laufzeit macht. Aus diesem Grund werden bei Roo-Projekten zur Laufzeit keine Leistungseinbußen vorgenommen.
Ich kann nicht sehen, wie sie zusammengeführt werden könnten, da Grails auf Groovy und Roo auf Java basiert.
quelle
Ich habe einige Kommentare auf den Grails-Mailinglisten gesehen, die darauf hinwiesen, dass die Autoren glaubten, dass Roo nur als Sprungbrett für Grails existiert! Ich persönlich erwäge jedoch einen möglichen Wechsel von Grails zu Roo. Ich denke, der Hauptunterschied besteht zwischen dynamischen und statisch typisierten Sprachen - für mich ist das enorm. Ich liebe viele Funktionen von Grails, aber ich bevorzuge die IDE-Unterstützung und die Überprüfung einer statisch typisierten Sprache zur Kompilierungszeit. Einige andere fühlen genau das Gegenteil, daher Pferde für Kurse. Das heißt, statische Groovy befindet sich derzeit in einer starken Entwicklung, also wer weiß, was die Zukunft bringt.
quelle
Wir hatten eine Anforderung, bei der wir eine Anwendung in der Produktion hatten und die im Frühjahr MVC entwickelt wurde, und die Geschwindigkeit bei der Entwicklung neuer Funktionen war langsam. Wir mussten alternative Frameworks wie Grails und Roo untersuchen. Ich persönlich habe fast einen Monat damit verbracht, herauszufinden, welches besser ist.
Wenn Sie die Details der Analyse sehen möchten, besuchen Sie @ http://krishnasblog.com/2012/05/08/roo-vs-grails/
Wir haben die folgenden Merkmale sowohl in diesen als auch in den folgenden Ergebnissen untersucht. Das endgültige Urteil, von dem wir nicht sicher sind, ob wir eines davon verwenden werden, untersuchen wir noch
quelle