Java Bedeutung als Websprache

Ich arbeite gerad an einem Referat. Thema: “Java - Die heutige Bedeutung als Websprache”.

Hintergrund für das von mir gewählte Thema ist, das z.B. eCommerce Lösungen, wie Magento & Co, oder CMS, wie z.B. Typo3 & Co, in vielen großen Firmen eingesetzt wird, diese Softwarekategorien, zu den am häufigsten angeforderten (bezogen auf Request) sind, aber meistens in PHP (einer “verhältnismässig langsamen” Skriptsprache) entwickelt werden und nicht so sehr in Java / C#.

Hierzu würde mich eure Meinung interessieren. Ich hab dieses Thema bewusst nicht in den klassischen Internet-Programmiersprachen Java, PHP, C# gestellt, um eine möglichst unvoreingenomme Meinung zu erhalten.

PHP ist eine Skriptsprache speziell geeignet für Webprogrammierung, allgemein kränkelnd

Hochsprachen wie Java, C usw. sind für sich möglichst optimale Sprachen für die reine Programmierung, objektorientiert, für jeden Einsatzzweck,
spezieller Bezug auf Webprogrammierung wie auf alles andere: 0,0


rein mit dem Kern von Java, Standardklassen wie String, Thread, 1 MB API, kann man in die Welt hinausgehen und quasi alles aufbauen,
in der Praxis ist es von Vorteil, wenn umfangreiche aufbauende Tools zur Verfügung stehen, wie J2EE-Standard, weitere Web-Frameworks

dazu sieht es bei Java nicht schlecht aus


rein in Java wird man dann letztlich eh nicht bleiben,
für Beschreibung von Webseiten kommen Dinge wie JSP, JSTL dazu,

die haben schon in mancher Hinsicht mehr das Aussehen von PHP als Java-Code…,
aus dieser Sicht verschwimmen die Grenzen

Erstmal danke für deine Antwort Slater… Hierzu ein paar Anmerkungen meinerseits

C ist nicht objektorientiert im Gegensatz zu C++. Zu dem erlaubt C keine Programmierung von HTML - Seite wie z.B. PHP, Java & Co von Hause aus.

PHP ist kränkelnd??? … Dieses ist eine Definitionsfrage… Wenn du meinst man schreibt mit PHP nur sch… (sry für das deutsch Wort), so muss ich dir entgegenen, das man mit jeder Programmiersprache guten und suboptimalen Code erzeuge kann. Beziehst du es auf die Syntax, so muss ich dir rechtgeben. So waren z.B. die Ansätze der Objektorientierung zwar schon in PHP 4 enthalten, aber OOP erst in PHP5 vertieft wurden.

Meinst du es hingegen auf Ablähnung, so muss man eher sagen, das Java kränkelnd ist. So traten in letzter Zeit zuviele Bugs zutage, was auch die hohe Zahl von Updates in der 7er Version und die Einstellung Firefox gegenüber Java, begründet sieht.

JSP ist in Java SE schon enthalten, welches eine Entwicklung einer Webanwendungen, ermöglichen würde. Auch wenn man wohl eher JSF benutzten würde ;)… JSTL ist nur eine Klassenbibliothek zur Erweiterung von JSP.

Ich gebe dir vollkommen recht JSP oder JSF hat große ähnlichkeit mit PHP.

Die Frage ist aber warum werden soviele Internetanwendungen in PHP geschrieben und nicht in compelierten Sprachen wie z.b. Java / C#? Zumal man jede Sprache als OS ermöglichen kann. Ein Grund meiner Ausarbeitung ist u.a… Java wird auch in Webanwendungen von vielen Firmen, wenn man sich die Jobbeschreibungen ansiehst gesucht, wenn man aber hört z.B. Fijutsu steigt jetzt auf eine PHP entwickelte eCommerce Lösung um, so stellt sich die Gegensätztlichkeit des Seins.

Mit Java ist auch eine (aus Entwicklersicht) weitgehend HTML- und JavaScript-freie Webprogrammierung möglich (GWT, Vaadin).

Was verstehst du denn unter “Websprache”? Mit Java hast du ja deutlich mehr Möglichkeiten Systeme zu entwickeln die mehr machen als eine Seite anzuzeigen.

Herzlichen Dank für deine Frage timbeau… ich wollts gerad schreiben, da sah ich das du mir mit der Frage zu vor gekommen bist…

