Welche Sprachen benützt ihr für die Webentwicklung?

Goosefraba

Mitglied
Hallihallo!

Möchte hier mal ein aktuelles Thema starten zum Thema "Welche Sprachen verwendet ihr für die Webentwicklung".
Soll hier aber keine Auflistung von Technologien sein; mehr wünsche ich mir eine anregende Diskussion über Vor- & Nachteile der einzelnen Technologien sowie Begründungen, warum ihr gerade diese verwendet.
Vielleicht verwendet ihr mehrere, angepasst an die jeweilige Anforderung?

Wie steht ihr zu dem Thema "Was ich programmiere muss auch unterstützt werden", wenns um das Hosting geht? Gerade im Bereich JSF (od. generell Java-Container) hinken viele Hosting-Anbieter nach.

Ich freue mich über interessante Meldungen.

Lg,
Goosefraba
 
Die Mehrheit und fast jeder Anfänger werden wohl PHP benutzen für Webentwicklungen, aber ich habe jetzt auch öfter gesehen das einige Leute ASP gerne benutzen, wobei das wieder nicht jeder Server unterstützt.

Nun ich kenne nicht viele Nachteile von PHP was Schnelligkeit angeht im Vergleich zu den anderen, aber oft wird von zu vielen Socherheitslücken zu PHP berichtet, welche man aber generell bei allem Programmiersprachen hat soweit ich verstehe, und da muss man halt lernen sicher zu programmieren.

Naja und dan ist da noch das Java und Javascript für bisjen mehr Action, aber ich denke meine Infos waren jetzt nicht gerade so eine große Hilfe da ich nicht so viel Erfahrung habe... aber besser als gar nichts vielleicht.
 
aber ich habe jetzt auch öfter gesehen das einige Leute ASP
ASP stützt sich doch auf das .NET Framework, was bedeutet, dass es nur auf Microsoft Machines betrieben werden kann, oder irre ich mich? Habe mich damit leider auch noch nie weiter befasst... :confused:

Nun ich kenne nicht viele Nachteile von PHP was Schnelligkeit angeht im Vergleich zu den anderen
PHP ist eine der schnellsten Scriptsprachen, die mir bekannt sind. Trotz der großen Funktionalität und der Compilierung on demand ist PHP sehr, sehr schnell mit der richtigen Konfiguration. Das kann man durch diverses Caching und die Precompilierung der Scripte sogar noch weiter beschleunigen.
aber oft wird von zu vielen Socherheitslücken zu PHP berichtet
Wo Freiheiten gegeben werden, entstehen Lücken. PHP ist, sofern richtig umgesetzt, sehr sicher und stabil. Wenn jede Eingabe überprüft wird, kann nix schiefgehen. Das größere Sicherheitsleck ist die Unwissenheit der Anwender - Und dabei aber vor allem im Bereich SQL-Queries, die nur zu häufig manipuliert werden können durch fehlende Überprüfung, Validierung und Verwertung. Dazu stellt PHP einige sehr effiziente Funktionen bereit, die aber nie in den für Anfänger geschriebenen Tutorials erwähnt werden :rolleyes:

Ich bin ein großer PHP-Fanboy, denn meiner Meinung nach ist es die effizienteste Scriptsprache für sowohl Webapplikationen als auch lokale Anwendungen. Mit dem GIMP Toolkit lassen sich sogar GUIs erzeugen :)
Insgesamt eine sehr, sehr mächtige Sprache... Doch nie ist etwas perfekt, und so vermisse ich in PHP eine objektorientierte Implementierung der trivialen Datentypen.
Den Ansatz machte man bereits mit PHP5 (absolutes Muss, wenn man mit PHP arbeiten möchte) mit der Implementierung eines ordentlichen Klassensyntax und der Verwendung von Klassen als Datentypen. Mir persönlich gefällt sogar das Dollarzeichen als Instanzierung eines Tokens als Variable. Das schafft Übersichtlichkeit im Syntax. Leider verfalle ich allzu oft in den Javatrott und greife auf Methoden und Eigenschaften über "." statt "->" zu, aber ist ne reine Flüchtigkeitssache. Der Pfeiloperator ist gut sichtbar und deshalb auch nicht weiter tragisch. Ein wenig verwirrend wird es nur, wenn man in C++ über Zeiger und ähnliches schon etwas mehr gelesen hat.
So viel zum Syntax und der Usability von meiner Seite zu PHP.

