Frage Warum sollte ich jQuery anstelle von GWT verwenden? [geschlossen]


Ich muss mich für mein neues Projekt zwischen jQuery und GWT entscheiden.

Ich habe JavaScript für eine Weile nicht programmiert und ich habe in den letzten paar Tagen in GWT gesucht. Es sieht ziemlich genial aus und generiert all die verschiedenen JS für verschiedene Browser und alle anderen:

  • die Entwicklung in Java benötigt mehr Zeit als die gleiche Sache mit jQuery (zumindest für dieses Projekt)
  • die Dokumentation ist schlecht (zB wie soll ich wissen, welche Elemente ich beim Entwerfen der Seite verwenden soll? - es gibt nicht genug Dokumentation dafür)

Ich benutze jQuery für die meisten meiner Projekte und es ist ziemlich gut.

Ich möchte den Kunden davon überzeugen, dass jQuery für dieses Projekt besser geeignet ist und ich brauche mehr Argumente, um dies zu unterstützen.


75
2017-07-30 08:44


Ursprung


Antworten:


Ich würde mit JQuery gehen.

Ich habe einmal ein GWT-Projekt gepflegt, das mich schließlich gezwungen hat, es zweimal zu schreiben. Erstens als refaktorierte GWT-App, zweitens in JQuery.

Ich habe Javascript seit langer Zeit nicht ernsthaft berührt. Das letzte Mal war ungefähr 2002. Ich bin ein Java-Entwickler, also war mein erster Eindruck von GWT großartig. Aber das war nur der Eindruck.

Probleme, die ich mit GWT gefunden habe:

  1. Es zwingt Sie, seiner Client / Server-Struktur zu folgen. Am Ende will ich nur AJAX und diese guten Widgets. GWTs Widgets selbst scheinen nicht so gut auszusehen. Ästhetisch bevorzuge ich Adobe Flex! Aber um den Vergleich näher zu bringen, sieht die Benutzeroberfläche von JQuery besser aus als die von GWT. Außerdem hast du den wunderbaren Theme Roller-Support von JQuery.

  2. Ich habe DWR versucht. Es ist großartig. Es ist viel einfacher, AJAX in Ihrem Java-Code mit DWR als GWT zu aktivieren.

  3. Wenn Sie GWT verwenden, werden Sie eventuell gezwungen sein, JavaScript zu lernen. Arjen von SpringSource sagte einmal über XML und SOAP (aber nicht das genaue Zitat): "Wie können Sie WebServices entwickeln und XML nicht kennen? SOAP ist XML. Sie können es nicht vermeiden". Das gleiche gilt für GWT. Es ist immer noch Javascript am Ende.

  4. Realistisch gesehen ist Javascript nicht so schwer zu erlernen wie Java. Mehr Leute kennen Javascript als Java. Selbst Webdesigner wissen es. Sie sind Programmierer und haben Angst vor Javascript?

  5. Zurück zum Projekt habe ich neu geschrieben. Als ich unsere GWT-Anwendung umgeschrieben habe, brauchte ich fast zwei Monate, um sie neu zu schreiben. Mit JQuery habe ich zwei Wochen gebraucht, und ich war mit JavaScript verrostet.

  6. Mit JQuery schreiben Sie nicht wirklich hardcorde JavaScript. Deshalb verwenden Sie JQuery an erster Stelle. Mit GWT Code zu pflegen ist schrecklich. Du willst die letzten Änderungen sehen, die du im Code gemacht hast ... geh kompilieren ... warte auf GWT ... 5 Minuten ... spüle ... und wiederhole und hoffe, dass es keinen Fehler gibt. Wenn dies der Fall ist, werden Sie erneut kompiliert und warten weitere 5 Minuten. Spülen und wiederholen. Mit JQuery ändern Sie eine Zeile, aktualisieren Sie Ihren Browser. Erledigt.

Ich weiß, ich bin hier nicht objektiv, aber ich teile nur meine Erfahrung :) Die Moral ist nicht Angst vor Javascript. Google benutzt sowieso Javascript


63
2017-12-19 14:36



Ich würde vorschlagen, GWT für Teams mit Leuten zu verwenden, die JavaScript nicht verstehen, aber (vielleicht) mit Java vertrauter sind. Mit GWT sparen Sie sich wahrscheinlich Tage, wenn nicht sogar Wochen im Kompatibilitätstest, und vermeiden viel übliche JavaScript-Fallstricke dass Leute, die neu in der Sprache sind, hineinstoßen. GWT hat auch großartige Verpackungsfunktionen für CSS-Sprites, eingebettete Daten, und Mehr.

