Len/Mathematics: A computational algebra system in Smalltalk
github.com
github.com
Still, all this leaves me wondering, as someone who learned programming via "traditional", i.e. compiled, languages - wondering whether being "born" into this "alternate universe" could have some kind "crippling" effect on the ability to live in a "normal" universe (say, as a professional programmer, etc).
I made a post under eggy's comment that kind of touched on this, but I don't think Smalltalk (Pharo, at least) is particularly discoverable. It seems like a highly bureaucratic language when it comes to making new classes or adding methods to an existing class, and in many cases I poked around and never really found what I was supposed to do. From what I've seen, Smalltalk is highly inspectable, but no more discoverable than any other language.
Shortest path between my ideas and a running implementation = Pharo.
Ok, took me a couple years to become decent enough for my needs but this is one of the best decisions I ever made.
This is the comparative advantage of Smalltalk
Not at all. Smalltalk was the first language I really mastered and my first true love in programming languages, and I work in it professionally (plus COBOL - yuck!). Most of my personal projects are in Pharo or Dolphin, with bits of Lua, Erlang, FreePascal and Scheme.
[1] https://www.liveedu.tv/christopherwolfram/Every now and then (usually when I see a post on HN about Smalltalk or Pharo in particular) I download a Pharo image and try to get started but never get particularly far. Part of the issue is that the Smalltalk image is huge and it's not obvious how to do anything nontrivial, and another part of the issue is that when I go and seek some kind of introduction so I can learn my way around I find nearly nothing.
The Pharo project has a book that's supposed to be a good introduction, but it seems to skip a lot of info and has outdated screenshots and instructions so sometimes I can't find out what I'm supposed to click on. So I give up until the next time I try.
It's a shame because everything I read about Smalltalk is so appealing, but the actual onboarding experience is too rough for me to actually go through.
I found the difference of the image with the book similar to little exercises to test what I had learned so far.
Also being able to easily introspect the code of what you are interacting with is what makes Smalltalk easily discoverable in my experience.
Disclaimer: I only dabble with Smalltalk every now and then.
Happy Smalltalking! (Just don't do 'true become: false' :) )
Make me think of PolyMath (https://github.com/PolyMathOrg/PolyMath)
Sven