Mit „Internet-Anwendungen“ meine ich jetzt nicht die Verwendungen unterschiedlicher Protokolle, wie z.B. HTTP, FTP, SMTP & Co., sondern Programme die auf einem Server laufen, Request über HTTP (POST, GET, Cookie, etc.) entgegen nimmt, diese Daten verarbeitet und ggf. als HTML responst.

Klassische „Internet-Anwendungen“ sind z.b. CMS (Typo & Co) und eCommerce (Shops: Magento & Co). Zu dieser Definition würd ich jetzt nicht Anwendungen/Dienste die z.B. rein über SOAP anfragen entgegen nimmt und hierauf ggf. Reponse als Json / XML zurück gibt, zählen.

Dann bietet sich doch wirklich JSF, JSP, EJB, CDI etc an.

Den Glaubenskrieg JAVA vs PHP würde ich mir nicht antun.

Auf die Frage, wieso PHP verbreiteter ist:
PHP Hosting ist zurzeit verbreiteter und kostengünstiger als Java-Hosting. Wenn ich also eine Shop Plattform erstelle, dann habe ich natürlich im Hinterkopf, dass mehr Kunden dieses System “Out Of The Box” nutzen können, wenn ich es in PHP umsetze. In vielen Fällen wirft der Kunde die Dateien auf den Server und das Ding läuft, ohne dass jemand Ahnung von Application-Servern oder Servlet-Containern haben müsste (oder eine installierte JRE).

[QUOTE=inv_zim;87624]Auf die Frage, wieso PHP verbreiteter ist:
PHP Hosting ist zurzeit verbreiteter und kostengünstiger als Java-Hosting. Wenn ich also eine Shop Plattform erstelle, dann habe ich natürlich im Hinterkopf, dass mehr Kunden dieses System “Out Of The Box” nutzen können, wenn ich es in PHP umsetze. In vielen Fällen wirft der Kunde die Dateien auf den Server und das Ding läuft, ohne dass jemand Ahnung von Application-Servern oder Servlet-Containern haben müsste (oder eine installierte JRE).[/QUOTE]

Nun ja VServer kosten sind nicht viel teuerer. “Out of the box” ist das dann nicht viel eher eine Frage des Installers sofern man über einen VServer verfügt?

Meistens sind die Admins froh, dass auf ihren Webspaces PHP läuft und das nicht mehr als 3€ im Monat kostet (flüssig laufen die auch nicht, aber okay…). Dann wird die Anwendung per FTP hochgeladen und sie haben Ruhe. Einen vServer muss man selbst administrieren, was bei Kisten die direkt im Internet hängen auch nicht ohne Risiko ist. Managed vServer kosten wieder mehr Geld.

Außerdem ist PHP Mod-freundlicher, viele Mods für PHP Anwendungen die ich benutze kann man schön mit dem Texteditor irgendwo einhängen oder modifizieren. Mann muss halt nicht bei gravierenden Änderungen die Anwendung neu kompilieren, man ändert einfach das Skript. Dafür sehen die Mods aber auch oft einfach aus wie Sau. Außerdem ist es mit PHP „leichter“ Sicherheitslücken einzubauen weil die Berechtigungen auf dem Filesystem nicht so wirklich astrein gesetzt sind.

PHP hat sich einfach etabliert. Zähle mal auf, welche anderen da mithalten können die folgende Aspekte mit sich bringen:

  • Schnelle installation/konfiguration
  • Mod’den/Erweitern
  • Idiotensicher (Im Bezug auf Datentypen, Bedienbarkeit, leicht zu erlernen,…)
  • “Kostenlos”/OpenSource

Ich selbst bin aus der Webentwicklung, da ist PHP (ein) Standard.

Es ist auch ein Mythos das PHP langsam ist. Erstens kommt des drauf an **wie **PHP installiert ist, hier gibt es nämlich auch verschiedene Verfahren und zweitens ob der “Programmierer” schlampig war oder nicht. Und wenn er halt schlampig war, gibt es immer noch Opcode-Caches wie eAccelerator oder APC die versuchen da noch etwas gerade zu bügeln. Zwar nicht die beste Methode, aber hey - den meisten reicht es vollkommen aus. Und ob nun die Seite 100ms oder 150ms geladen hat ist doch eig. schnuppe.

