Ist GWT immer noch eine Option für eine große Geschäftsanwendung [geschlossen]

8

Mein Unternehmen plant die Entwicklung einer brandneuen Web-Frontend-Anwendung.

Etwas Hintergrund:

  1. Es muss "brutzeln", d. h. ein schönes marktfähiges Aussehen und Gefühl.
  2. Unser Entwicklungsteam hat keine Java-Erfahrung mit begrenzter Erfahrung in Silverlight, Javascript, JQuery oder CSS.
  3. Die Zeit bis zur Markteinführung ist ein Faktor.
  4. Wir müssen große Datenmengen aus einer Oracle-Datenbank streamen.
  5. Es muss 500 - 1000 gleichzeitige Benutzer unterstützen
  6. Es wird intern hinter einer Firewall gehostet.
  7. Wir brauchen Mapping (geo-räumliche) Fähigkeiten.

Jemand hat die Verwendung von GWT anstelle von Silverlight oder traditionellen Technologien (Javascript, Jquery, CSS usw.) empfohlen.

Ich bin mir nicht sicher, ob das der richtige Weg ist? Ein Großteil der GWT News stammt aus 2007/2008. Es lässt mich denken, dass diese Technologie alt ist und vielleicht stirbt.

Wenn Sie die Wahl hätten, würden Sie GWT wählen?

    
Joyce 21.04.2011, 13:30
quelle

7 Antworten

16

Leider schließen sich zwei Ihrer Aussagen in diesem Zusammenhang gegenseitig aus:

  • Unser Entwicklungsteam hat keine Java-Erfahrung
  • Die Zeit bis zur Markteinführung ist ein Faktor

Ich bin ein Java-Programmierer, der GWT im letzten Jahr oder so aufgenommen hat. Es ist sehr effektiv, direkt mit einer kompilierten Sprache in den Browser schreiben zu können. ausgereifte Entwicklungswerkzeuge. Ich kann schneller als je zuvor durch Web-Entwicklung fliegen (mit ASP, JSP, ExtJS ...).

Aber wie die anderen Kommentatoren gesagt haben: Wenn Sie keine Java-Erfahrung haben, werden Sie es als eine echte Herausforderung empfinden, beide Technologien (Java & amp; GWT) in kurzer Zeit zu übernehmen. Wenn Sie es schaffen, es in einer vernünftigen Zeit auf den Markt zu bringen, könnte ich mir nur vorstellen, dass die Codebasis in sehr schlechtem Zustand wäre (da Sie lernen würden, während Sie gehen) - was eine sehr schlechte Grundlage für Ihr Unternehmen wäre wagen.

Auch hier hast du nicht viele Fertigkeiten in den anderen verwandten Fähigkeiten, die du aufgelistet hast.

Ich vermute, dass es eine effektivere Lösung gibt. Wie ein weiser alter Ziegen-Projektmanager sagte:

  

Ich habe drei Variablen für die Umsetzung Ihres Projekts: Zeit, Kosten und Qualität. Wähle zwei beliebige

aus

Wenn Ihre Organisation in kurzer Zeit ein qualitativ hochwertiges Produkt wünscht, ist dies der Kostenfaktor, den es zu kompensieren gilt. Ihre Organisation sollte sich GWT-Zwischenkenntnisse aneignen, um Ihnen eine solide Softwarearchitektur zu bieten und Ihr Team zu betreuen nächsten paar Monate. Danach bist du bereit, die Herrschaft zu übernehmen und eine Qualitätscodebasis zu erben, indem du 'auf den Schultern von Riesen stehst'.

    
ianmayo 21.04.2011 14:31
quelle
12

Wie andere schon gesagt haben, ist GWT definitiv kein sterbendes Projekt. Ganz im Gegenteil, denn inzwischen gibt es mehr als 20 regelmäßige Google-Beiträge (gegenüber einem halben Dutzend im Jahr 2008). Wave (obwohl es als Google-Dienst eingestellt wurde und als Apache Foundation-Projekt noch am Leben ist), Orkut, AdWords, Google Moderator und die neuen (noch Beta) Google Groups werden mit GWT erstellt; Teile von Google Buzz und ein paar andere Projekte bei Google werden ebenfalls damit erstellt.