Jedoch, Wenn Sie JavaScript verstehen und verstehen, würde ich JavaScript verwendenWas auch immer Ihre Bibliothek der Wahl sein mag. Obwohl ich keine Gelegenheit hatte, den generierten Code von GWT zu genau zu untersuchen, habe ich einige Beispiele bei Google I / O gesehen, und obwohl alles nach Candy und Sparkles aussieht, werden Sie wahrscheinlich eleganteren JavaScript-Code erstellen, der es altmodisch macht Weg.


56
2017-07-30 09:38



Wenn Ihre Gruppe mit Java am besten vertraut ist und Sie beabsichtigen, umfangreiche clientseitige Funktionen auszuführen, sollten Sie zumindest GWT evaluieren. Der Typ Sicherheit, Eclipse-Debugging und gemeinsamer Code zwischen der serverseitigen / clientseitigen Seite wird sich für Ihr Java-Entwicklungsteam als angenehm empfinden.

Wenn Ihr Team jedoch an die JavaScript-Programmierung mit jQuery oder einer anderen JavaScript-Bibliothek gewöhnt ist, ist es möglicherweise einfacher, sich an eine Technologie zu halten, die reines JavaScript ist. GWT kann große Teile der Seite übernehmen, was den meisten JavaScript-Entwicklern unbekannt ist. Indem ich die Seite übernehme, meine ich, dass typischer GWT-Code gerne eigene DOM-Elemente erstellt, anstatt vorhandene Elemente auf der Seite mit Funktionalität zu versehen. Aus diesem Grund haben viele GWT-Apps beim Laden der Seite einen "loading ..." - Bildschirm. Dies ist nicht notwendig, aber es ist der üblichste Stil der GWT-Entwicklung.

Die Tatsache, dass generierter Code aus GWT stammt, ist für die meisten GWT-Entwickler weniger relevant. GWT ermöglicht es Ihnen, Java in etwas zu kompilieren, das einer normalen Java * .class-Datei entspricht, aber in einer JavaScript-Syntax, die der Webbrowser versteht. GWT verhält sich eher wie ein Compiler als ein Template-gesteuerter Code-Generator. Es gibt Zeiten, in denen Sie den generierten Code überprüfen müssen, aber das Debuggen erfolgt größtenteils über Ihren Java-Debugger in Java.

Eine andere Sache, über die Sie nachdenken sollten, ist, dass unabhängig von der clientseitigen Technologie, die Sie wählen, Ihr Entwicklungsteam mit HTML, JavaScript, CSS und Browser-Programmierung im Allgemeinen vertraut sein muss. Mit GWT können Sie clientseitigen Code in einer vertrauten Java-Umgebung schreiben, aber er verdeckt nicht die Tatsache, dass Sie in einem Browser arbeiten.


18
2017-08-03 13:33



Der erste Vergleich von GWT mit jQuery macht keinen Sinn. Während jQuery so erstellt wurde, dass Cross-Browser-Arbeiten mit dem DOM viel einfacher sind, wurde GWT so erstellt, dass große Web-Anwendungen erstellt werden können.

Also, wenn Sie eine Reihe von statischen Seiten mit einigen unabhängigen Widgets, wie Kalender, Slider und so weiter, jQuery ist genug. Wenn Sie eine einzelne Seiten-App erstellen möchten, vielleicht mit einem großen Team, ist GWT der bessere Weg. GWT hat eine Menge gut Design-Architektur unter der Haube, vor allem die Build in MVP-Muster, UI-Binder Templating-System, i18n Unterstützung usw.

Als JavaScript-Entwickler, der mehr als ein Jahr an einer großen GWT-App arbeitet, würde ich empfehlen, nie eine einzelne Seite nur mit jquery zu erstellen, weil sie nicht dafür erstellt wurde. Wenn Sie JavaScript verwenden möchten, schauen Sie sich Wirbelsäule, Wirbelsäule, Knockout oder Dojo an.

Übrigens, wenn die GWT-Architektur gut ist, werden Sie viel JAVA-Overhead haben. Wenn Ihr Projekt wächst, wird die Zeit, Ihre CSS- und i18n-Eigenschaften zu kompilieren, ärgerlich.


15
2017-12-04 11:14



"Pferde für Kurse"

Wählen Sie, was auch immer am sinnvollsten für das Projekt ist. Einige Dinge zu beachten

  • Enge Zeitskalen und vertrauter mit einander
  • Geschwindigkeit und Wartbarkeit für andere Entwickler, um das gewählte Tool zu verwenden. Die Prävalenz von einem über den anderen kann hier auch Auswirkungen haben
  • Haben Sie einen Code, der bereits im Projekt verwendet werden könnte, z. Plugins, Utility-Funktionen usw.