Zur Grundlage: PHP war und ist eine Templatesprache, die sich heute zu Recht Scriptsprache schimpfen kann. Und als solche verwende ich sie nicht nur zum Ausgeben von Daten und Werten aus Datenquellen sondern organisiere damit das Filesystem, kontrolliere und sichere diverse Systemfunktionen, experimentiere mit den pipe-Funktionen rum, etc.
Der Einsatz von PHP ist insgesamt relativ schnell in den Grundzügen zu erlernen, und der Erfolg lässt nicht lange auf sich warten. Umso komplexer jedoch ein Ziel gestaltet werden soll oder muss desto komplizierter und zeitaufwändiger wird es. Wie oft hab ich haufenweise Blätter vollskizziert nur um dann auf eine triviale aber unscheinbare Lösung zu kommen ^^ Frameworks schaffen eventuell Abhilfe, aber ich bin gerne unabhängig von Fremdcodes. Man kann in PHP, dank der loose-strictness, sehr viele Fehler oder Probleme einbauen. Die zu beheben kann viel Zeit in Anspruch nehmen, weshalb eine ordentliche Planung wie auch bei der professionellen Entwicklung in höheren Sprachen ganz angebracht ist, selbst wenn es nur ein simples Gästebuchscript sein soll.

Mit Java habe ich lediglich ein paar Erfahrungen gemacht, kann aber nicht sagen, dass ich mich darin wirklich auskenne. Was Webapplikationen in Java angeht, schweige ich deshalb lieber - Nur die Aussage, dass die Ausführung relativ langsam von statten geht, kann ich mir hier wohl erlauben ;)

C++ wird teilweise auch für die Entwicklung von Webanwendungen verwendet - Habe vor einiger Zeit ein paar Beispiele gesehen aber nicht gespeichert oder im Kopf behalten, da ich mich zu dem Zeitpunkt noch gar nicht mit C++ beschäftigt habe.

Jede höhere Sprache kann - schätzungsweise - über weniger triviale Wege zur Entwicklung von Webapplikationen verwendet werden, aber nur eine ist heutzutage wirklich effizient darin: PHP.
Dieser ganze Hype um Ruby on Rails ist für mich daher unverständlich, denn RoR basiert auf Ruby - Einer meiner Meinung nach sehr seltsamen Sprache mit einem noch seltsameren Syntax. Habe bereits mehrfach versucht, den Syntax schön zu finden, aber geht einfach nicht. Ich hab es gerne logisch - und selbst Brainf* war es nach ner Weile für mich - aber Ruby ist echt nicht mein Ding.
Durch die ganzen unnötig initialisierten Objekte im RoR Framework wird der Speicher des Servers sehr stark ausgelastet, was nicht zuletzt auch der weniger starken optimierung des Ruby Cores zugerechnet werden kann. Das Zeug hat meinen Rechner, als ich es mal laufen hatte, ziemlich stark belastet. Wieder ein Pluspunkt für PHP, übrigens ;)

Ja klar, ich bin ein Fanboy, aber ganz abstreiten lässt sich die berechtigte Dominanz von PHP im Sektor WebDev nicht.
Ich habe zum Glück einen Freund, der als Security Supervisor sämtliche Bugs, die man normalerweise nie antreffen würde, welcher mir bei der Entwicklung von Anwendungen sehr unter die Arme greift - Da hab ich viel über PHP und Sicherheit gelernt.
Insgesamt verhält es sich immer so, dass es so sicher ist, wie man es selbst zulässt. Selbst mit register_globals = true und sonstigen Späßen ist PHP sicher - Man muss die Eingaben nur validieren und ordentlich verwerten.
Das gilt aber für jede Sprache - Ohne sichere Umsetzung geht nicht.