Nun zu Ihrer Wahl:

  • Silverlight ist eine sterbende Technologie. Microsoft machte deutlich, dass es jetzt in "HTML5" investiert: Ссылка
  • GWT ist meist ein clientseitiges Toolkit, aber es beinhaltet Tools mit hoher Produktivität für Client-Server-Kommunikation (GWT-RPC und RequestFactory für End-to-End-Protokolle, AutoBeans für einfache JSON-Serialisierung). Mit UiBinder können Sie Ihre Webdesignerfähigkeiten leicht einsetzen.
  • Wenn Sie mit JS vertraut sind, dann sollten Sie sich dafür entscheiden, aber dann müssten Sie das "richtige Toolkit" (jQuery? Google Closure?) wählen. Ansonsten (das scheint der Fall zu sein), hängt es wirklich davon ab, wie viel "Ajaxy" du brauchst / sein willst. Ich glaube stark an "One-Page-Apps", aber YMMV, oder Sie können bestimmte Einschränkungen haben, die es ausschließen. In jedem Fall müssen Sie eine serverseitige Technologie auswählen.

Also, abhängig von Ihren Bedürfnissen / Wünschen und Fähigkeiten, würde ich GWT oder "etwas JS Toolkit" wählen. In jedem Fall haben Sie die volle Kontrolle über das Aussehen und Verhalten (es sei denn, Sie wählen einen der aufgeblähten Spieler: ExtJS / ExtGWT, SmartGWT oder ähnliches; Sie werden wahrscheinlich eine kürzere Zeit bis zur Markteinführung haben, aber Sie Ich werde es später zahlen, was Leistung, Integration mit anderen Toolkits und Look-and-Feel angeht.

In Anbetracht dessen, was Sie über Ihre Fähigkeiten sagen, würde ich definitiv GWT empfehlen (trotz Ihrer mangelnden Erfahrung mit Java); weil mangelnde Erfahrung mit JavaScript ist viel schlimmer als Mangel an Erfahrung mit Java (Sie sprechen von einer "großen Anwendung", so ist es wirklich wichtig, Dinge richtig zu bauen und / oder Werkzeuge haben, um Refactoring zu helfen, die Sie haben werden mit Java).

@ianmayo antwortete, während ich das oben geschrieben habe, und ich kann nur sagen, was er gesagt hat!

    
Thomas Broyer 21.04.2011 14:40
quelle
5

GWT ist definitiv nicht alt oder stirbt! Viele eigene Anwendungen von Google werden mit GWT entwickelt. Sie können die GBST-Fallstudie herunterladen und erfahren, wie das globale Finanzunternehmen funktioniert nutzt GWT, um die Produktivität zu verbessern und ein reichhaltiges Benutzererlebnis zu schaffen. Sie müssen wissen, dass wenn Sie GWT verwenden Sie automatisch Javascript, HTML, etc. Sie erstellen eine Ihre gwt-Anwendung in Java, aber wenn Sie es kompilieren gwt erstellt einen Ordner mit HTML-Dateien, JavaScript-Code, CSS, etc ...

Ich empfehle es definitiv!

    
tim_a 21.04.2011 13:57
quelle
5

Um die Leser nicht mit scheinbar einstimmigen Antworten in die Irre zu führen, sollten Sie die Objektivität im respektierten Stack-Overflow beibehalten, denn nach dem Review wurden die genauen Erfahrungen mit GWT ausgedrückt. Ob GWT abstürzt, hängt davon ab, wie viele neue Apps es übernehmen werden. Der Google-Trend kann dies erkennen ( gwt Trend ).

Auszug aus Ссылка

  

& gt;   Ich bin sowohl gut als auch schlecht, um diese Frage zu beantworten - gut, in dem ich es vorher verwendet habe, und schlecht, in dem ich ziemlich erfahren mit HTML / CSS / JavaScript war, bevor ich mit GWT arbeitete. Dies machte mich wütend, indem ich GWT so einsetzte, wie es andere Java-Entwickler, die DHTML nicht wirklich kannten, nicht waren   GWT macht was es sagt - es abstrahiert JavaScript und teilweise HTML in Java. Für viele Entwickler klingt das hervorragend. Allerdings wissen wir, wie Jeff Atwood es ausdrückt, dass alle Abstraktionen fehlgeschlagene Abstraktionen sind (es lohnt sich, sie zu lesen, wenn man GWT in Betracht zieht). Mit GWT führt dies speziell zu den folgenden Problemen:   

Verwenden von HTML in GWT saugt.   

Wie gesagt, bis zu einem gewissen Grad abstrahiert HTML sogar. Es klingt gut für einen Java-Entwickler. Aber es ist nicht. HTML ist ein Dokument Markup-Format. Wenn Sie Java-Objekte zum Definieren eines Dokuments erstellen möchten, verwenden Sie keine Dokument-Markup-Elemente. Es ist wahnsinnig ausführlich. Es ist auch nicht genug kontrolliert. In HTML gibt es im Wesentlichen eine Möglichkeit zu schreiben

<p>Hello how are <b>you</b>?</p>   

  In GWT haben Sie 3 untergeordnete Knoten (Text, B, Text) an einen P-Knoten angehängt. Sie können entweder zuerst das P erstellen oder zuerst die untergeordneten Knoten erstellen. Einer der Kindknoten kann das Rückgabeergebnis einer Funktion sein. Nach einigen Monaten der Entwicklung mit vielen Entwicklern ist es ein Kopfschmerz verursachender Prozess, zu entschlüsseln, wie Ihr HTML-Dokument aussieht, indem Sie Ihren GWT-Code nachverfolgen.   

  Am Ende entschied das Team, dass die Verwendung von HTMLPanel für alle HTML-Inhalte der richtige Weg war. Nun haben Sie viele der Vorteile von GWT verloren, dass Elemente für Java-Code leicht verfügbar sind, um einfach Daten binden zu können.   

Verwenden von CSS in GWT saugt.   

  Durch das Anhängen an die HTML-Abstraktion bedeutet dies, dass Sie auch anders arbeiten müssen. Es könnte sich verbessert haben, seit ich das letzte Mal GWT benutzt habe (vor ungefähr 9 Monaten), aber zu dieser Zeit war die CSS-Unterstützung ein Durcheinander. Aufgrund der Art und Weise, wie GWT Sie dazu bringt, HTML zu erstellen, haben Sie oft Knotenebenen, von denen Sie nicht wussten, dass sie injiziert wurden (jeder CSS-Entwickler weiß, wie sich dies dramatisch auf das Rendering auswirken kann). Es gab zu viele Möglichkeiten, CSS einzubetten oder zu verknüpfen, was zu einem verwirrenden Durcheinander von Namespaces führte. Außerdem hattest du die Sprite-Unterstützung, die wieder nett klingt, aber dein CSS tatsächlich mutiert hat und wir hatten Probleme damit, Eigenschaften zu schreiben, die wir später explizit überschreiben mussten, oder in einigen Fällen unsere Versuche vereitelt haben, codiertes CSS und musste es nur so umgestalten, dass GWT es nicht vermasselte.   

Union der Probleme, Schnittpunkt der Vorteile   

  Jede Sprache wird ihre eigenen Probleme und Vorteile haben. Ob Sie es verwenden, ist eine gewichtete Formel, die auf diesen basiert. Wenn Sie eine Abstraktion haben, erhalten Sie eine Vereinigung aller Probleme und eine Schnittmenge der Vorteile. JavaScript hat seine Probleme und wird üblicherweise von serverseitigen Ingenieuren verspottet, hat aber auch einige Funktionen, die für die schnelle Webentwicklung hilfreich sind. Think-Closures, Syntax-Kurzschreibweise, Ad-hoc-Objekte, all die Dinge, die von Jquery erledigt werden (wie DOM-Abfragen durch CSS-Selektor). Jetzt vergiss es in GWT zu verwenden!   

Trennung von Bedenken   

  Wir alle wissen, dass mit der Größe eines Projekts eine gute Trennung der Interessen von entscheidender Bedeutung ist. Eine der wichtigsten ist die Trennung zwischen Anzeige und Verarbeitung. GWT hat das wirklich schwer gemacht. Wahrscheinlich nicht unmöglich, aber das Team, in dem ich war, kam nie auf eine gute Lösung, und selbst wenn wir dachten, wir hätten es, hatten wir immer eins in das andere hinein.   

Desktop! = Web   

  Wie @Berin Loritsch in den Kommentaren schreibt, ist das Modell oder die Denkweise, für die GWT entwickelt wurde, lebende Anwendungen, bei denen ein Programm eine lebende Anzeige aufweist, die eng mit einer Verarbeitungsmaschine gekoppelt ist. Das hört sich gut an, weil so viele das Gefühl haben, dass das Internet fehlt. Aber es gibt zwei Probleme: A) Das Web ist auf HTTP aufgebaut und das ist von Natur aus anders. Wie ich oben erwähnt habe, wurden die auf HTTP basierenden Technologien - HTML, CSS, sogar Ressourcenladen und Caching (Bilder, etc.) für diese Plattform erstellt. B) Java-Entwickler, die im Internet gearbeitet haben, wechseln nicht leicht zu dieser Mentalität der Desktop-Anwendung. Architektur in dieser Welt ist eine ganz andere Disziplin.Flex-Entwickler wären wahrscheinlich besser für GWT geeignet als Java-Webentwickler.   

