gokr
Joined 12 years ago
Joined 12 years ago
Now, Ian has done truly brilliant VM JIT work in the Smalltalk community and I suspect that Ian did a lot of the DSL related stuff in STEPS, like the TCPIP stack etc.
So this is not just some "random folks" :) and.. some of the most brilliant work comes when you are really not sure where you are going. The original Smalltalk work that gave us OOP and modern GUIs came from Alan's life long task of making computers usable by children in order to amplify education. Most would argue we are still struggling with that task ;) but at least we got a lot of other things out of it!
Sure, reactive frameworks in js that mainly operate on the DOM/HTML/CSS stack may be very little OO, but Swift/Dart/Kotlin are OOP languages and Flutter for example, while using a reactive model, is still 100% OOP with Widget classes in a composition and so on.
AFAIK OOP languages are still ruling the whole GUI space, which is reasonable since GUI was the main driving force behind it (see history of Smalltalk) and the domain is such an obvious candidate for composition of separate independent elements. What languages are primarily used for GUIs today? Java, C#, Swift, ObjC, C++, Dart, Kotlin ... and the list can probably be made much longer.
On the web ... well.
http://goran.krampe.se/2009/06/26/joe-is-wrong/
...and then I met Joe not long after and we also discussed this in fact. He then told me that he felt my article was fair (!) and that he had *changed his opinion on OO since writing that article*.
IIRC his exact words were something along the lines of "I did not understand OO when I wrote that article". Now... he also argued Erlang is in fact VERY OO, and in some ways he is correct, since its very focused around autonomous "parts" communicating solely via messages.
Finally, I haven't read all 162 comments here - but OO is not "bad" nor "the holy graal". There are different ways of doing programming, and its as simple as that. I can find joy in simple imperative coding as much as I can long for the days I was working in pure OO in Smalltalk. :)
The Smalltalk keyword syntax is a simple preprocessing in the parser so that `a at: 3 put: 5` turns into the AST of `a at:put: 3 5`. And yes, it's homoiconic.
https://github.com/xyz32/boneIO
...and a while back I played too with:
https://github.com/gokr/ardunimo
Nim is quite perfect for these things since it compiles via C/C++ which makes it go anywhere.
https://www.piumarta.com/software/cola/