Warum ist Java als Sprache auf Webservern so beliebt?



  • Es gibt ja viele Möglichkeiten, seine Webpräsenz mit einer serverseitigen Sprache zu realisieren.

    Von PHP, zu Python bis hin zu JAVA oder C, aber warum hat sich Java hier so erfolgreich durchgesetzt?

    Warum nicht C# oder irgendeine andere Sprache?


  • Mod

    Kaum Jemand verwendet Java im Web. Und wenn, dann sind das so "Enterprisy" Sachen aus der Zeit als Java gehyped wurde und man lebt halt noch damit.



  • Naja, gibt schon einige Dinge die mit Java gemacht sind. Spontan fallen mir mal Confluence und JIRA ein. (OK, sind beide von der selben Firma, und verwenden vermutlich viel gemeinsamen Code.)
    Dass viel davon in der "Enterprise" Ecke sein wird stimmt vermutlich.

    @Webserver mod_*
    Warum das so ist? Naja... weil die Industrie allgemein auf Java steht. Was wiederrum vermutlich daran liegt dass die Industrie vor ~15 Jahren das Java-Kool-Aid getrunken hat ("Java ist voll einfach und voll sicher und voll cool") und sich daraufhin viele kleine Java-Programmierer gezüchtet hat. Und jetzt ist Java bereits überall drinnen, und deswegen wird alles damit gemacht. Und "alles" inkludiert dann halt auch Web-Sachen.

    Und in Firmen wo nicht schon Java drin ist, macht man Web-Sachen auch üblicherweise nicht mit Java.



  • Shade Of Mine schrieb:

    Kaum Jemand verwendet Java im Web. Und wenn, dann sind das so "Enterprisy" Sachen aus der Zeit als Java gehyped wurde und man lebt halt noch damit.

    Ich dachte immer, dass gerade für so Enterprise Sachen Java gegenüber PHP stark bevorzugt wird.
    Als Grund dachte ich da an Performance und Sicherheit.
    Ob das stimmt, wage ich nicht zu beurteilen.

    Aber PHP ist meiner Meinung nach auch eher etwas für Bastelobjekte. Ich finde die Skriptsprache furchtbar.

    C und C++, also via CGI ist auch nicht das wahre, wenn es bedeutet, dass bei jedem Aufruf ein eigener Prozess gestartet werden muss. Also eigentlich auch nicht mehr Zeitgemäß.

    Was würde man denn also heute verwenden?
    Was nutzen die Großen Systeme wie Google, Amazon und Co?



  • Webserver mod_* schrieb:

    C und C++, also via CGI ist auch nicht das wahre, wenn es bedeutet, dass bei jedem Aufruf ein eigener Prozess gestartet werden muss. Also eigentlich auch nicht mehr Zeitgemäß.

    Naja, das muss man ja nicht so machen (CGI).
    Erstmal gibt es ja FastCGI, und dann gibt es auch Web-Server denen man native compilierte Module unterschieben kann. Bzw. man kann die Sachen auch direkt in den Web-Server mit reinkompilieren. (Gibt ja einige Open-Source Web-Server die man da als Basis nehmen kann.)
    Und natürlich gibt es noch weitere Möglichkeiten.
    Welche dieser Möglichkeiten besonders oft verwendet wird bzw. wo, kann ich dir allerdings nicht sagen.

    Was ich dir dagegen sagen kann ist, dass sowohl Google als auch Facebook viel C++ verwenden. (Wobei Facebook soweit ich weiss immer noch etliches in PHP hat - Altlasten halt. Bzw. nicht ganz PHP, aber fast, aber dazu googelst du dich am besten selbst schlau.)

    Webserver mod_* schrieb:

    Was würde man denn also heute verwenden?

    Das kommt wohl sehr darauf an wer etwas machen würde und was etwas genau ist.
    Ein paar Kandidaten wären vermutlich Ruby on Rails, Java, Perl, Python, C# und Go (in keiner speziellen Reihenfolge). Evtl. noch C++ und Rust.

    Oder auch ein Mix. Ist ja auch möglich verschiedene Komponenten in verschiedenen Sprachen zu schreiben - abhängig davon welche Sprache (+Standard Library +verfügbare andere Libs/Frameworks) sich am besten eignet.



  • Java ist für Enterprise Sachen schon nicht schlecht. Das ist aber mehr Intranet und nicht "Web", wenn du Web so meinst, als ob das öffentlich verfügbar wäre.
    J2EE schreibt einfach mehr oder weniger von vornherein etablierte Vorgehensweisen vor. In PHP kannst du einfach irgendwie anfangen und mit print html arbeiten... Und es gibt bei Java halt sehr viele fertige und durchdachte Lösungen für viele Problemstellungen, die man im Enterprise Bereich so hat. Viele der Konzepte in dem Bereich kommen ursprünglich aus der Java Ecke und da gibts schon viele Implementierungen (ESB, Message Broker, tausende andere Sachen...).
    ASP.NET ist auch sehr weit verbreitet, da kann man nichts sagen. Allerdings ist es mehr so eine Microsoft Geschichte, und nicht jeder will sich darauf einlassen. .NET unter Linux zu betreiben hat sich glaub nicht wirklich durchgesetzt und zumindest ich würde mich dabei nicht 100% wohl fühlen.
    Ansonsten bleibt aus meiner Sicht nicht viel. Die ganzen Scriptsprachen kommen für mich persönlich nicht in Frage, weil ich mich auf dynamisch typisierte Sprachen gar nicht erst einlassen will und werde.
    Und C++ im Enterprise Bereich... Da fehlen halt einfach sehr viele Komponenten, Frameworks usw., die für Java verfügbar sind.



  • Naja, zum Thema .NET unter Linux oder MAC:
    http://www.mono-project.com/

    In wie weit das allerdings für Webapplikationen ausgestattet ist, kann ich nicht beurteilen.

    Ansonsten, wird wohl, der Großteil aller Projekte mit dem "üblichen" Stack von Linux + Apache/Nginx + MySQL oder eine anderen, z.B. noSQL, Datenbank der Wahl + PHP befeuert.

    Natürlich steht es einem frei zu installieren was man will. Aber der LAMP-Stack hat sich eigentlich bewährt für normale Webseiten. Von Java habe ich in der Beziehung so gut wie noch nie gehört, was aber auch nichts heißen mag... 🙂

    Facebook hatte glaube ich auch ein eigenes Webserver-Framework, "Tornado" genannt, welches auf Python aufbaut. Ob und wie das aktuell genutzt wird, ich weiß nicht, ist vor Jahren mal herausgekommen und auf Github zu finden, weil Facebook erwähnt wurde.



  • Mono ist tot (außer als Basis für Xamarin o.ä.) - es gibt jetzt .NET Core.



  • Java ist vor allem durch Red Head JBoss, Tomcat, Wildfly und solche Produkte der Platzhirsch im Enterprise Umfeld, da sie auf Java Anwendungscontainer setzen. Dazu gibt es ja auch allerhand Tools, die einem das Leben als Java-Entwickler leichter machen sollen (maven, spring etc) und begünstigt das Erstellen von Java basierten Web-Business Anwendungen, die ja immer schnell erstellt werden müssen.

    Einfache Anwendungen im industriellen Kontext kann man auch mit dem IIS und C++, C#, etc. machen, schön ist das aber nicht. Aber einfach auch nur, weil der IIS so unsagbar schlecht ist im vergleich mit einem JBoss meiner Meinung nach (gerade iVm asp.net und dem .net Framework, die sich regelmäßig gegenseitig beeinflussen. Regiis ist ein gängiges Tool um die Konflikte aufzulösen, - oder auch allein das Server Monitoring, oder die Konfiguration des Servers, etc. ). - Wie gesagt, nur eine Meinung.

    Was ich noch oft sehe sind PHP Seiten für den nicht kommerziellen Bereich (zB selbst erstellte Seiten von technikaffinen Leuten), oder kleinere Shops zum Großteil, auch Foren. Facebook - nur mal eine Ausnahme zu nennen - setzt ja auch auf PHP.


Log in to reply