Schlagwort-Archive: Programmiersprachen

Ich möchte gerne ein paar Stäbe brechen

Für in meinen Augen wunderbare Programmiersprachen, die leider kaum bekannt und benutzt werden. Libraries machen den Nutzen von allen Sprachen aus. Egal, wie schön eine Sprache ist, ohne Libraries ist sie leider nutzlos. Hier also ein paar Vorschläge
1) Common Lisp. Eine der derzeit am stärksten unterschätzten Sprache in den 80-er Jahren des letzten Jahrtausends gab es ganze Betriebssysteme, die in eine Lisp Dialekt geschrieben wurde. Das Emacs Lisp begleitet uns nun seit mehr als 30 Jahren, ein Ende ist nicht absehbar. Schemes gibt es sehr viele und auch noch ein paar andere weniger bekannte Lisps. Wenn Sie Glück und Können haben, bekommen die dieses BS auf Linux zum Laufen

https://archives.loomcom.com/genera/genera-install.html

Downloads / Homepages: https://www.sbcl.org/ http://www.lispworks.com, http://www.franz.com, https://franz.com/
2) Smalltalk. Eine der ersten Durch- und Durch Sprachen auf der Basis von Objekten. Heute immer noch unerreicht. Leider fast vollkommen vergessen im Lichte von Nachfolgern wie Python, C#, Java, JavaScript, C++. Smalltalk teilt mit Common Lisp die Eigenschaft, eine programmierbare Programmiersprache zu sein. Es gibt wenige andere Sprachen, mit denen man die Sprache selber so erweitern kann. So kann man z.B. neue Schleifenarten ohne Probleme zu diesen Sprachen hinzufügen.

Downloads: https://pharo.org/, https://squeak.org/, https://www.instantiations.com/,
https://www.gnu.org/software/smalltalk/

Die “Schwäche” der beiden Sprachen aus Sicht von vielen sind fehlende statische Typen. Interessanterweise teilen sie das mit Python, was derzeit aber eine der am meistgebrauchten Programmiersprachen ist

3) Io . Ich bezweifele, daß es mehr als 1000 aktive Benutzer gibt. Die Einfachheit dieser Sprache ist besser als bei Smalltalk. Hier können Sie es sich anschauen: https://iolanguage.org/
Mehr gibt es nicht. Hier eine Idee wie es aussehen kann:

 cc := method(System getEnvironmentVariable("CC") ifNilEval(return "cc"))
    cxx := method(System getEnvironmentVariable("CXX") ifNilEval(return "g++"))
    ccOutFlag := "-o "
    linkdll := cc
    linkDirPathFlag := "-L"
    linkLibFlag := "-l"
    linkLibSuffix := ""
    linkOutFlag := "-o "
    linkLibSuffix := ""
    ar := method(System getEnvironmentVariable("AR") ifNilEval(return "ar"))
    arFlags := "rcu "
    ranlib := method(System getEnvironmentVariable("RANLIB") ifNilEval(return "ranlib"))


includes = includes appendSeq(headerSearchPaths) map(v, "-I" .. v)

 iocFiles := sourceFiles select(f, f name beginsWithSeq("Io") and(f name endsWithSeq(".c")) and(f name containsSeq("Init") not) and(f name containsSeq("_") not))

Es ist sehr im Smalltalk Sinn gehalten. Object message ist der Weg. Es gibt keine speziellen Klassen. Alles kann eine Klasse sein, aber alles ist ein Objekt. M.E. ist die Implementierung eine der besten (im Sinne von lesbarsten) , die ich bisher fand.

Vielleicht stelle ich auch noch ein paar andere Sprachen vor, die mich auf die eine oder andere Weise beeindruckten….

Auch beruflich für mich interessant

Für mich interessant zu lesen: http://floooh.github.io/2018/06/02/one-year-of-c.html

C habe ich schon eine ganze Menge geschrieben, C++ nur testweise verwendet. Ich bin relativ einseitig gegen mir bekannte 2 Programmiersprachen eingestellt. 1) C++ und 2) Perl.

Heute schreibe ich meine Software in so Sachen wie VBA und W-Language. Es hat alles seine Vor/Nachteile. Intensiv benutzt habe ich dbase, Modula-2, Pascal, Eiffel, Ruby, Emacs Lisp, Common Lisp, Smalltalk. Zurecht finden tue ich mich leidlich in bestimmt 10 – 15 anderen Programmiersprachen. (Python, Tcl/Tk/ , Scheme, Shells, C#, Java, JavaScript, D, Dylan, Sather, Haskell, Ocaml, Erlang, Prolog) (kennt wahrscheinlich keiner mehr) Ich denke in allen Prozedural / OO orientierten Sprachen fände ich mich passabel schnell zurecht)

Womit ich keine Erfahrungen habe sind Sprachen wie APL, J+ (heißt es glaub ich) .

Schwierig zu sagen was ich heute am liebsten benutzte. Ich bin inzwischen ein ziemlicher Verfechter von Programmiersprachen, die sich Abwärtskompatibel zeigen. Ich finde es gibt (fast) nichts Schlimmeres als wenn man ein funktionierendes Programm umschreiben muß, weil sich die zugrundeliegende Programmiersprache ändert. Auch Bibliotheken wie GTK nerven mich wenn, man denn meint alles auf den Kopf stellen zu müssen. Daher bin ich heute ganz klar ein Fan von
– C
– Common Lisp
– Smalltalk

Diese Sprachen sind stabil und gerade C ist m.E. einfach unverzichtbar. Jede der oben genannten Sprachen bietet eine mehr oder minder leicht zu bedienende Schnittstelle nach C. Wenn Englisch die wichtigste Handelssprache ist, hat diese Stellung in der Programmierwelt sicherlich C inne.

Kurz egal, was man sonst lernt und benutzt. C sollte man unbedingt auch können – YMMV klar….