Klar, es haben durchaus andere Sprachen versucht, aber die haben aufgrund einigen Nachteilen sich kaum etabliert und sind auch schnell wieder “verschwunden”. Hier mal Beispiele wo von natürlich noch so einige Aktuell sind (Beispiel Node.js):

ASP/.NET
Klar, Leute die aus der Richtung der Hochsprachen wie C, C++, C# und was es da nicht alles gibt haben genau hier einen besseren Vorteil.
Nachteil: Anfänger verlieren schnell die Lust, man benötigt meist/oftmals Windows-Maschinen (Lizenzkosten) und zähl mir mal eine ASP-Seite auf die nicht träge wirkt.

JAVA/JSP/Tomcat Zeugs
Auch hier ist klar, dass Vorkenntnisse in Java eine Optimale Bedingung ist. Der “Anwender” der Java kann, findet sich hier schnell zurecht. Anfänger müssen sich erstmal auseinander setzen was denn diese komischen WAR’s sind und wozu man überhaupt dieses Container-Dingens braucht und wie man det nun endlich mal zum laufen bekommt.

Ruby (on Rails)
Macht des überhaupt (noch) jemand? Es gab mal eine kurze Zeit, da war des ganze “In”, nach kurzer Zeit ist aber auch das wieder im Hintergrund gerückt, da die Community viel zu klein war und Programmierer die Ruby beherrschten einfach viel zu teuer sind um diese sich leisten zu können.

Node.js
Interessant, serverseitiges Javascript - Laut vielen Ultraperformant // Naja, aber auch nur dann wenn der “Programmierer” performant arbeitet, so wie auch in jeder anderen Sprache.

Alles was hier so aufgezählt wird, haben alle eine Grundvoraussetzung: Vorhandensein.
Die meisten Hoster/Provider, ich würde sogar behaupten alle (ausgenommen sind die Spezialisierten, die ausschließlich nur “Ich hoste nur Software XYZ” sind), haben halt PHP Standardmäßig mit dabei.

Klar, kann man einfach sagen dass Rootserver oder auch VServer mittlerweile nachgeschmissen werden, aber auch hier muss man ja auch wieder sagen: Zum einrichten eines Servers sind Kenntnisse erforderlich. Ohje, genau es gibt ja auch unzählige Tutorials, aber als “Anfänger” sollte man da die Finger von lassen.

Es gibt auch eine Vielzahl an Nutzern die eine “Homepage” haben möchten und einfach nur sagen “Ich hab da kein nerv drauf, warum also so kompliziert wenn es mit Webspace viel einfacher ist? Das reicht mir doch voll und ganz!”.

[QUOTE=Bizarrus]Klar, kann man einfach sagen dass Rootserver oder auch VServer mittlerweile nachgeschmissen werden, aber auch hier muss man ja auch wieder sagen: Zum einrichten eines Servers sind Kenntnisse erforderlich. Ohje, genau es gibt ja auch unzählige Tutorials, aber als “Anfänger” sollte man da die Finger von lassen.

Es gibt auch eine Vielzahl an Nutzern die eine “Homepage” haben möchten und einfach nur sagen “Ich hab da kein nerv drauf, warum also so kompliziert wenn es mit Webspace viel einfacher ist? Das reicht mir doch voll und ganz!”.[/QUOTE]
Wenn man keine Ahnung davon hat, sollte man keine Webseiten bauen, die Eingaben und Datenerfassung ermöglichen. Und wenn es nur um statischen Content geht, wüsste ich nicht, warum HTML5+CSS+JS nicht reichen und ich mir stattdessen PHP ans Bein binden sollte.

Von PHP muss man übrigens auch einiges an Ahnung mitbringen, um eine sichere Seite mit Datenverarbeitung/-erfassung (z.B. Login) zu bauen. Und sauberen Code bekommt man da auch nur mit der nötigen Erfahrung und viel Selbstdisziplin hin.

Da muss ich dir leider widersprechen. „Idiotensicher“ im Bezug auf „Jeder Idiot kriegt irgendwie Output zusammen“: Ja. Generell ist es aber schwerer saubere Ergebnisse hinzubekommen, wenn man nur ein dynamisches Typsystem zur Hand hat.

