19 comments

[ 1.6 ms ] story [ 51.9 ms ] thread
While I can't comment on this system (but I'm going to have a look at it), a very mature and similar system is gap ( www.gap-system.org, github.com/gap-system/gap ). It uses a custom python-ish language (it actually pre-dates Python by quite a few years, and has some very interesting features in the type system, hence why it uses a custom language)
An interesting "alternate universe", that Smalltalk/Squeak/Cuis is... Open, highly discoverable. Which, in theory, makes it accessible for beginners and those who are not programmers; for kids, who are usually very good at discovering things. Thinking exclusively in terms of "objects" helps: objects are things that (again, in theory) immediately avail themselves to our perception via our senses as well as intuition. Yet, abstract thought is by no means excluded or even hindered - an object's nature can be quite general and abstract (not in a mathematical sense but from the object-oriented design standpoint.)

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).

> Open, highly discoverable

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.

What is highly bureaucratic about going to a system browser and typing away?
Never used a less bureaucratic language. And am using it everyday for business.

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.

>Shortest path between my ideas and a running implementation

This is the comparative advantage of Smalltalk

Never used a less bureaucratic language. And am using it everyday for business.

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.

>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).

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.

I really like the Smalltalk environments, but I have never done anything but play around in them. Don't misunderstand me, play is very important to creativity, yet I have never done a project or lengthy program in Smalltalk. I use Maxima on Android (running on ECL), and Mathematica. Jupyter notebooks are also a great way to do explorations in say Julia or Python, but to this day, Mathematica is my favorite mathematical playground. I know Stephen Wolfram gets called out a lot on HN, but the product is great in my opinion aside from the closed source mathematical routines. I'll try Len out, but it looks like graphics from the 80s compared to the drag-and-drop, code, curated internet resources of Mathematica. Watching Christopher Wolfram code in Mathematica for some fills for the movie 'Arrival' was cool too [1]. In any case, I am glad to see mathematics anywhere I can!

  [1] https://www.liveedu.tv/christopherwolfram/
> I really like the Smalltalk environments, but I have never done anything but play around in them

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.

Len/Mathematics runs on Cuis Smalltalk. Which has the goal of being small and easy to understand and extend. So it should be to your liking.

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.

I'm a fan of Smalltalk, particularly the small Cuis variety. Anyway, you may be interested to know that Pharo either has or had a MOOC about learning and building things with the language. Additionally, there is an updated book I believe, at https://github.com/SquareBracketAssociates/UpdatedPharoByExa.... Some Cuis-oriented tutorials or documentation can be found at https://github.com/Cuis-Smalltalk-Learning/Learning-Cuis.

Happy Smalltalking! (Just don't do 'true become: false' :) )

Next time you try something try it while chatting on Pharo's community on Slack. I'm sure you'll find a very welcoming and helpful community there. You can join here: http://pharo.org/community