{"id":140,"date":"2013-02-01T00:54:42","date_gmt":"2013-01-31T23:54:42","guid":{"rendered":"https:\/\/www.krombusch.de\/?p=140"},"modified":"2021-11-01T12:37:06","modified_gmt":"2021-11-01T11:37:06","slug":"willms-goes-vb","status":"publish","type":"post","link":"https:\/\/www.krombusch.de\/?p=140","title":{"rendered":"Willms++ goes VB"},"content":{"rendered":"<p>Naja, nicht ganz.\u00a0Aber immerhin spielt er jetzt wenigstens mit den Schmuddelkindern.<\/p>\n<p><strong>Review zum VHS-Seminar\u00a0&#8222;Einf\u00fchrung in die objektorientierte Programmierung mit Visual Basic.NET&#8220;, Januar 2013<\/strong><\/p>\n<p>Wer seinen Bildungsurlaub mit Andr\u00e9 Willms im Komed verbringt, sollte vorher ein paar Grundregeln kennen:<\/p>\n<ol>\n<li><span style=\"line-height: 1.714285714; font-size: 1rem;\">Egal, wie perfekt dein Algorithmus\/L\u00f6sungsweg ist:<br \/>\n<span style=\"line-height: 1.714285714; font-size: 1rem;\">der von Willms ist immer 3 Anweisungen und 5 Variablen k\u00fcrzer<\/span><\/span><\/li>\n<li>\u00c4gyptische K\u00e4fer sollte man nicht mit Programmierern in Labyrinthe stecken.<\/li>\n<li>Gib dein Abiturzeugnis zur\u00fcck! Zumindest, was Mathe betrifft.<\/li>\n<li>Am dritten Tag wackelt dein VB6-Weltbild.<br \/>\nDu irrst aber noch im Glauben, es verteidigen zu k\u00f6nnen.<\/li>\n<li>Wer am letzten Tag Variablen innerhalb von Klassen noch als Public deklariert,<br \/>\nwird unehrenhaft entlassen.<\/li>\n<li>Am Ende merkst du, wie cool das Seminar eigentlich war.<\/li>\n<\/ol>\n<p>Zum Hintergrund: Andre kommt didaktisch aus der C\/C++-Ecke, in der man Programme noch ehrlich und mit blo\u00dfen H\u00e4nden aus Bleistift und Papier erschafft.<\/p>\n<p><!--more--><\/p>\n<p>Somit beginnt auch das Seminar trotz des OOP-Titels zun\u00e4chst mit den klassischen Kontrollstrukturen der prozeduralen Programmierung. Unerl\u00e4sslich f\u00fcr den Anf\u00e4nger und hilfreich f\u00fcr den VB6-Umsteiger wegen der \u00c4nderungen an Sprachsyntax oder sowas wie expliziter Typumwandlungen. Damit im Schatten des Beamers kein Deliquent\u00a0wegd\u00f6st, muss sich K\u00e4fer Scara von ihm nach jeder Lerneinheit durch ein Labyrinth zu einem Schatz lotsen lassen. Was echt komplex werden kann. (Spieleprogrammierer Willms hat das kleine Insekt \u00fcbrigens nach Vorbild eines alten Amiga-Spiels gez\u00fcchtet).<br \/>\nDer Clou ist das direkte visuelle Feedback, \u00e4quivalent zur Quellcodeg\u00fcte\u00a0der Seminarteilnehmer. (Wenn der kleine Mistk\u00e4fer wegen &#8222;verbesserungsw\u00fcrdiger&#8220; Programmierlogik kurz vor dem Ziel doch noch \u00fcber die Klippe st\u00fcrzt.)<\/p>\n<p><a href=\".\/wp-content\/uploads\/2013\/02\/scara.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-146\" alt=\"scara\" src=\".\/wp-content\/uploads\/2013\/02\/scara-300x229.png\" width=\"300\" height=\"229\" srcset=\"https:\/\/www.krombusch.de\/wp-content\/uploads\/2013\/02\/scara-300x229.png 300w, https:\/\/www.krombusch.de\/wp-content\/uploads\/2013\/02\/scara.png 535w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Der objektorientierte Teil des Seminars ist dann Heimspiel f\u00fcr den Dozenten. Solange es um Klassen, deren Methoden (aka Funktionen) und Exemplare (aka Instanzen) geht, ist die eigene objektbasierte Programmierwelt noch in Ordnung. Die Verwendung des neuen Konstruktors mit Paramter\u00fcberladung nimmt man da noch hin. Doch sp\u00e4testens bei der Vererbung bzw. deren Durchbrechung mit &#8222;overloads&#8220; bis hin zur Polymorphie mit &#8222;overrides&#8220; kann sich keiner mehr auf vorhandenes Wissen st\u00fctzen. Obwohl das zu implementierende Weihnachtsgeld-Beispiel sehr lebensnah ist, bleibt die Frage, ob der Programmieranf\u00e4nger da noch mitkommt.<\/p>\n<p>Das kann aber auch eine pers\u00f6nliche Sichtweise sein, weil man es einfach so nicht gelernt hat. H<span style=\"line-height: 1.714285714; font-size: 1rem;\">\u00f6rt sich \u00fcbrigens erstmal komisch an, nach etlichen Jahren VB-Programmierung wieder einen Anf\u00e4ngerkurs zu besuchen. Ist es aber ganz und gar nicht: Erstens verwenden wir auf der Arbeit unser VBx seit Markteinf\u00fchrung und haben noch nie Kontakt mit dem ganzen .NET-Ged\u00f6ns und seinen einhergehenden Sprach- und IDE-\u00c4nderungen gehabt. Wird aber langsam Zeit, wo Microsoft Ernst macht und sogar XP nach gef\u00fchlten 200 Jahren den Hahn abdreht. Die Schlinge zieht sich zu.<\/span><\/p>\n<p>Zweitens wird man gerade im Programmierumfeld irgendwann geistig\u00a0unflexibel. Und faul. Da gibt es immer gleiche Herangehensweisen an gleich aussehende Aufgaben. EGK\/KVK auslesen? Datenbank\/Office manipulieren?. Egal, Dim i%, a%, x% \u00a0hat&#8217;s immer getan. Ob das im Einzelfall sinnvoll oder -los ist.\u00a0Ein Bildungsurlaub kann da neue Ideen und Herangehensweisen bringen. Andre (dessen Firmenlogo stark an sowas wie Knax-Club erinnert) hat seinen Kurs trotz Alltagsgesch\u00e4ft engagiert durchgezogen und jede unserer nervigen Fragen souver\u00e4n beantwortet. Dass Arrays nach alter VB-Schule nat\u00fcrlich wie woanders auch mit Index 0 beginnen und dass nicht explizit initialisierte skalare Variablen in VB6 trotzdem einen Default-Wert haben: geschenkt.<\/p>\n<p><strong>Fazit:<\/strong><br \/>\nEin Seminar h\u00e4ngt immer auch von der Teilnehmergruppe ab. Je mehr &#8222;alte Hasen&#8220; am Start sind, umso spezieller kann es werden. Ich w\u00fcrde diesen Kurs aber auch dem Programmieranf\u00e4nger empfehlen, und sei es nur, um nach dem Grundlagenteil in die richtige Denkweise reinzukommen. Zuletzt sei auch eine Lanze f\u00fcr Visual Basic gebrochen: Mittlerweile ist die Sprache erwachsen geworden und schafft dabei trotzdem noch den Spagat zu verst\u00e4ndlicher Syntax ohne 50 geschweifte Klammern pro Zeile.<\/p>\n<p>Nach den f\u00fcnf Tagen Verst\u00e4ndnisgewinn beginnt nach Karneval der schwierige Teil: die praktische Umsetzung.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Naja, nicht ganz.\u00a0Aber immerhin spielt er jetzt wenigstens mit den Schmuddelkindern. Review zum VHS-Seminar\u00a0&#8222;Einf\u00fchrung in die objektorientierte Programmierung mit Visual [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-140","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=140"}],"version-history":[{"count":11,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":407,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=\/wp\/v2\/posts\/140\/revisions\/407"}],"wp:attachment":[{"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.krombusch.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}