Ist Flash Java-Applets wirklich überlegen? [geschlossen]

14

Ich bin noch ein Student, ohne viel Erfahrung im Programmieren. Ich habe noch nie etwas geschrieben, das größer als ~ 5k Codezeilen ist. Ich habe sowohl in Flash als auch in Java Code geschrieben und kann einfach nicht verstehen, warum Leute Webanwendungen wie Videoplayer (YouTube usw.) in Flash schreiben und nicht als Java-Applets. Deshalb möchte ich Sie, Programmierer mit praktischen Erfahrungen, um einige kluge Worte zu diesem Thema bitten.

Ich sehe keinen wirklichen Vorteil von Flash gegenüber Applets, während es mir zumindest verdammt fehlerhaft vorkommt. Ich verstehe, dass es schneller ist, etwas in Flash zu erstellen, und ich kann sehen, warum es eine gute Sache für schnelles Prototyping ist, aber im Allgemeinen ist es das wert? Jedes Mal, wenn ein YouTube außer Kontrolle gerät, verfluche ich die Entwickler, weil sie es in Flash geschrieben haben. Und wenn Sie Linux mit Opera verwenden, passiert dies die ganze Zeit.

Warum verwenden die Leute Flash und keine Applets?

Davor Ždralo
quelle
4
Java-Applets, ugh ...
Anto

Antworten:

34

Flash bietet dem Benutzer eine nahtlosere Benutzererfahrung. Java-Applets sind ziemlich langsam, da die Java-VM gestartet werden muss, bevor sie ausgeführt werden kann. Als Website-Besucher hasse ich es, wenn Dinge für einige Momente einfrieren, während sich die Java-VM selbst herausstellt. Wenn ich mich nicht irre, wird es auch nicht entladen, wenn ich von der Website weg navigiere, auf der es verwendet wurde, und es bleibt hängen, wenn ich nicht wirklich wollte, dass es überhaupt ausgeführt wird.

Meine (zugegebenermaßen eingeschränkte) Erfahrung mit der Flash- und Applet-Entwicklung zeigt mir auch, dass das Entwickeln einer Animation in Flash einfacher ist.

Und dann ist da noch Geschichte. Microsoft hat Java-Applets keinen Gefallen getan, indem es eine eigene JVM entwickelt und sie anders als Suns verhält. Infolgedessen könnte dasselbe Applet in einem Browser und nicht in einem anderen funktionieren, was die Erstellung von Java-Applets weniger rentabel macht.

Java verfügt zwar über kostenlose Tools, die im Gegensatz zu proprietären Flash-Editoren zum Erstellen von Flash-Videos verwendet werden können, letztendlich ist sie jedoch aufgrund ihres umständlichen Ansatzes minderwertig.

Adam Lear
quelle
4
Einverstanden, die JVM-Aufwärmzeit ist höchstwahrscheinlich der Grund, warum Flash das Applet-Mittagessen gegessen hat
1
Flash wurde in erster Linie entwickelt, um großartige interaktive Erlebnisse mit vielen grafischen Inhalten, Sound und Animationen zu schaffen. Java ist eine Allzwecksprache, die nicht unbedingt die beste Wahl für die Erstellung von Webinhalten ist.
Martin Wickman
3
Sun kämpfte erfolgreich gegen den MS-Versuch, Applets gerichtlich weniger haftbar zu machen. Es gibt kein MS-Java mehr, es war verboten.
Benutzer unbekannt
1
Man könnte sagen, dass der rechtliche Erfolg von Sun das technische Versagen in diesem Bereich verursacht hat. Da es unter Windows (dem am weitesten verbreiteten Endbenutzer-Betriebssystem auf dem Markt) keine Standard-JVM gab, hatte Flash die Möglichkeit, zum De-facto-Standard zu werden, und nutzte diese Gelegenheit. Microsoft zuckte mit den Schultern und erstellte .NET als Antwort auf das JVM-Urteil und dann Silverlight als Antwort auf Flash. Jetzt ist HTML 5 bereit, die meisten dieser clientseitigen Lösungen zu veralten. Der Kreislauf des Lebens.
Jesse C. Slicer
4

Die Wiedergabe von Flash-Audio und -Video ist verdammt fehlerhaft, aber Java ist nicht immer besser. Ich hatte einige immens frustrierende Probleme mit Java-Spielen, als Sun einen Fehler zwischen kleineren Versionen eingeführt hat, der den Lebenszyklus der Applets verkürzt hat. Sie haben erst vor ungefähr einem Jahr angefangen, sich gemeinsam mit Applets zu engagieren, und selbst dann war es nicht ganz reibungslos.

In Bezug auf Spiele waren die größten Vorteile von Flash wahrscheinlich eine spezialisiertere Entwicklungsumgebung und eine gute Bibliotheksunterstützung für Vektorgrafiken. Der größte Vorteil von Java war wahrscheinlich die Fähigkeit, echtes 3D mit einem signierten Applet und JOGL / LWJGL zu erstellen.

