Auswahl der geeigneten Programmiersprache
Gepostet am 09.August 2007 in Programmierung | 15 Kommentare »
Welche Programmiersprache auf den Servern eines Internetunternehmens zum Einsatz kommen soll, ist keine einfache Entscheidung. Häufig ergibt sich die Lösung der Frage aus der persönlichen Präferenz eines oder mehrerer Projektteilnehmer, aber es gibt noch weitere Gründe, die den Ausschlag für oder gegen die verwendete Technik geben können, wie etwa:
- Skalierbarkeit
- Geschwindigkeit der Entwicklung
- Verfügbarkeit von Entwicklungswerkzeugen
- einfache Wartbarkeit
- Lernkurve
Businessangel Reiner Mauch macht sich Gedanken zur Frage ob ein Web2.0-Startup PHP oder RoR (RubyOnRails) verwenden sollte und listet einige Beispiele wie Qype, Twitter, Basecamp oder Wordpress auf. Er kommt zum Schluss, dass PHP in einigen Jahren von RubyOnRails abgelöst werden wird. Auch wenn ich seine Einschätzung nicht teile, so hat RoR natürlich stark an Bedeutung gewonnen in den letzten Jahren.
Framework != Programmiersprache
Trotzdem ist das ein wenig wie ein Äpfel-/Birnen-Vergleich: PHP ist – wie Ruby auch – eine Programmiersprache und RubyOnRails ist ein Framework. Auch für andere Programmiersprachen existieren etliche Frameworks wie z.B. CakePHP, Symfony und natürlich das Zend Framework für PHP oder Django für Python (bekannte Verwender von Python sind z.B. YouTube und Google).
Die Verfügbarkeit verschiedenster Web Application Frameworks macht die Entscheidung für den Einzelnen nicht einfacher, aber das ermöglicht deutlich kürzere Entwicklungs-Zyklen über alle Programmiersprachen-Grenzen hinweg. Bei keinem der genannten Kandidaten stehen die Räder still. Nur weil einige erfolgreiche Projekte mit RoR realisiert wurden bedeutet das nicht, dass die breite und über viele Jahre aufgebaute Userbasis von z.B. PHP verschwindet.
Habt Ihr bereits Erfahrungen mit Frameworks gemacht? Welche Programmiersprache könnt Ihr für Webprojekte weiterempfehlen und warum?

