Wann ist Java eine gute Wahl für die Webentwicklung?
Bitte sagen Sie nicht "Wenn Sie ein Entwicklungsteam haben, das nur Java kennt."
Wann ist Java eine gute Wahl für die Webentwicklung?
Bitte sagen Sie nicht "Wenn Sie ein Entwicklungsteam haben, das nur Java kennt."
Antworten:
Angesichts der vielen verfügbaren Frameworks, der Reife der Plattform usw. bin ich versucht, "fast immer" zu sagen. Hier sind einige Gründe, warum Sie Java nicht verwenden sollten:
Java wird in kleinen und mittleren Websites verwendet. Der entscheidende Punkt ist, dass es für Java-Websites viel weniger kostenloses Webhosting gibt als für z. B. PHP, was bedeutet, dass Sie sich wahrscheinlich nicht für Java entscheiden werden, wenn Sie nicht über genügend Ressourcen zum Hosten Ihres eigenen Webservers verfügen.
Beachten Sie, dass mit Java EE 6, insbesondere dem Webprofil, viele Standardtechnologien enthalten sind, mit denen sehr leistungsfähige Webanwendungen erstellt werden können, ohne dass viel Code erforderlich ist. Es ist leider noch nicht ganz Mainstream.
Beachten Sie, dass sich dies in letzter Zeit mit der Google Application Engine geändert hat, mit der Sie Standard-Java-Webanwendungen (mit einigen Einschränkungen) kostenlos für Websites mit geringem bis mittlerem Datenverkehr in der Cloud bereitstellen können.
Wenn Ihre Plattform UNIX / Linux ist und Sie umfangreiche Tools benötigen, z. B. Objekt- / relationale Zuordnung, Sicherheit, komplexe Orchestrierung von Webdiensten usw.
(Wir sprechen nicht über einfache Websites, oder?)
Jedes Mal, wenn mich ein anderes Java-Team auf die Nerven geht, schaue ich mir Fragen wie diese an. Lassen Sie mich noch einmal wiederholen. Ich bin ein Client-Side-Entwickler und seit fast 5 Jahren. Ich habe an Websites gearbeitet, die von einmaligen Microsites mit den meisten Inhalten über Websites mit der Größe von Sears bis hin zu anspruchsvolleren Websites vom App-Typ reichen, bei denen ein wirklich umfassendes Fachwissen über die Benutzeroberfläche erforderlich ist. Ich habe mich mit Rails, PHP, .net-Webformularen (ew), .net-MVC (viel besser) und einer Zusammenstellung von Java-Lösungen für die Webentwicklung befasst, begleitet von Entwicklern und Teams, mit denen alle Katastrophen zu kämpfen hatten. Ich schreibe auch ein bisschen Python und fange an, Django zu graben.
Meine Erfahrung mit Java-Teams war allgemein schrecklich. Die Werkzeuge sind immer eine PITA. Die Entwickler wollen nie glauben, dass sie etwas falsch gemacht haben, und sie dazu zu bringen, ihren eigenen Rasen erneut zu untersuchen, sobald Sie ein Problem an Ihrem Ende ausgeschlossen haben, ist wie Zähne ziehen. Das erste Problem im Umgang mit Java-Teams ist meiner Erfahrung nach die Umstellung der Entwicklungszeit auf E-Mail-Zeit, in der mehrfach ausführlich erläutert wird, warum das Problem definitiv zu Ende ist. HTML ist im Allgemeinen nicht ihr Problem, es sei denn, Sie möchten tatsächlich eine gewisse Kontrolle darüber haben. Dann wird wahrscheinlich alles zur Hölle gehen, weil Sie tatsächlich einige übergeordnete Divs bewegen möchten.
Es gibt Dinge an der Sprache, die ich nicht mag, aber ich denke, das eigentliche Problem ist die Kultur und die Tatsache, dass Akzeptanz so weit verbreitet ist, dass man eine Menge Mittelmäßigkeit in der Mitte hat. Die von mir vermutete Kultur entspringt der Art und Weise, wie Java vermarktet wird. Einmal schreiben, überall einsetzen. Übersetzung: "Sie müssen nur eine Sache lernen!" Leute, die das ansprechend finden, wollen Java im Grunde wie einen riesigen Hammer für jeden Nagel einsetzen, mit einem Minimum an tatsächlichem Honen ihres Handwerks in Bezug auf die Webentwicklung.
Wenn Sie also Entwickler haben, die Java und andere Sprachen beherrschen, Java aber immer noch bevorzugen, würde ich sagen, ja, fahren Sie fort, wenn es nach der richtigen Lösung aussieht. Aber wenn Sie Java-Entwickler haben, die Java kennen und alles andere nur knapp die Kriterien erfüllt, um es tatsächlich zu einem Stichpunkt in ihrem Lebenslauf zu machen, lassen Sie sie eine einfache App mit einer Vielzahl von halbkomplexen Seiten im HTML-Format erstellen und versuchen Sie dies einfacher Test. Brechen Sie etwas HTML. Versuchen Sie, sie dazu zu bringen, herauszufinden, was los ist. Wenn das unmittelbare Problem, das sie zu lösen beginnen, darin besteht, die Schuld von sich selbst abzulenken, halten Sie die! @ # $ Von der Webentwicklung fern. Web-Entwicklung ist multidisziplinär und erfordert ein aktives Interesse in diesem Bereich, um erfolgreich zu sein. Es ist kein Ort für Menschen, die nur eine Sprache beherrschen wollen und mehr entsetzt über Probleme sind als daran interessiert, sie zu lösen.
Ich behaupte nicht, dass Java selbst die Ursache für Inkompetenz ist, und ich habe gehört, dass Spring gut ist. Ich bin mir sicher, dass es kompetente Java-Teams gibt. Ich bin nur noch keinem begegnet und ich denke nicht, dass es ein Zufall ist. Ich denke, Sun hat viel damit zu tun. Ich denke auch, dass es viel damit zu tun hat, Webteams wie oder unter IT-Abteilungen zu betreiben.
Java ist perfekt für kleine Websites. Sie können JSP-Seiten sehr schnell mit einem Java-Webserver wie beispielsweise Tomcat zum Laufen bringen.
Obwohl Java meiner Erfahrung nach bei großen Websites häufiger vorkommt, bei denen eine komplexe serverseitige Verarbeitung erforderlich ist, finden Sie in diesem Fall komplexere Java-Frameworks wie JavaServer Faces (JSF).
Es ist wichtig zu beachten, dass eine vollständige Java-Installation in der Vergangenheit in vielen billigen Webhosting-Setups nicht verfügbar war, sodass möglicherweise die Verbreitung anderer Sprachen wie PHP in diesen Umgebungen erklärt wird.
Die Hauptgründe für die Verwendung von Java in der Webentwicklung sind folgende:
Technisch gesagt:
Wenn ich eine Webanwendung starten würde, würde ich Ruby on Rails verwenden und so gestalten, dass die Hotspots ausgetauscht werden können, wenn der RoR seine Leistungsskalierungsgrenze erreicht.
Java hat einen deutlichen COBOL-Geruch und "Low-End-Codierer verwenden Java", und die Oracle-Fiaskos tragen nicht zum Ruf bei. Wenn Sie die Wahl haben , wählen Sie eine Sprache, die Top-Entwickler anzieht.
Es ist ganz einfach: Verwenden Sie Java, wenn die Back-End-Leistung eine wichtige Rolle spielt. Beim Codieren ist der Aufwand höher, der Code wird jedoch buchstäblich in 1/200 bis 1/500 der Zeit ausgeführt. PHP, Ruby und andere dynamisch typisierte Sprachen werden immer viel langsamer sein als Java- oder .net-Server.
Die meisten Lösungen für das Web benötigen dies nicht. Twitter hat Rails erst aufgegeben, als sie zum Beispiel an Popularität gewonnen haben.
Nicht der einzige Grund, aber mit der zunehmenden Popularität des Erstellens von Websites mit ausgeklügelten anwendungsähnlichen Frontends, während die Logik immer noch "Zeug" auf dem Server ausführt, sollte kein Grund erforderlich sein, zu erklären, warum Java mindestens so gut ist wie jedes andere Option auf der Serverseite. Aber auf der Client-Seite können Sie mit Ihrem Server das Beste aus beiden Welten erreichen, wenn sich jedes Javascript schnell in einen Alptraum für die Codewartung verwandelt und wenn Sie GWT einsetzen, um das Zeug auf Distanz zu halten, damit Sie in Java codieren können das schwere Heben und den Prozessor eines Klienten tun, der ihnen die "Erfahrung" gibt. Lernen Sie, es mit so etwas wie jQuery zu integrieren, und Sie können alle Augenweiden haben, die Sie möchten.
Kein Experte für Alternativen, aber wenn jemand anderes einen mit der gleichen Flexibilität und Breite vorschlagen kann, freut er sich, davon zu hören.
Der Hauptgrund, warum ich Java wählen würde, ist, wenn Sie verteilte Transaktionen verwenden müssen, was für viele Unternehmen ein großes Problem sein kann. Sie können jedoch weiterhin Ihre bevorzugte Skriptsprache für die Webentwicklung verwenden und die Arbeit nur dann an Java delegieren, wenn Sie schnelle / verteilte Transaktionen benötigen.
Ich glaube, es wird sein, wenn Ihre Anwendung sehr komplex sein wird, wenn viele Leute sie entwickeln, mit vielen komplexen Modulen, komplexer Geschäftslogik und mit vielen anderen Unternehmensanwendungen kommunizieren müssen.
Wie auch immer, Sie könnten auch in Grails entwickeln, das viele nette Funktionen bietet, die Entwicklung sehr erleichtert und sehr schnell reift.
Java ist in Ordnung, aber wenn die Leistung nicht entscheidend ist, können Sie die gleichen Ergebnisse mit weniger Aufwand in anderen Sprachen erzielen.
Java ist eine statisch typisierte Sprache und billiger als die anderen für die Webentwicklung verwendeten statisch typisierten Sprachen, nämlich C # und VB.net, wenn Ihr Unternehmen kein MSDN-Abonnement hat. Statisch typisierte Sprachen eignen sich für mittlere bis große Projekte, komplexe Domänenregeln und viel Back-End-Code, da Sie Ihre Klassen und IDEs besser organisieren können, um Fehler in Ihrem Code zu finden.
Mit dynamisch getippten Sprachen wie PHP, Python, Ruby wird Ihre Entwicklung viel schneller sein, aber Sie müssen Ihren Code viel besser testen. Wenn Sie nicht viel Zeit und Geld haben und sich Ihre Anforderungen sehr schnell ändern und Sie keine sehr komplexen Berechnungen durchführen müssen, sind dynamische Sprachen viel besser.
Sicherheit
Der Hauptgrund, warum große Unternehmen Java anderen Lösungen vorziehen, ist, dass es als viel sicherer angesehen wird.
Dies liegt hauptsächlich daran, dass es von einer so großen Firma (jetzt Orakel) unterstützt wird.
Es sollte berücksichtigt werden, dass Java ein sehr hohes Maß an Sicherheit und exzellenten Support und Analyse bietet (obwohl es einen Preis hat).