Um auf die letzte Frage zu antworten, empfehle ich jedem, dem es ein wenig ernster um seine Fähigkeiten und die Entfaltung dieser ist, einen VPS oder einen Root-Server zu mieten / kaufen / etc (Xampp tuts auch für den Anfang). Man sollte wissen, was man machen kann und was nicht, und dazu eignet sich ein persönliches System besser als ein durch zig Beschränkungen abgesicherter Haufen Hardware mehr, denke ich.
Es ist zB gut zu wissen, dass man möglichst selbst dafür sorgen sollte, dass in einem Direktzugriff auf ein Verzeichnis über ein Script möglichst eine NULL-Ebene gelegt werden sollte (zB if (strpos(realpath($requestpath), realpath($nullpath)) !== 0) { /* bad request */ }) statt auf Restriktionen in einer php.ini zu vertrauen. Das wie gesagt nur als Beispiel...

Da ich hauptsächlich in PHP entwickle und auf MySQL setze, was die Datenbankverwaltung angeht, habe ich wohl kein Problem mit den verschiedenen Hostingangeboten. Habe mich aber letztenendes für einen VPS entschieden, da ich bei diesem PHP-Version, MySQL-Software, etc alles selbst bestimmen und einrichten kann. Der Lehrwert ist um ein Vielfaches größer als wenn ich einfach nur wüsste, dass ich PHP 5.2.3 hätte. Bei mir hat das eine Art Respekt gegenüber der Technologien geschaffen, und ich möchte nicht abstreiten, dass die auch dazu beiträgt, dass ich möglichst failure-proof entwickeln möchte.
Wenn die Ansprüche steigen, steigen auch die geforderten Voraussetzungen - ein (semi)dediziertes Hosting ist daher ne gute Sache, da man meist volle Rechte über die Plattform bekommt und selbst bestimmen kann, ob man zB Java benutzen möchte.

Kurze Zusammenfassung:
  • PHP == favourisierte Sprache zur Entwicklung von Webanwendungen, da sehr performant und relativ einfach (auch bei komplexeren Themen)
  • MySQL Datenbanksoftware, da sehr performant und sehr funktional
  • Server mit voller Zugriffsberechtigung, da Freiheit Verantwortung mit sich bringt und sich das in vielerlei Hinsicht auswirkt
  • Keine Serverangebote nutzen, die den Nutzer in seiner freien Entfaltung behindern oder ausknocken. Lieber ein paar Euro mehr pro Monat und dafür etwas haben, was einem auch mal ein Glücksgefühl mehr verschafft durch einen positiven Lerneffekt, statt auf Vorgaben zu vertrauen, die man nicht braucht und die einen Aha-Effekt ausblenden
 
ASP stützt sich doch auf das .NET Framework, was bedeutet, dass es nur auf Microsoft Machines betrieben werden kann, oder irre ich mich? Habe mich damit leider auch noch nie weiter befasst... :confused:

Ja so ist es glaub ich auch, wie gesagt kenn ich michda nicht so gut aus, aber irgendein kleinen Vorteil soll es mal wieder gehabt haben im Vergleich zu PHP.
 
Ich habe außer bei einer DotNetNuke Anpassung für einen Kunden bisher immer mit PHP gearbeitet und kann mich auch nicht beklagen. Vor allem seit mit PHP5 die OOP Möglichkeiten verbessert wurden, stellt die Sprache meines Erachtens nach für die meisten Anwendungen eine gute Wahl dar. Vor allem die sehr gute offizielle Dokumentation ist da auch löblich zu erwähnen ;)
Trotzdem werde ich ein größeres Projekt an dem ich jetzt arbeite mit Python umsetzen. Zum einen deswegen, weil Python meine Lieblingssprache darstellt seit ich bei einem Nicht-Web-Projekt damit gearbeitet, zum anderen deswegen weil Python doch etwas performanter ist, wenn man die Geschwindigkeit nicht durch CGI unterjocht sondern per FCGI oder mod_python voll entfalten kann ;)
Bei dem Projekt werde ich viele Feeds einlesen und Webseiten parsen und die rausgefischten Informationen in einer Datenbank archivieren. Dabei kommt die einfache Realisierung von Background Prozessen über die Anfragelaufzeit hinaus und eben die Geschwindigkeit von Python voll zur Geltung, hoffe ich jedenfalls.
Als Datenbank dazu kommen MySQL und PostgreSQL als Datenbanken in Frage. Ich habe mich da noch nicht festgelegt, weil ich erst typische Szenarien des Projekts mit beiden testen will. Für MySQL spricht, dass es PostgreSQL kaum noch an Features unterlegen ist und ein Teil des Projekts viele einfache Lesezugriffe produzieren wird, für die die MyISAM DB Engine sehr gut geeignet wäre.
PostgreSQL hat dagegen den Vorzug der besseren Skalierbarkeit bei mehreren gleichzeitigen Verbindungen, die das Projekt hoffentlich mal haben wird, und der besseren Performance im Zusammenhang mit komplexen Tabellen und Queries.