[QUOTE=Bizarrus]PHP hat sich einfach etabliert. Zähle mal auf, welche anderen da mithalten können die folgende Aspekte mit sich bringen:

  • Schnelle installation/konfiguration
    [/QUOTE]
    Definiere mal schnelle installation/konfiguration?.. Wer sich mit JBoss oder Glassfisch auskennt stellt den Server genauso schnell auf.

Was konkret meinst du? Viele dieser Techniken stammen aus der Überlegung Java - Welt. Vgl. Symfony

wurd bereits von anderen drauf eingegangen.

Dieses ist eine Art der Lizenzvereinbarung. Java gibt es auch als OS Software. PHP hingegen kann man auch als ClosedSource vertreiben. s. Zend

Wie Java. s. z.B. die die entlichen JSRs auf die Zend Framework oder Symfony verweisen. Darüber hinaus hier ein Blick auf GULP. (Bewusst nur JSF beschränkt)

Hier kann ich dir nur wiedersprechen s. Phalcon Framework vs z.B. CodeiGnitter, dieses wurde aus Perfomance Gründen in C entwickelt.

Ah wie ich diese Beiträge liebe :smiley:

Im groben geht es einfach um Geld liebe Leute. Beispielsweise diese ganzen Webspaces und Hosting Angebote. Wieso haben die alle PHP (und manchmal auch Ruby bis 1.8.7) im Angebot - aber keine laufende JVM für JAVA?

Ganz einfach ^^. Abgesehen von dem Apache/NGINX brauch PHP nur den Parser der also Mod passend in den Webserver packt, und user getrennt in mehreren Instanzen sauber und mit wenig Ressourcen auf dem Root läuft und dabei perfekt in viele kleine Stücke runter gebrochen werden kann für die vielen Hostings auf einem Root. :slight_smile: Macht das mal mit der JVM. Abgesehen davon, das es für die Administratoren aufwendiger wird, verbraucht jede JVM seinen Ressourcen Anspruch. Unabhängig davon ob dieser genutzt wird oder nicht. Der wird einfach reserviert :wink: und auch das Böse OS kann da nur mit Gewalt was drehen.

Dazu kommt das es vorher kompiliert und dann auch noch in den dementsprechenden Container deployed werden muss. Alles Zeit. Zeit ist geld und das will keiner Ausgeben. Hier steht also keine Glaubenskrise im Vordergrund. Sondern einfach nur das gute alte Geld.

Wer sagt das Rails oder NodeJS tot sind? Durch die ganzen aufkommenden SaaS Dienste, der simplen Art und Weise wie die Entwickler das deployen können ist das ganze zeug gerade erst recht am boomen xD wenn man die Augen verschliesst und dabei nicht drauf achtet hat selber schuld. Besonders die ganzen Web-Indie Entwickler nutzen Rails und NodeJS. Weil es einfach schneller zu entwickeln und deployen ist als Java.

In der Industrie ist das was GAAANNNZZZ anderes! Besonders im Automobil bereich laufen unzählige Intranet/Extranet Anwendungen mit Java. Ein Umstieg auf Lösungen wie PHP, Node oder Rails sind in dem Bereich absolut unwahrscheinlich. Aber das macht nichts. Denn Mit HTML5 und einfachen Socket Frameworks kam was neues. Die Clients eigenständig laufen lassen mit Frameworks wie Backbone, Ember oder Angular (oder GWT ← wird aktuell favorisiert)

Das Bauen von REST ist quasi die neue Moderne in dem Industrie bereich - wobei nicht JSON REST sondern RPC Rest.

FAZIT: Hier stirbt nix sondern jede Sparte hat seinen bestimmten Bereich.

[QUOTE=Matt]Im groben geht es einfach um Geld liebe Leute. Beispielsweise diese ganzen Webspaces und Hosting Angebote. Wieso haben die alle PHP (und manchmal auch Ruby bis 1.8.7) im Angebot - aber keine laufende JVM für JAVA?
[/QUOTE]
Fürs Shared Hosting benötigt Java zu viele Resourcen.

Das würde ich nicht behaupten. Unter Apache zum Beispiel läuft der Server unter den Rechten vom Apache User und zu behaupten, dass alle Bestandteile des Webservers auf Root Rechten laufen ist grober Unfug. Weiters muss man sagen, dass die Skripte entweder unter einem eigenem User (suxec) oder Apache Prozess (mod_whatever) laufen und nicht wie du gesagt hast unter Root laufen. Abgesehen davon ist Java mit Shared-Hosting inkompatibel, da alle Applikationen unter der Tomcat User-ID laufen und dadurch jegliche Rechtetrennung ausgehebelt wird.

