Die letzten 2 Tage habe ich den ersten Teil einer Einzelschulung über insgesamt 4 Tage gehalten. Thema ist ANSI-C. Ganz ohne C++ oder Objektorientierung im Allgemeinen, einem Grafikframework wie Qt oder sonst was Modernes. Gnadenloses, pures C. Das ist wirklich heftig.
Der Teilnehmer ist zwar (bisher) kein Programmierer im engen Sinn, aber super fit und megainteressiert an den Details. Wir reizen die Grenzbereiche von C aus, die man in seinem Schutzzaun unter Java oder C# eigentlich gar nicht mehr erreichen kann. Von den schwächeren Sprachen wie JavaScript oder PHP ganz zu schweigen.
Wenn man sonst mit den mächtigen, modernen Techniken arbeitet, merkt man bei sowas einmal, woher bestimmte Konzepte kommen, über die man sich kaum noch Gedanken macht. Statische Variablen etwa. Was man aber auch merkt ist, wie viel man bei modernen Techniken an Arbeit abgenommen bekommt. Pures C ist wirklich mühsam. Und alt und gefährlich, denn viele Verhaltensweisen sind einfach nicht logisch, sondern rein zielorientiert und mal so und mal so in Anwendung und Wirkung. Eben historisch gewachsen.
Nun bin ich wirklich seit Jahren mit C vertraut (gleich ein klein bisschen Werbung für mein C-Grundlagen-Training bei Video2Brain) . Aber da muss man wirklich hochkonzentriert sein. Auf der anderen Seit macht es richtig Spaß, den Kram alles auszuprobieren und die ganzen Fallstricke abzuklopfen.
Mir ist folgender Vergleich eingefallen. Ich bin handwerklich kein großer Held, aber ich habe auch keine zwei linken Händer. Früher bin ich mehrere Enten (2 CV) gefahren. Da habe ich einfache Dinge wie Birnen oder Zündkerzen wechseln, Ölwechsel durchführen, Keilriemen wechseln bis hin zu komplizierten Dingen wie Rahmen zersägen und zusammenschweißen (das aber mit Hilfe) noch hinbekommen.
Bei modernen Autos kann ich teilweise nicht einmal mehr eine Glühbirne austauschen – vom Einstellen des Motors ganz zu schweigen.
So ist es auch bei C versus modernen Techniken. Bei C kann (und muss) man fast alles noch selbst machen. Mühselig, aber man hat die Kontrolle und eigene Verantwortung. Bei modernen Techniken ist die vollkommen entzogen.
Ich habe meine Enten geliebt und für mich sind das immer noch die genialsten Autos ever. Und ich habe schon angedeutet, dass Programmierung mit C auch richtig Spaß machen kann. Wenn man die Zeit hat …
In der Praxis, wenn ich eine Applikation fertigstellen muss, möchte ich nicht unbedingt mehr damit arbeiten.