Abschließend ...   GWT ist in der Lage, schnell und einfach AJAX-Anwendungen mit Java zu erstellen. Wenn Quick-and-Dirty nicht wie gewünscht klingt, benutze es nicht. Die Firma, für die ich arbeitete, war eine Firma, die sich sehr für das Endprodukt interessierte, und es ist ein optischer und visueller Sinn für den Benutzer. Für uns Frontend-Entwickler bedeutete dies, dass wir HTML, CSS und JavaScript auf eine Art und Weise steuern mussten, die die Verwendung von GWT wie den Versuch, mit dem Boxhandschuh zu spielen, auf

machte
    
Jiwei Wu 13.07.2012 20:17
quelle
3

Zunächst einmal, GWT ist nicht sterben Technologie, seine Nutzung erhöht, und seine neueste Version ist 2.2. Ich benutze GWT seit 2 Jahren, seit Version 1.6. Seine Verbesserungen seit ihnen sind ziemlich erstaunlich.

Da GWT clientseitige Technologie ist, hat es nur positive Auswirkungen Ihrer Anwendungskalibrierungsfunktion. Da serverseitige Webtechnologien wie jsf, struts, wicket Serverressourcenverbraucher sind, benötigt gwt keine Serverressource zum Rendern der Benutzeroberfläche.