Peter Taylor
quelle
2

Der Laufzeitaufwand für Java-Applets (zumindest in Windows) ist nach meiner Erfahrung weitaus geringer und langsamer als der von Flash, und ich glaube, dass die Actionscript-Sprache höher ist als die von Java, weshalb Animationen und Ressourcenhandhabung erforderlich sind (wie Musik / Videos) einfacher zu entwickeln.

James Love
quelle
3
ActionScript ist nur JavaScript mit einem anderen Namen. Ich bin mir sicher, dass die Leute, die es wollten, lange darüber streiten könnten, ob es ein höheres Level als Java ist, aber auf der Sprachebene ist der größte Unterschied zwischen dynamischer und statischer Typisierung.
Peter Taylor
2
Heutzutage bedeutet "Actionscript" im Allgemeinen AS3, das eher Java als JavaScript ähnelt und aufgrund der VM-JITs eine ähnlichere Leistung wie Java erbringt (im Gegensatz zur AS2-VM, die nur interpretiert).
Fenomas
2

Java hatte noch nie eine sehr ansprechende Benutzeroberfläche. Es dauerte Jahre, bis sie Anti-Aliasing eingeführt hatten, wodurch der Text kaum lesbar wurde. Multithread-Rendering / Interaktion ist afaik nie in den wichtigsten Java-UI-Bibliotheken implementiert. Dies trägt zu dem ohnehin schleppenden Gefühl bei, das diese UI-Bibliotheken haben.

Da Java für große Projekte entwickelt wurde, hat es einen erheblichen Vorteil, vorhandenen Code im Browser zu verwenden.

Die HTML-Funktionen wurden in den letzten Jahren erheblich erweitert. Browserübergreifende Kompatibilitäten wurden entfernt, und einige Funktionen wurden hinzugefügt, z. B. clientseitiger Speicher und Arbeitsbereich.

GWT bietet eine schöne API zum Erstellen von Benutzeroberflächen mit High-Level-Klassen und Schnittstellen für Panels und Widgets. Es übersetzt es in Javascript und macht es zu einem wilden Entwickler für Java-Applets und Flash.

Ruudjah
quelle
2
Anti-Aliasing gibt es in Java seit 1.2. Ich denke, es ist eher so, dass sich die Leute nicht die Zeit genommen haben, um zu lernen, wie man es einschaltet.
Peter Taylor
Und Java 1.2 stammt aus dem Jahr 1998. Was ist der Unsinn an Multithread-Rendering / Interaktion? Java ist die Sprache, die normalerweise zum Unterrichten von Threads verwendet wird. Das heißt, es hat heute das bequemste und am weitesten entwickelte Threading-Modell aller Sprachen. (Allerdings mit ziemlicher Sicherheit nicht das bequemste Threading-Modell ...) Was für ein "träges Gefühl"? Es ist schwierig, ein Applet zu laden, aber sobald es geladen ist, hat es das reaktionsfreudigste Gefühl, das Sie in einem Browser bekommen können.
Evgeni Sergeev
2

Flash-Entwickler sind insgesamt günstiger als Java-Entwickler. Und Sie finden Grafikdesigner, die in der Lage sind, mit oder in Flash zu arbeiten. So können Sie ein schöneres Produkt günstiger anbieten.

Wyatt Barnett
quelle
2
Nicht jeder, der sein Salz wert ist. Ein guter Entwickler verlangt gute Entwicklerpreise.
MaxSan
1

einfache antwort ist .. flash ist für designer. und Java ist für Programmierer, die es nicht einfacher haben als dieses. Nicht besser als das andere. Sie sind nur verschiedene Werkzeuge für verschiedene Aufgaben. Also anzunehmen, dass Flash oder Java einander überlegen sind, ist gerecht a bias .. sie sind nur verschiedene Werkzeuge, die beide die Arbeit in verschiedenen Kontexten erledigen .. was die Ablehnung betrifft .. ich verstehe deinen Standpunkt nicht .. es ist relevant, solche Dinge zu sagen .. und sich nicht von Bias beeinflussen zu lassen der Weg..

Hast du eine Ablehnung hinterlassen? Wie wäre es, wenn Sie uns alle konstruktiv erklären, warum? :)

Marc-Andre Benoit
quelle
+1 weil Sie Recht haben: Flash ist für Webdesigner gedacht, die sich zu Webprogrammierern entwickeln. Java ist für Programmierer gedacht, die Webseiten erstellen.
Kris Van Bael
Wie wäre es, wenn Sie meine Antwort positiv bewerten, wenn Sie der Meinung sind, dass sie +1 verdient? :) hehe
marc-andre benoit
1
Das habe ich natürlich getan.
Kris Van Bael