Lese gerade durch init.el von Doom Emacs und was sehen meine überraschten Augen?
„php ; perl’s insecure younger brother
„
That is a nice pun
Lese gerade durch init.el von Doom Emacs und was sehen meine überraschten Augen?
„php ; perl’s insecure younger brother
„
That is a nice pun
Hier ist nichts davon zu merken:
https://www.danisch.de/blog/2024/07/19/weltweiter-serverausfall/#more-64644
Meine Server laufen alle weiter, auch mein Arbeitsplatzrechner funktioniert. Bin seit mehr als 30 Jahren Linux Benutzer …
Weil es mir gestern wieder so extrem auffiel.
Ein bisschen Vorgeschichte und klarzumachen, woher ich komme.
Ich persönlich finde Smalltalk ist eine der besten Programmiersprachen überhaupt:
Siehe: https://de.wikipedia.org/wiki/Smalltalk_(Programmiersprache)
https://www.youtube.com/results?search_query=smalltalk+programming
Es ist eine der einfachsten Sprachen, die es im ganzen Multiversum der Programmiersprachen gibt. Kennzeichen ist, zuerst kommt ein Objekt und dann eine Methode für das Objekt. Wer sich damit befassen möchte, es gibt freie Smalltalkversionen zum Herunterladen (ohne Anspruch an Vollständigkeit)
– GNU Smalltalk https://www.gnu.org/software/smalltalk/
– Pharo Smalltalk https://pharo.org/
– squeak https://squeak.org/
– smalltalk/x https://www.exept.de/produkte/smalltalk-x.html
– Dolphin Smalltalk https://github.com/dolphinsmalltalk/Dolphin (meine Empfehlung wenn man auf/in Windows programmieren möchte.
Kommerzielle Anbieter
VASTSmalltalk, Visual Works
Und genau hierauf möchte ich mich beziehen:
Preise für VASTSmalltalk: https://www.instantiations.com/vast-platform/pricing/‚
Bei VisualWorks ist es ein Prozentanteil am Umsatz, den man mit einer in Smalltalk entwickelten Lösung macht.
Der Preise ist – leider – atemberaubend hoch über 4500 USD ! und nun ja, wenn man die aktuelle Version haben will, soll man das jedes Jahr bezahlen. Egal, wie man es dreht oder wendet, der Preis ist enorm hoch. Ist er es wert? Wohl nur dann, wenn man schon zig hunderttausende Methoden, Klassen etc in diese Sprache geschrieben hat, also ein Produkt hat, was man nicht mehr „trivial“ nennen kann. Ich selbst hatte geplant mehr damit zu machen, aber im Endeffekt ist es nie dazu gekommen, der Grund ist einfach, es gibt Alternativen, die günstiger und für mich passender sind, als da wären C#, F#, Java, MS VBA, Wlanguage.
Ein bisschen Geschichte, einst war Turbo Pascal, der Weg, den man ging, wenn man Windows Programmierung wollte: https://de.wikipedia.org/wiki/Turbo_Pascal
Preise: https://bernd-leitenberger.de/turbo-pascal-history.shtml, irgendwo um 50 – 100 USD, und man bekam eine funktionale IDE. Die heutigen Preise: https://www.embarcadero.com/app-development-tools-store/delphi
Oder auch bei einer anderen PS, die ich schätze (Common Lisp), hier die Preise dafür:
https://www.lispworks.com/buy/prices-2c.html
Diese Sachen konnten manchmal nur in einem OS eingesetzt werden, aber z.B. VASTStmalltalk läuft auf Windows, Linux, Max, nur das tun schon lange auch Sachen wie Java und C#. Speziell Java hat sich als PS der Wahl für Firmen etabliert. Es gibt eine Riesenmenge an kommerziellen und freien Bibliotheken und gute bis sehr gute kostenlose IDEs und dann auch so etwas: https://www.jetbrains.com/store/?section=personal&billing=yearly
Sie bekommen Dinge in diesen IDE, die in Smalltalk, TurboPascal zu finden waren zum Bruchteil der Preise. Und Java wurde und wird Smalltalk immer ähnlicher. Dinge, die dort „Standard“ waren, werden es mehr und mehr auch in Java.
Alternative IDES Eclipse, VisualStudio, Netbeans.
Die Unterstützung bei der Programmierung kann man nur noch phänomenal nenne. Mit einer Software, die ein Viertel des Preises für die Smalltalk Lösung ausmacht und viel mehr Libraries, die man direkt nutzen kann.
Ich verstehe die Preise für Delphi, VASTSmallallk oder auch LispWorks, man hat eben nur eine begrenzte Anzahl an Kunden, aber alle Kosten, die man eben so für das Anbieten einer IDE hat. Auf einen Smalltalk-Programmierer kommen vielleicht 1000 – 2000 Java Entwickler, wie viel mehr Code können die schreiben und auf, wie viel mehr Leute Kosten verteilen?
Und dann gibt es eben so Dinge wie Python, JavaScript etc. Auch dort Millionen an mehr Programmierern, mit einer entsprechend schnell wachsenden Code-Basis. Damit könne Smalltalk und CommonLisp Anbieter nicht konkurrieren. Und somit gehe ich davon aus, daß diese Firmen eher pleitegehen als Andere. Man braucht eine breite Basis an Nutzern, um eben eine breite Basis an Angeboten zu haben und die müssen preiswert sein. Das mehr an Produktivität durch Smalltalk oder Common Lisp, existiert – noch!
Ich selbst kaufe mir alle paar Jahre eine ehemalige MSDN Lizenz (die kostet rund 1200 € / Jahr) damit bekomme ich aber a) Zugriff auf eine IDE b) mehrere Datenbanken, c) Office Pakete d) .NET Infrastruktur, e) Compiler für C/C++/C#/F#.
Weiterhin kaufe ich regelmäßig Produkte von Intellij (die IDES sind alle ähnlich aufgebaut und die kann ich einsetzen für C/C++/C#/F#,PHP, Python, Scala, Kotlin, Grovy, Ruby auf Windows, Linux, Mac OS X.
Meine Schmerzgrenze für VASTSmalltalk dürfte so um die 1000 € liegen, aber ich soll das fünffache bezahlen. Ich gehe davon aus, daß es viele auch so sehen und damit rechne ich mir immer weniger eine Zukunft damit aus.
Zur Entwicklung: Man sieht es bei Python, Java, C#, die Kosten für deren Anwendung sind stetig am Fallen, das zieht mehr Entwickler an und einmal hat es zumindest ein Manager auf die Reihe bekommen: https://www.youtube.com/watch?v=Vhh_GeBPOhs
Wenn man das vergisst, ist ein Untergehen nicht vermeidbar. VASTSmallalk kann man zumindest für die GUI-entwicklung, Reports und ähnlichem brauchen, nur in Vergleich mit dem, was ich hauptsächlich nutze (MSAccess, WinDev (siehe: https://windev.com/), dann liegt das Smalltalk weit dahinter. Und der Preise für Windev und Konsorten macht gerade 1000 € im Jahr aus. Ich habe mehr von dem, was ich brauche und kann auch einfacher auf anderes zugreifen, wieder – leider – ein Grund weniger Smalltalk zu benutzen.
Ich bin nun mehr als 30 Jahre dabei, ich habe das Kommen und Vergehen von Dingen erlebt und ich lerne immer noch dazu. Es zeigen sich aber immer wieder ein paar Basisdinge und prominent sticht der Preise hervor. Für das, was sie anbieten, sind die Smalltalk Anbieter im Vergleich nicht konkurrenzfähig.
wieder einmal positiv überrascht.
Weil ich ein wenig durch die Welt „gebrowsed“ habe, bin ich bei Lua hängengeblieben. (https://www.lua.org/) Erst einmal die Seite, klein, sauber und informativ. Und sofort zu lesen, das war schon top. Die Installation lief genauso wie auf der Seite beschrieben und das Ergebnis, das lua Programm ist nur 308 KByte groß. Nur zum Vergleich, der Python Interpreter ist 5,2 MB groß. (php8.2 5,5M) Ich habe nur einen Interpreter (io: https://iolanguage.org/) der kleiner ist. Dann werfe ich einen Blick in den Code und der sieht nach einem wunderbaren C aus. Die Compilation nimmt nur Augenblicke in Anspruch und der Quellcode mit Kommentaren ist gerade mal 25 000 Zeilen, beeindruckend wenig.
Ich habe noch keinen Deut darin programmiert, aber die Daten finde ich erstaunlich, die Seiten erfreulich, die ganze Software so unglaublich klein. Was für eine Leistung.
To give it a try. I’m trying to compile node on my own machine.
I’m sure it’s the largest thing I ever tried to compile. I’m very curious about how that’ll work. The size of it is unbelievable, alone on disk we’re talking about > 3GB.
And someone must have compiled it before, and someone must work on it. What an achievement for the compiler developers to get such a thing compiled and running.
Well, it has worked, a few hours‘ compilation time. It’s ridiculous
Ich denke nicht, daß es damit zusammenhängt, daß ich selbst Programmierer bin. Ich ärgere mich immer wieder über Kommentare, wenn Software Geld kostet. Hier ein Beispiel:
Ich programmiere auf mehreren Systemen und ich möchte wirklich gute IDES haben. Auf Windows habe ich auch Lizenzen für MS Visual Studio auch das funktioniert. Ich kann auch eclipse (https://www.eclipse.org/) oder netbeans https://netbeans.apache.org/front/main/index.html nehmen, oder auch meinen recht beliebten Emacs nehmen.
Nur wo bekomme ich einen brauchbaren GUI-Builder ? Und funktioniert Visual Studio auf Linux? Eclipse kann man sicher mit Java benutzen, auch mit C, vielleicht auch mit C#, die Basis der JetBrains IDEs ist aber relativ gleich und es läuft auf Linux, Windows …
Für all das muss ich eigentlich nur einmal ca 700 € bezahlen, nur wenn ich weiter Update möchte eben öfter. Was habe ich alles für IDE zur Verfügung für so gut wie jede populäre Programmiersprache C/C++/C#/Java/PHP/Python/Ruby …. mit weitgehend ähnlicher Oberfläche. Es ist ein Werkzeug für einen Programmierer, und es wäre so als ob es für einen Handwerker auch Werkzeuge ohne Bezahlung gibt. Gibt es aber nicht. Also warum soll es für Programmierer anders sein?
but I have to defend Microsoft. I really do use their products daily, and I’m a developer.
So I need access to development tools, and they cost me around 1300 € / year. And that is a very reasonable price for what they provide. I understand the prices for IDES to some extent, but I feel some are really far too expensive.
Examples Delphi: https://www.software-express.de/hersteller/embarcadero/delphi/
Instantiations VASmalltalk https://www.instantiations.com/vast-platform/pricing/
The prices for Windev are decent, but the support is so bad, that I consider dropping it:
https://windev.com/pcsoft/order-online.php
Even if it works quite nicely Lispworks is expensive too: (you do not have a large library base you can use for it): https://www.lispworks.com/buy/prices-1c.html
So I really spend a lot of money on development tools but to be honest, the best price/quality is delivered from Microsoft.
Yeah, I guess you can get something cheaper on Linux, but I can’t really tell how it compares to the MS Ecosystem. Maybe Java is a really mighty contender, but I can’t tell.
Quite interesting and intriguing, see e.g.
Wahrscheinich überrascht es keinen, wenn ich schreibe, damit verbringe ich einen Teill meines Lebens. Mich haben Programmiersprachen schon immer interessiert und ich habe wirklich einiges auf mich genommen um in bestimmten davon arbeiten zu können. Zu meiner Zeit an der Uni war es die Möglichkeit eiffel zu benutzen.
https://de.wikipedia.org/wiki/Eiffel_(Programmiersprache)
Die Idee dahinter scheint mir heute noch eine der wirkich besseren zu sein. Es gibt dort ein Prinzip, nennt sich CQS (command query separation) und es meint. Das nur Methoden den Zustand eines Objektes ändern sollte, es in Abfragen aber nicht vorkommt.
Beispiel set_x(some_Value) enthält nur x := someValue
Aber get_x():someValue enthält nur result := x
Bei dem einen ändert man den Zustand einer Variiablen bei der anderen darf/sollte man es nicht.
C Programmierer kennen das Problem mit Rückgabewerten. Wo packt man den/die hin? In C gibt es kein „Tupel“ Konzept und man kann nur einen Wert zurückgeben, dieser eine Wert kann aber auch ein void* sein und das kann wirklich alles sein. Auf der anderen Seite, wie informiert man den Benutzer, daß etwas schief gegangen ist. Das wird in sehr vielen Bibliotheken eben über den Rückgabewert erledigt. Darum findet man in C so etwas
#define ERROR_SUCCESS 0
#define ERROR_WHATEVER 1
Vielleicht in angenehmeren Code in einem enum. Der Rückgabewert gibt also an ob alles „glatt“ ging oder nicht, damit ist dannn aber der Rückgabewert „weg“ und man muß sich mit globalen Variablen oder veränderbaren Parmetern behelfen.
Hier zwei Lösungen aus anderen Programmiersprachen:
https://doc.rust-lang.org/book/ch09-00-error-handling.html
https://go.dev/doc/tutorial/handle-errors
In Smalltalks gibt es nur Messages die etwas zurückgeben…
Aber nun kommen wir zu Programmiersprachen, die Seiteneffekte gar nicht leiden können und nur auf „pure“ Funktionen setzen. Das bedeutet, wenn man diese aufruft ergeben die mit denselben Eingabedaten immer, diegleichen Ergebnisse. Die „dreckige“ Arbeit von Seiteneffekten muß speziell gekennzeichnet werden. Prominentestes Beispiel dürfte Haskell sein (dazu eines der besten Bücher, was man auch online finden kann http://book.realworldhaskell.org/read/)
In jedem Buch wird die „Reinheit“ der Sprache gelobt, handelt es sich um eine „unreine“ Methode also mit Seiteneffekten wird es immer irgendei IO type werden, das nennen die Monad.
Nun, die Autoren behaupten es sei der größte Vorteil. Ich stimme soweit durchaus mit ihnen überein, aber ich behaupte auch es ist der größte Nachteil, damit stimme ich als nicht mit Ihnen überein.
Ich bin immer mehr zur Überzeugung gekommen, daß der ausbleibende Erfolg von funktionalen Sprachen damit zusammenghängt. Es sieht so aus als ob Zustand – Zustandsänderung -> neuer Zustand für wirklich die allermeisten Programmierer einfacher verständlich ist und dem normalen Denkmodell entspricht. Was man uns nicht verdenken kann. Sitzen Sie in einem Auto und wollen los fahren, müssen Sie etwas tun. Einen Gang einlegen, Kupplung kommen lassen und entsprechend Gas geben, dann fährt ein Auto eben los, der Zustand ändert sich von stehendem Auto -> fahrendem Auto.
Ich denke auch, daß eben Zustandveränderungen genau das sind was man in allen anderen Bereichen macht. Dieses hinter einem Monad zu verstecken, scheint für mich einer der Hauptgründe zu sein, warum man Funktionale Programmiersprachen nicht in größeren Bereichen kennt. Betrachtet man unsere gesamte Infrastruktur, dann wird man eher früher als später auf C treffen. Trotz aller Probleme damit, trotz der problematischen nebenläufigen Programmierung. So gut wie alle Betriebsysteme benutzen C als Basis und es gilt selbstredend speziell auch für jedes Unix, heiße es LInux, BSD, Solaris, HP-UX, AIX. So gut wie jeder relationale Datenbank ist in C geschrieben und manche davon werden tatsächlich milliardenfach benutzt (z.B. sqlite)
Ich persönlich kenne wirklich kein Programm, welches ich täglich benutze, daß in einer funktionalen Sprachhe implementiert wurde. Man kann behaupten, das derzeitige vorherrschende Programmiermodel basiert auf Klassen, Objekten und Messages.
Ja, es ziehen funktionale Elemente in OO-Sprachen ein, aber Blöcke sind in Smalltalk ein uraltes Konzept! Kurz die neuen PS müssen sich an einer der ältesten noch benutzen PS anlehnen. Das finde ich höchst interessant und erklärt vielleicht zu einem Teil warum ich Smalltalk für eine der besten Programmiersprachen halte.
but I like it anyway:
https://www.joelonsoftware.com/
Yes it’s about my choosen profession ….