Container sind auch nicht unbedingt notwendig. Das Mindeste für eine Java Applikation ist ein V-Server, der die notwendigen Resourcen zur Verfügung stellen kann.

Sieht ganz so aus, wobei ich persönlich mich zu NodeJS hingezogener fühle als zu Ruby. Ich denke jedenfalls, dass Python meine absolute Lieblingsprogrammiersprache ist und auch bleiben wird.

Auch lohnen würde es sich für die Firmen nicht, da ihre albackenen Lösungen funktionieren und unterstützt werden.

Mal abgesehen vom aufgewärmten alten Thread, das ist wirklich ein Witz. Und nicht einmal lustig.

Banken, Versicherungen, Autoindustrie - das dauert noch 10 Jahre bis die mit JSON und REST und den (aus ihrer Sicht windigen) Javascript-Frameworks so richtig loslegen.

Die Entscheider in den Fachabteilungen setzen eben oft auf Java (oder C#) wegen des Ökosystems, Tools, CI-Server, Profiler usw. usf. Da wird so schnell nichts anderes kommen - einfach
weil man vorsichtig ist. Oder z.B. vor zwei Jahren in einem Riesenprojekt einen Enterprise Service Bus (ESB) bzw. SOA eingeführt hat - ein Bus, an dem genau zwei (das sind: 2) Teilsysteme hängen. Und die ganze Technik mittlerweile eh kein Schwein mehr interessiert. Investitionen in den letzten 10 Jahren in Richtung XML/Webservice, SOAP etc. die wird man jetzt nicht wie ein Hobby-Programmierer über Bord werfen weil ein geiles Javascript-Zeugs rumschwirrt.

Die müssen erst einmal den ganzen alten Müll beerdigen, schauen wie das mit dem Debugging, der Interoperabilität, den immer noch vorhandenen uralt-Mainframes funktioniert - erst dann werden die auf JSON/Rest umsteigen.

Autoindustrie

Altlasten sind da immer einProblem …
Auf der anderen Seite gibts da ne Menge humaner Ressourcen aus der Embedded Abteilung, die mit Java/Scriptsprachen eh ned so viel anfangen koennen.
Und ne Menge Holz in dem Umfeld ist Messdatenanalyze, wo Performance im Vordergrund steht.

Trotzdem hab ich den Eindruck, das da Java EE auch immer mehr reindrueckt, manchmal auch da wo es ned ganz so viel Sinn macht ^^

Ciao …

[QUOTE=mdickie]Fürs Shared Hosting benötigt Java zu viele Resourcen.

Das würde ich nicht behaupten. Unter Apache zum Beispiel läuft der Server unter den Rechten vom Apache User und zu behaupten, dass alle Bestandteile des Webservers auf Root Rechten laufen ist grober Unfug. Weiters muss man sagen, dass die Skripte entweder unter einem eigenem User (suxec) oder Apache Prozess (mod_whatever) laufen und nicht wie du gesagt hast unter Root laufen. Abgesehen davon ist Java mit Shared-Hosting inkompatibel, da alle Applikationen unter der Tomcat User-ID laufen und dadurch jegliche Rechtetrennung ausgehebelt wird.

Container sind auch nicht unbedingt notwendig. Das Mindeste für eine Java Applikation ist ein V-Server, der die notwendigen Resourcen zur Verfügung stellen kann.

Sieht ganz so aus, wobei ich persönlich mich zu NodeJS hingezogener fühle als zu Ruby. Ich denke jedenfalls, dass Python meine absolute Lieblingsprogrammiersprache ist und auch bleiben wird.

Auch lohnen würde es sich für die Firmen nicht, da ihre albackenen Lösungen funktionieren und unterstützt werden.[/QUOTE]

Boah ein alter Thread auf den ich gar nicht mehr reagiert habe.

Hier ein kleiner Pranger. Mit Root meinte ich nicht den Root User sondern den Root Server ^^.

Und noch was. Wenn das Mindeste ein “V-Server” ist, dann wäre das ganze noch entschieden schlimmer xD