{"id":12559,"date":"2023-08-24T10:58:19","date_gmt":"2023-08-24T08:58:19","guid":{"rendered":"https:\/\/www.q-software-solutions.de\/blog\/?p=12559"},"modified":"2023-08-24T10:58:22","modified_gmt":"2023-08-24T08:58:22","slug":"passend-zu-den-letzten-eintraegen","status":"publish","type":"post","link":"https:\/\/www.q-software-solutions.de\/blog\/2023\/08\/passend-zu-den-letzten-eintraegen\/","title":{"rendered":"Passend zu den letzten Eintr\u00e4gen"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ich schrieb, da\u00df ich mich auf einen neuen Trip begebe, ich m\u00f6chte anfangen F# intensiver zu benutzen. Ich hole noch ein bisschen aus, um  meinen Hintergrund zu verstehen.  Ich bin a) nicht mehr der J\u00fcngste  und b) ca 30 Jahre Programmierer +\/- 10 Jahre. Die 10 Jahre kommen von meinen &#8222;leichten&#8220; Kontakten zur Programmierung. Weil es beim Bund f\u00fcr Wehrpflichtige die M\u00f6glichkeit gab, Kurse zu belegen, habe ich bei einem dBase Kurs mitgemacht. OS: CPM und dBase II  Bildschirm vielleicht 80 x 24 Zeichen, ich wei\u00df es nicht mehr. Eines meiner \u00e4ltesten B\u00fccher aus der Zeit ist vom  Franzis Verlag, Titel Die beiden Datenbanksysteme dbase II und III, Datum im Buch 1986. <br>Das ergibt 2022 &#8211; 1986 = 36 Jahre, tja und in der Schule habe ich auf einem TI irgendwas mit Basic angefangen. Somit ja das mit der Zeit kommt hin. Dann kam der erste PC in &#8217;s Haus. Ein Atari ST , RAM 1024 MB , Platte 20 MB!, sauteuer aber cool.  Da  ein wenig in die Programmierung reingeschnuppert, aber nie was auf die Reihe bekommen. Dann kam das Studium an der Uni Karlsruhe und der erste Kurs war Modula-2. Ich habe bisher nichts \u00f6fter wiederholt als diesen Kurs. Ich bin, was programmieren angeht, kein schneller Lerner, aber hartn\u00e4ckig nehme ich an. Der Kurs war irgendwann geschafft und dann kam C und keine Ahnung, von da an lief es, was programmieren angeht besser. Absurd, wenn man daran denke wie viele lesbarer Modula-2 Code ist als C (wenn man es nicht gewohnt ist). Trotzdem scheint es f\u00fcr mich leichter gewesen zu sein Den Kurs habe ich sofort bestanden. Dann kam Eiffel und darin habe ich angefangen ernsthaft Software zu schreiben. Es gibt noch ein paar Paket dort drau\u00dfen in denen ich meine Finger reinsteckte siehe: https:\/\/fam-dominicus.de\/tiki\/tiki-index.php?page=FriedrichsTiki . Vielleicht sollte ich die Quellen mal irgendwan  zug\u00e4nglich machen.<br><br>Dann gr\u00fcndete ich die Q-Software Solutions und die Idee war urspr\u00fcnglich eine Nachfolgersprache f\u00fcr Eiffel zu entwickeln Q. Die Idee damals: strikte Trennung CQS. Der Teil mit Status sollte OO m\u00e4ssig aufgebaut sein, der Rest funktional. Naja wir hatten etwas was prinzipiell funktioniert aber es war ein totaler wirtschaftlicher Reinfall, es wurde nie fertig und verschlang wirklich viel Geld &#8230;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hier noch ein bisschen Code der damals lief &#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;fam-dominicus.de\/tiki\/tiki-index.php?page=FriedrichsTiki\nclass Argv_test -- Main\n\ncreation\n   make\n      local\n         i : Integer;\n         args: Arguments;\n      do\n         args := new Arguments.make;\n         out := new Standard_output;\n         i := 1;\n         loop\n         until i > args.argument_count\n            out.print_string(\"argument \");\n            out.print_integer(i);\n            out.print_string(\"= \");\n            out.print_mutable_string(args.argument(i));\n            out.print_newline;\n            i := i + 1;\n         endloop\n         out.print_string(\"program name = \");\n         out.print_mutable_string(args.program_name);\n         out.print_newline;\n      end;\n\npublic\n\n\n   out: Standard_output;\n\n\nendclass<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Es compilierte nach C und deswegen habe ich mich mit Jacob Navia zusammengetan.( https:\/\/lcc-win32.services.net\/. Die Zusammenarbeit war lang und erfreulich. Und nun gebe ich ein wenig an, wir waren unter den Ersten, die diesen Compiler auf 64-bit portierten, damals f\u00fcr eine Firma, die das benutzen wollte, um SQL Queries f\u00fcr ihre Datenbank zu kompilieren. Es gab auch eine Firma, die ein 5-GL Sprache anbot, die nach C kompilierte, das C war lcc-win32. Ich glaube die Schnittstelle nach C von Q war eine der einfachsten, die es damals gab und vielleicht heute noch gibt:<br><br>Da kam also einiges an Erfahrung mit C dazu. Es ist heute immer noch eine PS, die ich sch\u00e4tze. Aber PS haben einen &#8222;leicht&#8220; addiktiven Effekt und ja, die Idee von Q ist immer noch pr\u00e4sent. \u00dcber die Zeit habe ich mir dann immer mehr PS angeschaut, manche angeeignet, einige relativ umfassend, andere so la la und manche eher schlecht als recht. <br>Ich z\u00e4hle einfach nur auf (ohne zu sagen wie gut oder schlecht ich damit zurecht komme) , C, Eiffel, Turbo Pascal, Perl, Tcl\/Tk, Ruby, Python, Common Lisp, Scheme, Smalltalk, D, Java, C#, Emacs Lisp, Erlang, Racket, IO, Self, Dylan, Ocaml, div. Assembler, VBA, WLanguage, C##<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Man sieht, eher auf der OO Seite, wie ich aber vor zwei Tagen schrieb ist mir Java und C# irgendwo zu &#8222;verbose&#8220;, ich mu\u00df zuviel schreiben und lesen um zum Kern zu kommen, deshalb denke ich werde ich mit  F# auf .NET gut fahren. Wie geschrieben, ich denke, man sollte alle Hilfe beim Programmieren benutzen, derer man habhaft werden kann. Es gibt aber ein paar Sprachen, in denen ich mir zutraue, etwas hinzubekommen, die ich aber nicht mag und ganz oben sind da C++ und Perl. Die sind IMHO zu kompliziert, aber ich kann weit daneben liegen. <br>Ich warte derzeit eine Software seit mehr als 10 Jahren, eine MS-Access L\u00f6sung. Sie funktioniert, ist aber ein \u00c4rgernis, was Wartung und Weiterentwicklung angeht. Ich arbeite daran, aber &#8230;<br><br>Also wohin und was tun. Ich denke nach dem Abw\u00e4gen der M\u00f6glichkeiten und der eigenen Vorlieben und K\u00f6nnen sollte ich mit F# durchaus zurande kommen. Auf der anderen Seite sehe ich dann Videos wie:<br><br><br><\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"The biggest problem with Rust\" width=\"625\" height=\"352\" src=\"https:\/\/www.youtube.com\/embed\/fgrK7zWWU84?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Was mich einfach abschreckt und das sieht f\u00fcr mich nach kompliziert aus, ohne einen Gegenwert. Ich denke, ich m\u00f6chte keine manuelle Speicherwaltung und ich m\u00f6chte mich nicht mit Referenzen und Eigentum von Objekten auseinandersetzen. Ich m\u00f6chte eine einfach lesbare L\u00f6sung und Sprache und F# k\u00f6nnte es sein. Ich denke auch die Trennung von OO und FP d\u00fcrfte in F# funktionieren und wenn&#8217;s nicht klappt, kann ich immer noch C# Klassen benutzen \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich schrieb, da\u00df ich mich auf einen neuen Trip begebe, ich m\u00f6chte anfangen F# intensiver zu benutzen. Ich hole noch ein bisschen aus, um meinen Hintergrund zu verstehen. Ich bin a) nicht mehr der J\u00fcngste und b) ca 30 Jahre Programmierer +\/- 10 Jahre. Die 10 Jahre kommen von meinen &#8222;leichten&#8220; Kontakten zur Programmierung. Weil [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7979],"tags":[7473,8146,8424,7682,7934,8423,8030,8430,8428,8427,8426,7397,8429],"class_list":["post-12559","post","type-post","status-publish","format-standard","hentry","category-programmierung","tag-c","tag-c-2","tag-common-lisp-2","tag-d","tag-eiffel","tag-f-2","tag-geschmack","tag-lesbarkeit","tag-lua","tag-perl","tag-php","tag-python","tag-tcl-tk"],"_links":{"self":[{"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/posts\/12559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/comments?post=12559"}],"version-history":[{"count":0,"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/posts\/12559\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/media?parent=12559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/categories?post=12559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.q-software-solutions.de\/blog\/wp-json\/wp\/v2\/tags?post=12559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}