Ich habe einige Recherchen darüber gemacht, meine Programmiererfahrung zu sammeln und mich auf dem Marktplatz für Java-Programmierung zu bewegen, aufgrund einer Kombination aus persönlichem Interesse und lokalen Marktkräften. Wie Sie dem Titel entnehmen können, hat die überwiegende Mehrheit meiner Erfahrung darin bestanden, webbasierte Websites und Anwendungen zu erstellen, und ich möchte so viele meiner bisherigen Erfahrungen wie möglich weitergeben.
Eine Sache, für die ich keine konkrete Antwort gefunden habe, wann eine Website oder ein webbasierter Anwendungsentwickler mit einer Java-basierten Lösung auf andere Optionen auf dem Markt gehen sollte. Welche Möglichkeiten würde Java bieten, wenn ein Entwickler Java als die grundlegende Programmiersprache auswählen würde, auf der ein Projekt basieren soll?
Vielen Dank für die konstruktiven Antworten, die aus dieser Anfrage stammen könnten.
BEARBEITEN: Ich hätte den Vorbehalt einbeziehen sollen, wenn andere Faktoren gleich sind, zum Beispiel wenn Hardware, Software, Entwicklerfähigkeiten in Java so weit sind, wo sie für solche Projekte sein sollten, und so weiter.
Bedenken Sie auch Folgendes: Java läuft in der Regel auf App-Servern, auf denen ein persistentes globales Programm läuft, und separate Threads / Prozesse, um einzelne Anfragen zu bedienen. Wenn jedoch die globale Haupt-VM aus irgendeinem Grund krächzt, kann Ihre gesamte App untergehen. Der Vorteil besteht natürlich darin, dass Sie Ressourcen auf Anwendungs- / Systemebene erhalten, die Sie kontinuierlich für alle Anfragen initialisieren und verwenden können
Andere Umgebungen wie PHP zerlegen und rekonstruieren die gesamte Umgebung für jede Anfrage. Sie können die Datenpersistenz auf Anwendungsebene mit einer Datenbank codieren, die Sie jedoch nicht kostenlos erhalten. Auf der anderen Seite, wenn ein PHP-Prozess während der Verarbeitung von App-Daten krächzt, wird das ganze System nicht zerstört, da die gesamte Umgebung für die nächste Anfrage einfach abgerissen / neu aufgebaut wird.
Der Hauptfaktor ist, was Ihre Entwickler gelernt haben. Wenn Sie eine Menge Java-Entwickler haben, gehen Sie mit Java.
Entsprach vielen früheren Plakaten, aber eine mögliche Überlegung ist die Laufzeitgeschwindigkeit.
Wenn Sie einen sehr einfachen LAMP-Stack-Server mit PHP4 oder niedriger, Python oder Perl verwenden, müssen Sie alle Skripte zur Laufzeit neu kompilieren, wenn Sie die Vorkompilierung nicht festlegen. Dies kann immense Belastung des Servers für Anwendungen mit hoher Intensität verursachen. Wenn Sie in der Situation sind, in der Sie das Vorkompilieren für LAMP nicht aktivieren können, aber für Java (die meisten Java-Server benötigen dies), sollte dies von Bedeutung sein. Der Nachteil ist, dass Sie bei jeder Bearbeitung möglicherweise große Teile Ihrer Webanwendung neu kompilieren müssen. Mir ist klar, dass dies heutzutage immer weniger ein Thema ist, aber es ist etwas, das man überprüfen sollte.
In den meisten Fällen ist die beste Technologie diejenige, die Sie bereits verwenden.
Wenn Sie Programmierer haben, die Java beherrschen, Systemadministratoren haben, die Java-Anwendungen konfigurieren können und wissen, was zu tun ist, wenn eine Java-App nicht mehr funktioniert, und Projektmanager, die eine Java-Bereitstellung genau planen und planen können, benötigen Sie sehr, sehr zwingender Grund, etwas anderes wie .NET für ein neues Projekt auszuwählen, selbst wenn .NET "besser" ist (was auch immer das bedeutet).
Es gibt natürlich Ausnahmen; Wenn Sie etwas Veraltetes verwenden und / oder in Zukunft nicht unterstützt werden (wie klassisches ASP) oder keine Legacy-Systeme haben, dann ist es an der Zeit, etwas Neues zu verwenden.
Ich glaube, dass die gängige Meinung zu diesem Thema ist, dass Java besser für sehr große Systeme geeignet ist, die die Disziplin der statischen Typisierung benötigen. Außerdem kann Java an stark frequentierten Standorten weniger Speicher belegen und schneller ausgeführt werden als die meisten Interpreter.
(Java ist sofort einsatzbereit und benötigt viel Speicher. Aber auf einem ausgelasteten System hat Java nur eine einzige Kopie des gesamten laufenden Codes.)
Es gibt auch einige einfache Gründe, bei bestimmten Websites mit Java zu bleiben. Sie benötigen möglicherweise eine Back-Office-Integration oder einen anderen großen Teil des vorhandenen Codes.
Ich würde Java verwenden, wenn es eine Bibliothek oder ein Framework mit bestimmten Funktionen gäbe, die keine andere Sprache hat (oder auch nicht).
Wenn ich zum Beispiel eine eigene Java-Bibliothek zum Ausführen unseres Gruntmaster-Rock-Crusher hätte, wäre es natürlich sinnvoll, Java zu verwenden, um eine App zu erstellen, die den Gruntmaster steuern sollte.
Man könnte sagen, dass die offizielle Sprache eines Geschäftes die Sprache ist, die man benutzen sollte - ich stimme dieser Regel nicht zu, da ein guter Entwickler meiner Erfahrung nach jede Sprache lernen kann.
Ansonsten gibt es keine feste Regel; Jede Sprache hat ihre eigenen Stärken und Schwächen. Die Tatsache, dass Sie diese Frage zu Java stellen, sagt mir, dass Sie damit nicht so vertraut sind.
Ich würde vorschlagen, dass Sie fortfahren und eine App oder drei in Java erstellen - dann werden Sie es wissen. :)
Es gibt nur eine sehr geringe Trennung zwischen den Möglichkeiten der verschiedenen Technologien, die heute für Web-Programmierung zur Verfügung stehen.
Java war einmal die Standardwahl, da es die Fähigkeiten der konkurrierenden Technologien bei weitem übertraf, aber das stimmt nicht mehr.
Die Microsoft-Antwort ist schnell gereift; Die Zeiten von klassischem ASP sind weit weg mit .Net, das jetzt alle Fähigkeiten und die Leichtigkeit der Programmierung anbietet, die Java angeboten hat.
Neue Sprachen wie PHP und Ruby sind angekommen oder werden immer mehr zum Mainstream und sind auch eine gültige Wahl, die auf Ihren Programmieranforderungen basiert.
Wie viele andere sagen, es läuft darauf hinaus, in welcher Sprache Sie oder Ihre Entwickler sich auskennen.
Ein weiterer zu berücksichtigender Aspekt ist die Fähigkeit, ein riesiges Ökosystem von Open-Source-Bibliotheken zu verwenden.
Sprachen wie PHP, Perl oder Ruby haben solche Lib-Market-Plätze (fast) eingebaut. Net ist in diesem Sinne eher geschlossen. Auf der anderen Seite hat Java ein sehr großes Ökosystem von Bibliotheken, aus denen man wählen kann und aus denen man auch lernen kann.
Praktisch stimme ich den Jungs darin zu, die vorhandene menschliche Infrastruktur zu nutzen.
Technologisch ist Java ziemlich gut für nicht-standardmäßige Web-Dinge - wie starke Nutzung von AJAX (GWT, DWR, Comet spring into mind), Mobile (wo Sie in der Regel viele Sitzungsdaten und weniger Front-End-Bling benötigen), wirklich einfache Dinge, die unter immense Last geladen werden (Apache mod_XXX wird es definitiv jedes Mal troundern, das einzige, was bei weit verbreiteter Verwendung schneller ist, ist nativer Code).
Tags und Links java web-applications