Hacker News new | ask | show | jobs
by Jtsummers 1438 days ago
Smalltalk, my experience has mostly been with the Squeak and Pharo variants. It hits everything on your list, in my opinion.
1 comments

I second this recommendation. Squeak and Pharo are awesome, not limited to text, and have fast virtual machines.
> fast virtual machines

Compared to what? To do what?

Well, compared to popular dynamic languages with similar levels of abstraction, like Python or Ruby. Squeak was just released with SistaV1, so I think the speculative inclining JIT is just around the corner. While using Pharo, I'm used to get code running 2-3 faster than the equivalent in Python.
> popular dynamic languages with similar levels of abstraction

JavaScript?

Man i wish I could really understand pharoh.
The freely available book "Pharo by example" I found good to learn from, a few years ago. Smalltalk is an enormously powerful language but initially it can feel "the wrong way round" like driving on the other side in a foreign country . You can get used to that though, and its worth it. I think in the years since I learned Smalltalk via Pharo, its got a bit bloated with features, so Squeak might also be worth a look for trying out simple things to learn.
Thank you for the advice, I'll look into it.
one of the most annoying things about smalltalk/pharo is that the "marketing" tell you it's simple and the syntax fit in a sheet of paper, yet all the times i tried to try it i had to go through a lot of pharo introductory tutorial before i could even start to type an "hello world".

needless to say I got bored ad moved on.

With any programming language there's a lot of introductory tutorial before we even start to type "hello world".

    ~$ ./visual ./visualnc64.im -nogui -doit "Stdout nextPutAll: 'hello world'; cr. ObjectMemory quit"
hello world

    ~$
— or something like —

    $ cat hello.st
    Stdio stdout 
        nextPutAll: 'hello world'; 
        nextPut: Character lf.!
    SmalltalkImage current snapshot: false andQuit: true!

    $ bin/pharo --headless Pharo10-SNAPSHOT-64bit-502addc.image hello.st
`Transcript show: 'Hello, World'`

Not especially complex syntax. It just doesn't have a lot in common with languages with Algol-like syntax