Normalerweise sind meine Argumentationen ja so zwingend, daß sie keinen Widerspruch hervorrufen. (Vielleicht liest aber auch nur keiner mein Blog :-)

Dennoch regt sich manchmal Widerstand, zum Beispiel als Reaktion auf den Artikel "My, ist das geil":  Golo Haas, der Besitzer des äußerst lesenswerten, intelligenten und oft überraschenden Eisbärenblogs findet das My-Objekt gar nicht geil. Der Vorwurf lautet: "Jetzt haben wir so ein schönes, einheitliches Framework, und jetzt geht Ihr VB-Schnullis wieder getrennte Wege? Warum nur?". Das ist freilich von mir sehr ungerecht zusammengefasst: Golos wirklich gute und faire Argumentation kann man hier nachlesen.

Unter anderem schreibt er: "[...] My ist nicht geil. Nicht einmal ansatzweise. Denn My untergräbt die klare Struktur von .NET, die viele Entwickler so lieben, wie es bei PHP auch geschieht. Unter dem Motto "Alles soll einfacher werden" wird ein zusätzlicher Namensraum eingeführt, der Abkürzungen bietet. Diese aber mit eingeschränkter Funktionalität, und nicht mehr nach den klassischen Namensräumen sortiert, es wird also neben der Einführung einer zweiten Schreibweise auch noch die Beschäftigung mit den klassischen Namensräumen vermindert. Letztlich führt das meiner Meinung nach zum gleichen Ziel wie in PHP, nämlich, dass Einsteiger sich auf My stürzen werden, dann aber irgendwann an die Grenzen stoßen oder fremden Code bearbeiten müssen, und sich dann doch mit den klassischen Strukturen auseinander setzen müssen. Letztlich wird so wieder ein Parallelweg eingeführt, der eigentlich überflüssig ist, und am Ende die Produktivität eher senkt als steigert, da redundante Abläufe erlernt werden müssen. [...]"

Dazu habe ich einige Thesen:

Wir müssen uns mit der harten Realität abfinden: Es gibt eine große Bandbreite von Programmierern da draußen - von der (oft selbsternannten) Elite bis zum Hobby- oder Gelegenheitsprogrammierer. Nirgends ist zudem die Bandbreite so hoch wie bei der klassischen VB-Gemeinde – hier gibt es wirklich alle Schattierungen.

Und mindestens drei davon sind die Zielgruppe des My-Objekts. Wo wir schon bei (Mynungs-)freiheit sind:

  • Nehmen wir den vorkenntnisfreien Anfänger. Visual Basic 6 war auch deshalb ein Erfolg, weil dieses Framework eine steile Lernkurve hat und ein Einsteiger gleich loslegen konnte. Dieses gute Gefühl ist mit VB.NET weg – das höre ich jeden Tag von Leuten, die VB.NET als zu komplex empfinden. Wer gleich am Anfang eine große Wand vor sich sieht, wird in vielen Fällen erst einmal die Flucht ergreifen. Ein Neueinsteiger braucht schnelle Erfolgserlebnisse. Meine These: Wer irgendwann später an die Grenzen stößt, hat dann (aber erst dann) die Motivation, sich weiter einzuarbeiten und Techniken und Werkzeuge zu benutzen, die mehr Lernaufwand, aber auch mehr Möglichkeiten bieten. Vom Dreirad auf das Fahrrad umsteigen ist etwas stressig - aber nötig.
  • Dann gibt es da den theoriefreien Praktiker. Der ist typischerweise Ingenieur und will eben mal schnell eine Applikation zum Auslesen von Messwerten über den seriellen Port schreiben. Die Schönheit und Konsistenz des Frameworks ist ihm herzlich egal. Er will Ergebnisse, denn morgen muß er die Werkzeugmaschine beim Kunden abliefern und braucht die Messwerte für ein Freigabedokument. Seine Aufgabe ist es nicht, schönen wartbaren Code für die Ewigkeit zu schreiben. Sein Chef würde ihn entlassen, wenn er erstmal zwei Wochen irgendein Framework erlernen muß. Er will nicht irgendwann in anderen Sprachen programmieren und den Code anderer Leute lesen. Der theoriefreie Praktiker wird übrigens immer übersehen und meistens mit dem vorkenntnisfreien Anfänger in einen Topf geworfen.
  • Ich persönlich gehöre zur Gruppe der ideologiefreien Pragmatiker. Gibt es eine Möglichkeit, irgendwas schneller zu erledigen, dann nutze ich diese. Ich habe kein Problem damit, daß es mehrere Möglichkeiten und  gibt, dasselbe Problem zu lösen – und jedes der verwendbaren Werkzeuge spezifische Vor- und Nachteile hat. That’s Life – jeder Handwerker kann das bestätigen! Will ich schnell sein? Gib mir mehr Namespaces von vom Schlage "My"! Will ich genaue Kontrolle über meine Arbeit? Do it yourself with System.IO and friends! Ich habe die Wahl der Waffen. Das ist für mich keine "Redundanz" sondern Flexibilität – bei VB6 hatte ich die nicht, da musste ich nehmen, was die VB-Runtime auftischte und mir notfalls mit C++ behelfen (schauder). Die Wahl zwischen RAD und klassischem Frameworkcode steigert hingegen noch meine Produktivität.

Und wo liegt das Problem?

 

Die Problemkandidat Nummer eins ist der erkenntnisfreie "Fortgeschrittene", der nach 10 Jahren Berufserfahrung als Codeklopfer immer noch glaubt, Datenbankcode gehöre in den Click-Event des OK-Buttons. Der keine Wahl treffen kann zwischen RAD und "reiner Lehre", weil er nur ersteres kennt- und keine Lust hat irgend etwas Neues zu lernen – schließlich könnte da jeder kommen, das war schon immer so, wo kommen wir denn da hin, dBase konnte doch schon alles was man so braucht. Der erkenntnisfreie Fortgeschrittene begründet den schlechten Ruf von RAD-orientierten Features. Aber auch diese Gruppe kauft Compiler. Das ist ein Fakt, den ich mit Zahlen untermauern kann...

 

Sorry, Golo: My ist geil!

 

P.S: Myner Mynung nach kann es außerdem niemand geben, der My-Code nicht versteht, auch wenn er gerade vom Planeten Cobol angekommen ist oder den Gott des Semikolons verehrt ;-)

 

P.P.S: Ich habe gerade gemerkt, daß die Buchstabenkombination "ei" in der deutschen Sprache ygentlich überflüssig ist!