Auch wenn ich PHP und Python sehr favorisiere würde ich auch gerne mal andere Alternativen ausprobieren. JSP z.B. habe ich noch nie wirklich benutzt, obwohl das eigentlich auch eine sehr interessante Variante wäre.

Allgemein würde ich sagen, dass man bei der Webentwicklung, wie bei der Entwicklung allgemein auf die Möglichkeiten zurückgreifen sollte, mit denen man sich wohlfühlt. Nur um ein wenig Leistung mehr rauszukitzeln lohnt es sich nicht, eine Sprache zu verwenden, die einem wegen Syntax oder Dokumentation oder Funktionen nicht gefällt.
 
Den Vorrednern gepflasterten Weg möchte ich noch ausbaun. Auch ich habe mit PHP angefangen und entwickle noch heute in dieser Sprache.

Aufgrund meines Studiums jedoch bin ich mehr und mehr in die Java-Welt eingetaucht und jetzt im Pflichtpraktikum entwickle ich meine erste große Webapplikation in JSF mit Zusatztechnologien wie Orchestra, JPA, Spring-Framework uvm.
Der große Vorteil, der mir sofort auffällt: Durch das Objektmapping bzw. die Objektorientierte Entwicklung in Java, ist es leichter denn je Objekte und Referenzen zu speichern und zu behandeln.
DB Zugriff erfolgt durch Aufruf einer Methode mit Übergabewert dem Objekt und alles Weitere wird von einem sog. EntityManager erledigt, welcher übrigens auch im Bezuf auf Concurrency seine Hände im Spiel hat.
Was mir besonders gut gefällt ist, dass JSF sehr stateful ist. Sprich, mehrere User können auf ein und dem selben Objekt arbeiten und zwischen den Anfragen werden die Zustände der Objekte gespeichert.
Anders bei PHP, bei welchem jeder Aufruf, ein Parsen der gesamten PHP-Syntax mit sich zieht und erst dort werden Objekte angelegt, Methoden aufgerufen und dergleichen.

Da ich selbst erst seit relativ kurzer Zeit (halbes Jahr) mit JSF arbeite, kann ich bisher nur diese wirklichen Kernunterschiede, welche mir persönlich wichtig sind, nennen.
Die angesprochene Geschwindigkeit bei Java ist durchaus ein kleines Manko, soweit ich das aber in Erfahrung bringen konnte, ist diese Geschwindigkeit Zugriffsunabhängig in gewissem Ausmaß. Sprich bei mehreren hundert Besuchern, verspührt jeder Benutzer auch noch ungefähr die selbe "Trägheit" des Systems, wie wenn er alleine auf dem Projekt surft (ist mir zumindest aufgefallen). Sofern natürlich die Programmierung dahinter entsprechend redundanz-los gewählt ist.

Als DB eignet sich MySql wunderbar. Die Objektreferenzen und Beziehungen werden backward-engeneering von Spring/Orchestra/JPA behandelt und selbst die DB-Struktur wird in Java festgelegt und beim Ausführen des Projektes die DB-Struktur angelegt.

Mfg,
Goose
 

Neue Beiträge

Zurück