Aber es gibt ein Problem für Ihr Team. Da Ihr Team keine Java-Erfahrung hat, wäre es ziemlich schwierig, zwei neue Technologien, Java und Gwt, anzupassen. Wenn Sie Zeit zum Lernen haben, würde ich Ihnen dringend GWT empfehlen.

    
Gursel Koca 21.04.2011 13:57
quelle
1

Es dauert ca. 1 Jahr, um in GWT kompetent zu werden. Die Verwendung von GWT zahlt sich aus, wenn Sie eine so ausgereifte Anwendung wie Microsoft Office oder PhotoShop entwickeln. Es macht keinen Sinn, GWT für kleine und relativ einfache Apps zu verwenden, IMHO. GWT ist in der Tat ein Time-Tötungs-Framework, und Sie müssen sehr starke Gründe haben, es zu benutzen. Ich denke, dass 99% der Web-Apps keine GWT benötigen.

    
Sergey Grigoriev 03.05.2013 16:37
quelle
-1

GWT ist kein sterbender Rahmen, sondern ein Framework zur Zeittötung. Es hat ein Sicherheitsproblem. Sie können CSRF-Anfragen (Cross Site Request Forgery) problemlos an die GWT-Anwendungen stellen. Auch Java und Javascript sind völlig verschiedene Sprachen, die Sie nicht leicht übersetzen können. Für Ihre Produktivität vermeiden Sie GWT.

    
Jeevanantham Paramasamy 10.01.2012 16:29
quelle

Tags und Links