Zeig mir Dein Werkzeug ... Marc Ruef | 18.04.2011 ... und ich sage Dir, wer Du bist. So oder so ähnlich hallt es in meinem Kopf, wenn ich in den folgenden Dialog verwickelt werde. Ich starte meinen Computer oder Laptop auf und mein Gegenüber sagt ganz entsetzt: "Ich habe nicht damit gerechnet, dass Du Windows benutzt!?" Jedes Betriebssystem und jede Software hat ein Image. Windows gilt als altbacken, unflexibel und kommerziell. Linux als offen, manchmal aber auch ein bisschen unhandlich. Apple MacOS X ist cool, aber zu verspielt. Sun Solaris, IBM AIX und viele andere unixoide Betriebssysteme gelten als archaisch, staubig und mühsam. Wenn also jemand in herablassendem Ton sagt, dass ihn die Wahl meines Werkzeugs erstaunt, fasse ich das eigentlich als Kompliment auf. Schliesslich drückt er damit aus, dass ich für die anstehende Aufgabe ein in seinen Augen ineffizientes Werkzeug gewählt habe. Kann ich die Situation dann aber doch meistern, dann beweise ich damit, dass ich selbst mit einem (vermeintlich!) schlechten Werkzeug ein solides Mass an Effizienz und Effektivität durchsetzen kann. Ich definiere Qualität durch mein Sein/Machen und nicht durch mein Haben (http://de.wikipedia.org/wiki/Haben_oder_Sein). Kein langjähriger Programmierer greift freiwillig auf VBS/VBA zurück. Zu unhandlich und unflexibel sind die teilweise altbackenen Konzepte (z.B. keine assoziativen Arrays). Und gerade darin liegt für mich der Reiz. Eine zuverlässige und performante Software, die wider allen Empfehlungen in VBS/VBA umgesetzt ist? Was will man mehr, als sich dieser Herausforderung zu stellen. (Selbstverständlich nur für den "Heimgebrauch". Grössere Software-Projekte will selbst ich nicht damit umsetzen müssen.) Vielleicht liegt meine Wahl aber auch daran, dass ich simple Dinge mag. Und die Sprachfamilie um Visual Basic ist halt einfach simpel gehalten. Mit modernen Konstrukten, wie sie sich in Java oder Objective-C finden, kann ich mich einfach nicht anfreunden. Das überlasse ich den Studenten, die zum Lernen dieser verdammt sind. Macht mich das nun zu einem schlechten Programmierer? Nicht zwingend, wie ich finde. Denn die Wahl eines Werkzeugs ist nur eine Komponente der Fähigkeit "Programmieren". Viel wichtiger sind meines Erachtens die Möglichkeit, Dinge abstrahiert und in modularer sowie performanter Weise zu implementieren. Ergo: Ein "guter" VB-Programmierer ist mir noch immer lieber als ein schlechter C-Programmierer. Aus diesem Grund kann ich es so gar nicht verstehen, wenn das Können eines Programmierers an dessen Sprachwahl abgeleitet werden will und sich nicht mehr umstossen lässt. Gerade PHP-Entwicklern haftet ein - vor allem im Sicherheitsbereich - sehr schlechtes Image an. Die Sprache sei per se unsicher und damit bewiesen, dass PHP-Programmierer keine Ahnung von Sicherheit haben. Dieser Schluss ist meines Erachtens unglaublich naiv, rücksichtslos und schlichtweg falsch. Logikfehler lassen sich in jeder beliebigen Sprache umsetzen. Fehlende Eingabeüberprüfungen, die zu Cross Site Scripting und SQL-Injection führen können, ebenso. Und gar im Gegensatz zu C wird es in nativem PHP relativ schwierig, einen speicherbasierte Fehler (z.B. Pufferüberlauf) zu erzeugen. Das macht nun aber weder C noch PHP besser. Sondern es zeigt einfach einmal mehr auf, dass die Qualität einer Software in erster Linie vom Entwickler abhängig ist. Und dass jede Sprache ihre Vor- und Nachteile hat.