15 Responses
Was ist mit Java???
-> Skalierbarkeit: Tomcat-Cluster oder EJB3
-> Geschwindigkeit der Entwicklung: könnte besser sein, aber erfahrene Progger sind ganz fix
-> Verfügbarkeit von Entwicklungswerkzeugen: alles was das Herz begehrt: Eclipse, Netbeans als freie und jede Menge kommerzielle
-> einfache Wartbarkeit: ja, wenn man Programmierparadigma einhält (z.B. MVC)
-> Lernkurve: am Anfang schwer, dann wird es besser. Man muss erstmal zwischen allen Frameworks gucken und sich dann die Standards raussuchen: EJB3, JSF, Spring etc…
Ich denke Java sollte nicht nur für Enterprise-Anwendungen zum Einsatz kommen. Es eignet sich auch wunderbar für agile Software-Entwicklungen (z.B. JUnit, Refactoring durch IDE) und ist auch für Web2.0 Projekte ein mehr als geeigneter Kandidat!
Erst wenn RoR viele Tutorials und Foren im Netz hat und mir der Vorteil direkt ins Gesicht springt, dann werde ich mir das ev. mal genauer anschauen.
Aber solange die Hoster nichtmal bei Webpacks RoR anbieten, sollte man sich davon nicht heißmachen lassen, nur weil paar Web 2.0 Projekte mit RoR prahlen (und abhängig von 1-2 Codern sind).
Die Nutzung von Frameworks liegt auch nur darin begründet, dass der Launch möglichst schnell stattfinden soll.
Mit einem eigenen CMS würde mal wohl besser fahren und es wäre wesentlich mehr optimierter als irgendein lahmes Framework.
Für einen Normalnutzer bietet Wordpress als CMS schon einiges. Man muss dies und jenes nicht nochmal erfinden. Für einen geübten Programmierer ist das eigene Werk natürlich das schönste.
@Daniel:
Ja klar, JAVA gehört natürlich ganz klar auch dazu, wie noch paar andere, die Nennungen oben sind nur bespielhaft.
Hast Du da evtl. einige Beispiele im Web2.0-Bereich im Auge?
@mike:
Ich finde den Hype auch ein wenig übertrieben, aber die Verfügbarkeit bei den Hostern ist ja nicht automatisch ein Qualitätskriterium.
Lahmes Framework ist relativ. Auf dem Flyweight Pattern basierende Konstrukte bringen da kaum Overhead rein und bieten auf der anderen Seite jedoch deutliche Geschwindigkeitsvorteile beim Entwickeln. Naja letztendlich muss da jeder seinen Weg finden, und das kann ja auch die Framework-freie Arbeitsweise sein.
@gabriel: danke für die Klarstellung der Unterscheidung zwischen Porgrammiersprachen und Entwicklungsumgebungen, für alle, denen das bis jetzt noch nicht klar war. Weiterhin viel Spass beim Bloggen
ASP.Net 2.0 mit C# als Programmiersprache gehört definitv auch in die engere Auswahl !
Java finde ich offengestanden echt grausam. Ich war da von Anfang an dabei. Wir haben damals Software für Netzwerkhardware in Java entwickelt und später mit Tomcat rumgespielt. Das hat mich alles nicht überzeugt. Java ist nach meinen Erfahrungen einfach ein wahnsinniger Resourcenfresser und die Syntax bläht den Code auf.
Was für Finanzapplikationen (viele Brokerplattformen basieren auf Java) Sinn macht, ist für die meisten Webprojekte nicht praktikabel.
@jan
Wordpress ist ja keine Programmiersprache, sondern eine in PHP entwickelte Anwendung.
@Gabriel: Leider habe ich kein Beispiel für eine Web 2.0 Applikation auf Basis von Java. Meine eigene bald (vielleicht)
@Sebastian: Ich finde Java wirklich schön->auf den SourceCode bezogen. Habe auch schon Anwendungen mit php geschrieben, die ich eher unschön finde, weil php eher zu einem “dreckigem Programmierstil” auffordert;
Mit den Performanzunterschieden zwischen Java und PHP gebe ich dir völlig recht.
@mike: RoR läuft meines Wissen als cgi auf dem Apache, dürfte bei der Hoster-Suche also kein Problem sein!
@daniel
Freenet hat früher ziemich viel mit Java gemacht. Gut zu erkennen an den Fehlermeldung, die ab und zu augeworfen worden. Wir das heute ist, weiß ich allerdings nicht. Habe schon lange keine Fehlermeldung mehr erwischt.
Aber – ohne jetzt genau zu wissen wo – sind mir die Dinger noch bei anderen großen Portalen über den Weg gelaufen.
Für so “Megaarchithekturen” ist Java auch toll. Halt nur nicht die 08/15 Bastelprojekte.
RoR ist “in”, Ruby-Programmierer sind selten, das Framework noch nicht ausgelutscht – aber sind das auch langfristig Gründe zu RoR zu greifen? Nutzen die Web 2.0 Unternehmen RoR weil sie tatsächlich festgestellt haben, dass diese Technologie die o.g. Anforderungen erfüllt, oder einfach des Marketings wegen, schließlich erwartet man ja fast, dass ein junges Web 2.0 Start-Up RoR verwendet?
Aber mal Butter bei die Fische: Wenn ich komplexe Webapplikationen programmiere, dann ist das Web Application Framework weniger wichtig, als eine grundsolide objektorientierte Programmiersprache, die mir hervorragende Klassenbibliotheken und Best Practices zur Verfügung stellt. Da liegen aus meiner Sicht Sprachen wie Java und selbst die .NET-Sprachen aber weit vor Ruby (oder Python oder PHP) und deren Web Frameworks.
Zwei wichtige Paradigma für die Entwicklung von Software:
1. Think Bing – Start small
2. Keep It Simple, Stupid
Wobei 1. Java fast vorgibt und auch die Möglichkeiten für 2. läßt.
Tomcat mit einem Web-Framework sowie Hibernate, was eigentlich recht simple ist, bis hin zu EJB 3.0 mit einem dicken Applikation-Server. Für jeden Geschmack etwas dabei und man verbaut sich nichts.
Unwartbare Anwendungen werden auch erst mit mehr Aufwand möglich.
netzathleten.de basieren auf Java (JSP) soweit ich weiß.
@Balthar: Ich kann Dich beruhigen, Ruby ist eine grundsolide, objektorientierte Programmiersprache. Dort sind selbst Zahlen und Literale Objekte (im Gegensatz zu Java):
10.each {|i| puts i }
Ich würde Ruby nicht für größere Projekte (> 200KLOC) einsetzen, da ab einer bestimmten Größe die Vorteile eine statisch getypten Sprache sicher überwiegen (grob gesagt, man muss nicht jede Zeile Code ausführen um sicher zu sein, dass sie funktioniert).
Rails ist z.Z. nicht lokalisierbar, das kann ein Problem sein, das man aber evtl. dann auch selbst überwinden kann (open source).