Hi Sven,
Wobei ich jetzt mal die Frage in den Raum stelle: Welche von beiden Sprachen ist denn nun die bessere
um was damit zu erreichen?
Wenn man eine von beiden lernen will, zu welcher sollte man greifen, wenn man zum Beispiel so Dinge wie Foren, Boards, Gästebücher, Polls und ähnliche Webstandards programmieren möchte?
Besitzt Du eine Zeitmaschine?
Wie sicher bist Du, daß Du _nie_ etwas anderes entwickeln willst als "Web-Applikationen"?
Ich beschäftige mich beruflich inzwischen ausschließlich damit, eine Webapplikation zu betreuen und weiter zu entwickeln, aber etwa 70% meiner Programme läuft _nicht_ über den HTTP-Server, sondern sind Infrastruktur-Tools, kleine Dateiformat-Konverter, Datenbank-Import-Tools, Syntax-Checker für Konfigurationsdateien, Generatoren für Konfigurationsdateien (von Fremdprodukten, die keine Include-Anweisung unterstützen usw.), Accounting-Auswerter, ... was halt alles so anfällt, wenn man ein komplettes Betriebskonzept softwaremäßig umzusetzen hat.
Ich habe beispielsweise ein Programm geschrieben, das aus einer Berechtigungsstruktur unserer Datenbank eine Webalizer-Konfigurationsdatei generiert, damit der Webalizer dann bei der Auswertung der Apache-Logs die Seitenabfragen automatisch nach Kunden gruppieren kann (deren Identität via HTTP Authentication bereits erfaßt wurde, bloß die Zuordnungs zwischen Benutzerkennungen, Virtual Hosts - userids sind nur innerhalb dieser unique - und Kundennamen fehlte).
Ein nennenswerter Teil der real existierenden Probleme wird sinnvollerweise gar nicht damit gelöst, daß man ein Programm schreibt, das wirklich "das Problem" angeht, sondern daß man für ein "fast passendes" fertiges Programm eine Anpassung baut. Das kann um Größenordnungen effizienter sein, als das Rad neu zu erfinden.
Ich brauche eine vollwertige Programmiersprache, die mich nicht dazu nötigt, "in CGI zu denken". Sie muß als CGI-Applikationssprache halbwegs komfortabel verwendbar sein - mehr nicht. Und das ist eher eine Frage der vorhandenen Module bzw. Bibliotheken als der konkreten Sprache. Auf assoziative Arrays würde ich heute nicht mehr verzichten wollen ... das können aber wohl beide Kandidaten.
Und neben dieser Sprache sind sowohl SQL als auch die Betriebssystem-Kommandosprache (in meinem Fall UNIX-shell, crontab usw.) unverzichtbares Wissen für einen Web-Programmierer, denke ich (wobei Perl an dieser Stelle inzwischen auch bei mir einen Teil der Aufgaben übernommen hat - aber ein Betriebssystem habe ich auf jeder Maschine, einen Perl-Interpreter vielleicht nicht).
Mit einer Sprache alleine kann man nicht alle Probleme effizient lösen - dazu sind die verschiedenen Ansätze der Sprachen (algorithmisch vs. deskriptiv) zu unterschiedlich und für die jeweiligen Einsatzfälle zu gut optimiert. (Ich würde weder in Perl noch in PHP eine SQL-Query emulieren wollen, und auch crontab nachzuprogrammieren fände ich eher öde.)
welche der beiden Sprachen ist denn nun die sinnvollere?
In meinen Augen diejenige, die mehr Deiner realen Einsatzzwecke unterstützt.
Eine Sprache, die etwas zuviel kann, lerne ich halt nur teilweise - eine Sprache, die etwas zu wenig kann (beispielsweise keine regular expressions), ist möglicherweise in einem konkreten Einsatzfall völlig wertlos oder zumindest unverhältnismäßig teuer.
Und ich will nur _eine_ algorithmische Sprache verwenden, weil ich sie ohne ständiges Blättern im Handbuch flüssig einsetzen möchte ... es droht allerdings, daß ich 2004 wieder so eine Sprache werde lernen müssen. Naja - es gibt schlimmeres. ;-)
Oder sollte man zu etwas ganz anderem greifen, wie zum Beispiel C++?
Das ist auch eine algorithmische Sprache. Wobei der Unterschied zwischen Compiler- und Interpretersprache reine Geschmackssache ist ... genau wie die unterschiedliche Toleranz der jeweiligen Übersetzer.
Ich kenne meinen eigenen Programmierstil: Ich mag Compiler, die mich "gängeln", dafür aber auch alle meine Schlampigkeitsfehler finden. (Ergo: Ich hasse C und liebe PASCAL.)
Wenn Du HTML-Dokumente schreibst, ohne Dir über Deinen "Programmierstil" Gedanken zu machen, dann suche Dir eine Sprache, die Du "cool" findest. Wenn Du HTML-Dokumente validierst, dann suche Dir einen Übersetzer, den Du als Gefährten auf einen Abenteuer-Urlaub mitnehmen würdest - wo Ihr Euch aufeinander verlassen müßt.
Viele Grüße
Michael
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.