Ohne genau zu wissen, worum es in dem Projekt geht, was Ihre Erfahrung ist und wie offen der Kunde ist, verschiedene Technologien / Frameworks zu verwenden, wird es keine entscheidende Antwort geben.

Mache diese Liste von überzeugenden Argumenten füreinander, wie ich hier begonnen habe und diskutiere dann mit anderen am Projekt Beteiligten, um zu einem Abschluss zu kommen.


10
2017-07-30 09:00



Die Antwort ist nicht einfach. Die Antwort ist "es kommt darauf an":

GWT:

  • wenn Sie Java kennen und mögen
  • Wenn Ihr Servercode auch in Java geschrieben ist, ermöglicht das Schreiben von Clientcode in Java die Verwendung desselben Codes auf Client und Server
  • Wenn Sie Dinge mögen, die von stark typisierten Sprachen zur Verfügung gestellt werden: Kompilieren der Typprüfung, automatisiertes Refactoring, automatische Codegenerierung (Strg + 1 in Eclipse), Codevervollständigung (Strg + Leertaste)
  • wenn Sie komponentenorientierte Programmierung bevorzugen (zB MenuBar erstellt ein Menü)
  • wenn die Komplexität von GWT (im Vergleich zu jQuery) kein Problem für Sie ist
  • Wenn großer generierter Code kein Problem für Sie ist

jQuery:

  • wenn Sie JavaScript kennen und mögen
  • Sie müssen nicht denselben Code auf Client und Server verwenden (zB Client - JS, Server - Java oder PHP)
  • Wenn Sie keine Überprüfung der Kompilierungszeit benötigen, automatisiertes Refactoring, etc
  • Wenn Sie keine komponentenorientierte Programmierung benötigen (um eine komplexe Komponente in jQuery zu erstellen, müssen Sie eine Reihe von divs erstellen und $ ("this divs") aufrufen. makeXXXXControl ())
  • Wenn Sie Einfachheit mögen (jQuery ist einfacher als GWT)
  • wenn Sie sehr kleinen Code benötigen (zB um Webseiten schneller zu laden)

Persönlich würde ich GWT für die meisten Projekte empfehlen, aber jQuery hat auch Profis und einige Leute bevorzugen jQuery.


10
2017-07-15 20:32



Ich stimme Russ Cam zu, dass es darauf ankommt, was dein Team kennt. Wenn ich für meine persönlichen Business-Apps arbeite, bevorzuge ich GWT. Ich finde Javascript, sogar mit jquery, um störende objektorientierte Syntax zu haben. Wenn Sie eine App mit 10.000 Zeilen UI-Code haben, erscheint mir Jquery als etwas, das zu einem Chaos schwer wartbaren Codes mit geringer Wiederverwendung führen würde.

Weiß jemand von einem großen Projekt, das in jQuery erfolgt ist?

Ich denke, wenn Sie versuchen, jedes letzte Byte aus der resultierenden Dateigröße herauszuquetschen, verwenden Sie keine Bibliothek und schreiben Sie das Javascript von Grund auf neu (zB: google homepage fade effect).

Etwas zum Nachdenken über Javascript / jquery gegen gwt. Wenn Sie gängige objektorientierte Prinzipien und Entwurfsmuster verwenden, erhalten Sie mit gwt wahrscheinlich bessere Leistung. Warum?

Nehmen wir das Beispiel der Polymorphie. Wenn Sie eine App schreiben, die einen starken Polymorphismus in JavaScript verwendet, erhalten Sie den Vorteil der Wartungsfreundlichkeit und der Wiederverwendung von Code. Ihr Code wird jedoch auch den Leistungseinbruch durch die Verwendung von Polymorphie erzielen.

Nun, wenn Sie gwt verwendet haben, erhalten Sie auch den Vorteil der Wartbarkeit und Code-Wiederverwendung, aber der gwt-Compiler wird den Polymorphismus in eine konkrete Klassenbenutzung optimieren und somit die Leistung erhöhen.


4
2017-08-02 22:20



Ich denke GWT ist zu viel Abstraktion. Javascript ist in der Tat eine mächtige Sprache. Sie können objektorientierten Code schreiben und Namespaces verwenden. Mit einer Bibliothek wie jQuery müssen Sie sich bei den meisten Aufgaben nicht um Browserkompatibilitätsprobleme kümmern. Mit all den tollen Browser-Entwickler-Tools (wie Firebug) in allen gängigen Browsern jetzt ist es sehr einfach mit JavaScript zu arbeiten. Wenn ein Javascript-Fehler auftritt, kann ich leicht feststellen, wo es in meinem Code passiert ist. Ich kann Variablen beobachten und weiß alles, was im Detail passiert, weil ich gegen den Code arbeite, den ich geschrieben habe (im Gegensatz zu GWT).


3
2018-01-05 12:58