Joe User wrote:So wie bei MVC auch: Ich übergebe meiner Funktion/Klasse/Macro/etc den Namen des Skins. So funktionieren nahezu alle Template-Engines.
Damit folgst Du ja bereits dem MVC-Pattern - Deine Funktion/Klasse/Macro/etc ist der Controller, die verwendeten Skin-Bestandteile sind der View. Was Dein Controller dann noch zusätzlich holt (z. B. DB-Abfragen) sind das Model - bei PHP-Anwendungen z. B. ist das DB-Handling ja bereits in einem der RDBMS-Module wie mysqli o. ä. gekapselt.
Joe User wrote:Das gilt für altbekannte Prinzipien erstrecht, warum also einem Hype folgen?
Für einen Hype ist MVC IMHO mittlerweile zu alt. Ich würde da eher von best practice sprechen...
Joe User wrote:IMHO bräuchte man nur zwei Programmiersprachen:
Assambler für Experten und BASIC für den Rest.
Alle anderen Sprachen bringen keine echte Verbesserung gegenüber diesen Beiden.
Einspruch, Euer Ehren

BASIC halte ich für völlig verzichtbar, genauso wie Perl, Java, C# und so weiter. Jedes Problem lässt sich letztlich in Maschinensprache lösen; wer die Befehlssätze der Prozessoren kennt, braucht also nicht mal Assembler 8)
Aus Produktivitätsgründen braucht man jedoch Abstraktionen von Assembler bzw. Maschinencode. Diese Abstraktion muss dem zu lösenden Problem angemessen sein. Möchte ich ein Betriebssystem schreiben, muss ich gezwungenermaßen nahe am System bleiben. Eine mögliche verwendbare Abstraktion ist dann C. Möchte ich hingegen ein komplexes linguistisches Problem lösen, wäre wohl Lisp oder Erlang eine angemessenere Abstraktion.
Was ich damit verdeutlichen will: Sinn und Zweck einer Abstraktion vom Maschinencode-Level ist es, dem Entwickler die Möglichkeit zu geben, sich mehr auf das logische Problem zu konzentrieren. Die Hauptschwierigkeit ist dabei IMHO, die angemessene Form der Abstraktion zu wählen. Hierbei greifen aber selbst professionelle Programmierer häufig genug ins Klo.
So findet man beispielsweise textverarbeitende Programme wie Editoren, Spellchecker etc., die in C geschrieben sind - in dem Code findet man vor lauter malloc()s die eigentliche Logik nicht mehr. Hier wäre es angemessen gewesen, eine Abstraktion zu wählen, die dem Programmierer das Speichermanagement erspart.
Umgekehrt gibt es auch so idiotische Dinge wie eine X.500-Implementierung in Java - bei Baumstrukturen kommt es jedoch auf effizientes Speichermanagement an, was durch eine virtuelle Maschine und das Konzept der Garbage Collection so gut wie nicht zu realisieren ist.
Wenn man über die Vielfalt der Programmiersprachen urteilt (was hier eigentlich auch schon wieder OT ist

), sollte man im Hinterkopf behalten, dass Programmiersprachen als Abstraktion oft genug für die Lösung eines speziellen Problems geschaffen wurden - und hinterher von Dritten zweckentfremdet eingesetzt werden.