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...
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
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