Schlagwort-Archive: Eiffel

Passend zu den letzten Einträgen

Ich schrieb, daß ich mich auf einen neuen Trip begebe, ich möchte anfangen F# intensiver zu benutzen. Ich hole noch ein bisschen aus, um meinen Hintergrund zu verstehen. Ich bin a) nicht mehr der Jüngste und b) ca 30 Jahre Programmierer +/- 10 Jahre. Die 10 Jahre kommen von meinen “leichten” Kontakten zur Programmierung. Weil es beim Bund für Wehrpflichtige die Möglichkeit gab, Kurse zu belegen, habe ich bei einem dBase Kurs mitgemacht. OS: CPM und dBase II Bildschirm vielleicht 80 x 24 Zeichen, ich weiß es nicht mehr. Eines meiner ältesten Bücher aus der Zeit ist vom Franzis Verlag, Titel Die beiden Datenbanksysteme dbase II und III, Datum im Buch 1986.
Das ergibt 2022 – 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 ‘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 öfter wiederholt als diesen Kurs. Ich bin, was programmieren angeht, kein schneller Lerner, aber hartnäckig 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ür 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ßen 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änglich machen.

Dann gründete ich die Q-Software Solutions und die Idee war ursprünglich eine Nachfolgersprache für Eiffel zu entwickeln Q. Die Idee damals: strikte Trennung CQS. Der Teil mit Status sollte OO mässig 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 ….

Hier noch ein bisschen Code der damals lief …


https://fam-dominicus.de/tiki/tiki-index.php?page=FriedrichsTiki
class Argv_test -- Main

creation
   make
      local
         i : Integer;
         args: Arguments;
      do
         args := new Arguments.make;
         out := new Standard_output;
         i := 1;
         loop
         until i > args.argument_count
            out.print_string("argument ");
            out.print_integer(i);
            out.print_string("= ");
            out.print_mutable_string(args.argument(i));
            out.print_newline;
            i := i + 1;
         endloop
         out.print_string("program name = ");
         out.print_mutable_string(args.program_name);
         out.print_newline;
      end;

public


   out: Standard_output;


endclass

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ür eine Firma, die das benutzen wollte, um SQL Queries für 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:

Da kam also einiges an Erfahrung mit C dazu. Es ist heute immer noch eine PS, die ich schätze. Aber PS haben einen “leicht” addiktiven Effekt und ja, die Idee von Q ist immer noch präsent. Über 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.
Ich zähle 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##

Man sieht, eher auf der OO Seite, wie ich aber vor zwei Tagen schrieb ist mir Java und C# irgendwo zu “verbose”, ich muß 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.
Ich warte derzeit eine Software seit mehr als 10 Jahren, eine MS-Access Lösung. Sie funktioniert, ist aber ein Ärgernis, was Wartung und Weiterentwicklung angeht. Ich arbeite daran, aber …

Also wohin und was tun. Ich denke nach dem Abwägen der Möglichkeiten und der eigenen Vorlieben und Können sollte ich mit F# durchaus zurande kommen. Auf der anderen Seite sehe ich dann Videos wie:


Was mich einfach abschreckt und das sieht für mich nach kompliziert aus, ohne einen Gegenwert. Ich denke, ich möchte keine manuelle Speicherwaltung und ich möchte mich nicht mit Referenzen und Eigentum von Objekten auseinandersetzen. Ich möchte eine einfach lesbare Lösung und Sprache und F# könnte es sein. Ich denke auch die Trennung von OO und FP dürfte in F# funktionieren und wenn’s nicht klappt, kann ich immer noch C# Klassen benutzen 😉

Warum ich C so mag

Es geht an die Programmierer. Ich bin ein wirklich äonenalter Linux Benutzer, wer kennt noch die großen Floppy Discs? und die kleineren “gigantischen” mit 720 kb Speicherkapazität? ;-). Seit Suse 0.x whatever benutze ich Linux, man kann schon sagen, ich war ziemlich am Anfang mit dabei. Zu Unix bekam ich Kontakt in der Uni, damals mit Xenix und SCO Unix. Und wir hatten damals Rechner wo ein Eiffel-Compiler lief mit 4 oder so Benutzern, das waren noch “begrenzte” Ressourcen und Eiffel eine der Sprachen mit autom. Gargabe Collection.

Wie auch immer zwischen drin hatte ich mich mal für X-Windows Programmierung erwärmt und damals war das “tolle Kind” Motif. Wirklich lange her. Heute browse ich durch alte Quellen und finde die Quellen für das Buch: https://www.oreilly.com/openbook/motif/vol6a/Vol6a.pdf

Und da denk ich mir, probiere es doch mal. Klappt natürlich erst mal nicht, aber Motif-libraries auf den Rechner, make und die Programme werden erstellt und laufen.

Wegen solcher Dinge liebe ich irgendwo C. Es ist eine wirklich einfache Sprache und es gibt nichts, was man an Sicherheit so kennt. (Zugiff auf Felder!) Aber unsere gesamte IT-Infrastruktur wäre ohne C nicht wie sie heute ist. C verändert sich wirklich kaum mehr und das seit mehr als 40 Jahren. Das ist eine der Konstanten in der Programmierwelt.

Man kann C zügig lernen, es aber zu können, wird wohl kaum je jemand zu 100 % von sich behaupten… Es sind wahrscheinlich die meistgetesteten Compiler auf dieser Erde und wie man sehen kann, selbst Quellcode von vor 30 Jahren kann man heute noch ohne Aufwand zum Laufen bekommen.

Versuchen Sie das mal mit einem Uralt Java Programm, einem Python Programm oder irgendeiner anderen Programmiersprache außer vielleicht Fortran, vielleicht Common Lisp, vielleicht MIT-Scheme und anderen “Exoten”.

Ein Gegenbeispiel: Meine Diplomarbeit habe ich in Eiffel geschrieben, glauben Sie ja nicht, ich könnte das Programm heute ohne Änderungen zum Laufen bringen, das können Sie “vergessen”. Ich wollte mir aus Jux-und Dollerei mal die Quellen vornehmen und für heute lauffähig machen, aber wirklich weit gekommen bin ich noch nicht. Ich denke 1-2 Wochen Arbeit müsste ich schon rein stecken

Und da kommen die Quellen von O’Reilly daher (so um die 30 Jahre alt) , ich installiere die Bibliotheken und tippe dann nur “make” und dass compiliert und läuft. Quellen die, an die 30 Jahre, alt sind!

So was kann mich tatsächlich begeistern. Es gilt natürlich nicht für alle C Programme. So werden sie sich schwarz ärgern wenn Sie noch GTK1 Kram haben sollten…, man kann es noch mit den alten libraries hinbekommen aber es einfach so auf GTK2 oder gar 3 umzustellen – vergessen Sie es.

Man kann in C extrem langlebig programmieren. Das können im ganzen Programmiersprachen-Urwald nur die wenigsten. Es muß alles immer “toller” besser sein aber wehe es soll “bleiben”. Wenn Sie wirklich was für die Nachwelt programmieren wollten, dann müssen Sie C beachten.