''Für Quick & Dirty war Basic wirklich nett''
➤ Es ist schwierig. Die erste Sprache, mit der ich in Kontakt kam, war BASIC. Da gab es noch seitenweise Skripte in Zeitschriften zum Abtippen... und die Frage: Warum geht da nichts?
Danach kam Turbo Pascal. (Assembler war später fürs Studium, aber praktisch ein Rückschritt). Logische Aufteilung. Logische Benennung. Ada, C und so weiter waren eher Erweiterungen.
Smalltalk und die Objekte haben dann nochmal zu einem Umdenken geführt – auch, wenn ich den Eindruck hatte und habe, dass erschreckend viele keine Ahnung von Objekten und Abstraktion haben. Auch nochmal mein Denken geändert haben LISP und Prolog. Sie haben mich aber nicht abgeholt.
➤ Meine erste Programmiersprache war ELAN an der Schule. Danach folgte Basic, das ich mir auf dem Sinclair mit Folientastatur angeschaut hatte. Der Rechner war mir aber zu eingeschränkt, also gab es dann einen eigenen C64. Produktiv war das alles aber irgendwie nicht. In der Ausbildung kamen dann Cobol mit einem Dialekt für Bildschirmdialoge dazu, Assembler auf dem C64, damit ich Spiele zu Trainer-Versionen patchen konnte. Amiga-Basic, GFA-Basic, testweise Turbo-Pascal, C / C++, BASH, Perl (reingeschnuppert).
Für Quick & Dirty war Basic wirklich nett und es reicht für kleinere Anwendungen, wenn man einen Compiler dazu hat. Als Interpreter-Spache war es mir zu langsam. Schade, dass das GFA-Basic auf dem Amiga nicht ausgereift war. Da hätte ich gerne mehr mit gemacht. Aber es war einfach zu buggy.
Die einfache Art und Weise, auch GUI-Elemente nutzen zu können, war aber schon geil. Jetzt programmiere ich eher Microcontroller (ATmega 328P) in C/C++. Das macht Spaß und GUI braucht's da nicht. Schließlich kann so ein Teil mit 32kB Flash und 2kB RAM ohnehin nicht so viel. Aber ein 2,8"-Display mit SPI-Interface für etwas Grafik-Gedöns, das geht durchaus.
Java reizte mich nicht, PHP fand ich vom Code her ziemlich wirr. Überhaupt finde ich es übertrieben, für kleine Projekte gleich mit objektorientierter Programmierung sozusagen mit Kanonen auf Spatzen zu schießen.
Mal schauen, wann ich mal wieder zum Coden komme. Dem Projekt Taupunkt-Lüftung möchte ich bei Gelegenheit gerne neues Leben einhauchen. Statt des Hitachi-kompatiblen Displays will ich da auch ein Grafik-Display einsetzen.
Reizen würde mich eventuell auch noch was mit GO oder Rust. Aber ich weiß, die Zeit ist limitiert und ich möchte mich nicht verzetteln.
➤ Man muss nicht jede Programmiersprache beherrschen, aber man sollte sich schon mit einigen Sprachkonzepten auseinander gesetzt haben. Schaut man nur auf die Hauptsprachen, die ich bisher in meinem Leben verwendet habe, dann ist die Liste gar nicht so lang: Basic, x86 Assembler, Pascal, Java, C, Objective-C, Swift. Was aber nicht heißt, dass ich nie mit anderen Sprachen gearbeitet habe.
Ich habe früher nebenher auch viel PHP und Perl Code geschrieben. Heute schreibe ich oft noch Shell-Skripte (vieles lässt sich damit sehr gut automatisieren) und gelegentlich Ruby Code. Und dann muss ich notgedrungener Weise auch viel mit Javascript arbeiten, wobei ich hier, wann immer möglich, natürlich Typescript bevorzuge (um Welten besser).
Ich habe auch mal Programmieren mit Gofer gelernt (einen Haskell-Dialekt) und ein bisschen was in Delphi geschrieben (Object Pascal Dialekt für Windows Apps). Ich kenne auch ein bisschen Smalltalk, C++, Kotlin und Rust – gerade gut genug, um diesen Code lesen zu können, aber ich habe damit noch nie wirklich produktiv gearbeitet.
Mit Lisp, Closures, Coffeescript, Scala, Fortran und Cobol habe ich mich auch mal ein bisschen befasst, aber ich kann nicht behaupten, dass ich diese Sprachen kenne oder deren Syntax immer verstehen würde.
Hinter fast jeder dieser Sprachen steckt mehr als nur eine Syntax, sondern es stehen dahinter Idee und Konzepte, die man durchaus auch auf andere Sprachen übertragen kann, wenn man möchte. Ich kann in C auch weitgehend funktional programmieren, wie in Haskell; ich kann in Swift auch alles mit Blöcken machen, wie in Ruby, und ich kann in Java nur statische Funktionen nutzen und somit prozedural und imperative programmieren, wie in C. Dafür sind diese Sprachen zwar nicht gedacht, aber man kann sie durchaus so verwenden, wenn das Konzept einem gefällt oder gut zur Aufgabe passt.
Auch wie diese Konzepte dann in der Standard-API umgesetzt wurden, ist es extrem lehrreich, weil es einem neue Wege aufzeigt, wie man zum Beispiel selbst Apps und Bibliotheken schreiben könnte.
Gofer war definitiv interessant, denn rein funktionale Programmierung ist schon eine ganz andere Welt. Aus meiner Sicht ist es nicht praktikabel für komplexe Anwendungen, aber man kann davon etwas übernehmen.
Ansonsten waren es aber eher Frameworks, die meine Gedankenwelt verändert haben. Und auch wenn ich Javascript als Sprache furchtbar finde (kein Wunder, die Sprache wurde in nur 10 Tagen aus dem Boden gestampft), so ist sie extrem flexibel und es lassen sich damit erstaunlich komplexe Konzepte umsetzen, ich sage nur React, Angular, Redux, RxJS, Jest und so weiter. Einige dieser Konzepte lassen sich sehr gut auch in eigenem Code in fast jeder beliebigen modernen Sprache verwenden.
➤ Initial war es eigentlich Python. Ich mag den Batteries-included-Ansatz, und ich mag die Syntax mit den Einrückungen, auch wenn das viele ablehnen. Das hat mich zu meiner Liebe für Yaml und Markdown geführt. Dafür werde ich oft von meinen Freunden ausgelacht. Ich bleibe dabei.
In den letzten Jahren war Splunks' SPL für mich sehr prägend. Es ist nicht wirklich eine Programmiersprache, mehr eine Text Processing Engine. Aber sie verlangt, extrem anders zu denken. Ich weiß es nicht, bilde mir aber ein, dass die Beschäftigung damit (und mit Daten an sich) in meiner Gedankenwelt vieles verändert hat. Es ist weniger: Geht das? Sondern mehr: Wie geht das?
Woher das kommt, keine Ahnung. Als ich gesehen habe, wie wichtig Daten und der Umgang damit sind, fragte ich mich weniger, ob ich etwas damit machen kann, sondern wusste direkt, dass ich was damit machen kann.
Ich vermute, wenn man eine Sprache wirklich gut lernt, kommt dieses Gefühl so oder so. Es gibt kein Hindernis mehr, außer meine Vorstellungskraft. Für mich war das Splunks' SPL, warum auch immer.
PS: Ich schreibe sogar configs für Splunk selbst in Splunk quasi, es ist teilweise ein bissl absurd.
- Anzeige Hier geht es zu den konfigurierbaren Golem-PCs bei Systemtreff Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.