Am 13. Oktober 2008 haben Peter Bucher und Golo Roden unter dem Titel "Noch Fragen, Bucher? Ja, Roden!" angekündigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gewählten Thema verfassen zu wollen. Heute, am 1. August 2009, ist es nun wieder so weit, und das Thema für diesen Monat lautet:
Die beiden haben mich netterweise gefragt ob ich dieses Mal als "Gast-Mitstreiter" dabei bin, und so haben wir drei uns unabhängig voneinander im Vorfeld unsere Gedanken gemacht, wie wir diesem Thema gegenüberstehen.
Kommentare finden sich zeitgleich in ihren Blogs, folgend nun meine Meinung zu diesem Thema:
Seit mehreren Jahren schon schickt Microsoft Personal zu den relevanten PHP-Konferenzen. Zunächst "nur" Joe Stagner (der auf seiner Visitenkarte als Berufsbezeichnung "Misfit Geek" stehen hat), später auch noch ein paar Kollegen. Inhaltlicih drehen sich die Vorträge der "Eindringlinge" grob um zwei Themeblöcke: die Serverprodukte von Microsoft sowie die Verbindung von PHP und Microsoft-Technologien. Gerade bei letzterem Themenblock (aktuell gerne gesehen, und technisch absolut abwegig: Silverlight und PHP) kommen die Evangelisten nicht umhin, auch mal Code in einer der .NET-Sprachen vorzuführen. Vor einigen Jahren, auf einer nordamerikanischen PHP-Konferenz, schnupperte ich in einen der Microsoft-Vorträge hinein und sag tatsächlich .NET-Code — und zwar in Visual Basic. Nach einiger Zeit begriff ich, wieso: PHP selbst ist nicht streng typisiert, und der VB-Code verwendete auch überhaupt keine Datentypen oder Variablendeklarationen (es leben
Option Strict und
Option Explicit!). Das amüsierte und bedrückte mich gleichermaßen. Visual Basic ist also offensichtlich eine Sprache für Arme und ist das einzige aus der technisch fortschrittlichen .NET-Welt, das man den oftmals belächelten PHP-Progammierern überhaupt vorsetzen kann.
Ist also Visual Basic mittlerweile nur noch eine Lernsprache für Anfänger, "richtige" Entwickler nehmen C# und Rockstars mit Geltungsdrang einen Exoten wie Iron<dynamische Sprache bitte einsetzen> oder F#? Ich halte diese Aussage für ein wenig gehässig, höre sie aber immer wieder, sowohl von VB- als auch von C#-Entwicklern (die Rockstars lasse ich mal außen vor).
Eines vorweg: ich bin der Überzeugung, dass sich ein guter Entwickler nach vergleichsweise kurzer Zeit in (fast) jeder Programmiersprache gut zurecht finden kann. Sogar in COBOL. Es geht also nicht darum, welche Programmiersprache die beste ist, sondern welche am besten zum Lernen geeignet scheint. Geht es um das Lernen einer Sprache, gibt es mehrere Kriterien, nach denen man eine Sprachwahl treffen kann:
- Vorerfahrungen: wer bereits programmieren kann, sucht sich am besten eine Sprache mit einer Syntax die ähnlich zum Gewohnten ist. PHP-Entwickler beginnen wohl mit C#, und als ich vor vielen vielen Jahren von ASP auf ASP.NET umgestiegen bin hatte ich mit Visual Basic als aufgemotzte Version von VBScript angefangen.
- Lernkurve und Frustrationspotenzial: Als die Einführungsvideos im Express Einsteiger Center konzipiert wurden, war Visual Basic die erste Sprache, die realisiert wurde. Gerade Nutzer mit wenig oder gar keiner Programmiererfahrung stolpern immer wieder darüber, dass es einen Unterschied zwischen Groß- und Kleinschreibung gibt. Wenn man nicht selbst mit dieser Zielgruppe spricht glaubt man das kaum — bei den meisten "gestandenen Entwicklern" ist es Jahre, gar Jahrzehnte her dass sie das erste Mal eine Programmiersprache lernen mussten, sie sind deswegen viel zu weit von den Problemen beim Einstieg entfernt.
- Verwendbarkeit in der Praxis: Wer für seinen Arbeitgeber .NET lernen muss, nimmt natürlich die, die gemäß Firmenstandard zum Einsatz kommt. Wer für sich selbst lernt, schielt natürlich auf die Marktanteile der Programmiersprachen. Der aktuelle TIOBE Index von Juli 2009 zeigt ein interessantes Bild: Java vor C, C++, PHP, (Visual) Basic und C#. PHP ist kürzlich an (Visual) Basic vorbeigezogen, welches wiederum in den letzten 12 Monaten etwa ein Viertel Marktanteil abgegeben hat — nicht jedoch an C#, das einen relativ konstanten Marktanteil hat. In anderen Worten: beide Hauptsprachen von .NET sind weiterhin relevant. Ich erlebe immer wieder in Projekten dass gerade neue Software extrem häufig in C# entwickelt wird. Ich selbst habe Visual Basic schon seit Jahren nicht mehr im Einsatz. Ich bilde mir aber ein dass ich in der Lage sehr schnell wieder umzusteigen, sollte es notwendig werden.
Letztendlich gibt es also gar keine falsche Wahl: wer Rücksicht auf etwaige Standards in Firmen oder Projekten werfen muss, hat eh keine Wahl. Andernfalls kann man sich durch seine Vorerfahrungen oder auch durch die Einsteigerfreundlichkeit leiten lassen. Und selbst wenn die Messmethode von TIOBE nicht perfekt ist, zeigt sie doch ziemlich deutlich, dass sowohl Visual Basic als auch C# noch "am Leben" sind — auch wenn man mittlerweile auf Microsoft-Konferenzen kaum mehr VB-Code auffindet. Der einzige Fehler, den man machen kann, ist eine der Sprachen für prinzipiell schlecht zu halten. Gerade beim Lernen sind Syntax-Feinheiten oder die neuesten Features der aktuellsten Sprachversion irrelevant. Und, wie gesagt, ein guter Entwickler kann später immer noch die Sprache wechseln; mit fast jeder Sprache ist es zudem möglich, ein guter Entwickler zu werden (wohl sogar mit COBOL).
Auf PHP-Konferenzen findet man übrigens sehr viele gute Entwickler. Nicht nur deswegen fand ich die Sprachwahl der Microsoft-Evangelisten etwas unglücklich: die PHP-Syntax ist C-basiert, so dass C#-Code für PHP-Entwickler schneller verständlich gewesen wäre. PHP-Entwicklern mit Wechselgedanken würde ich deswegen C# ans Herz legen.
Am 13. Oktober 2008 haben Golo Roden und ich unter dem Titel Noch Fragen, Golo? Ja, Bucher! angekündigt,
Tracked: Aug 03, 19:04
C# oder VB: Welche Sprache soll ich lernen?
Tracked: Aug 03, 19:12