If you want to work through SICP, you can use MIT Scheme, but another option is to use Racket or DrRacket, with this add-on package: https://docs.racket-lang.org/sicp-manual/

I second the recommmendation, for these two systems with a caveat. MIT Scheme has not been made to run on Apple Silicon, though with a few tricks, the amd64 version is usable on a modern Mac (this will presumably go away once Apple takes away Rosetta2). Racket might therefore be a better choice.

It is possible to use pretty much any decent Scheme system with SICP, but the language has changed since even the Second Edition, so I don't recommend it. That said, once you are working on your own projects, nothing stops you from using a different system, even though you might have to RTFM to see modern equivalents to ancient idioms.

I used to love using Macintosh Common Lisp, which was a glorious Lisp development environment that originally compiled to native 68K code, and had full access to native APIs like QuickTime. On the PowerPC Mac, I used Connectix SpeedDoubler to dynamically translate MCL's compiled 68K code into PowerPC code. It worked surprisingly well, so we didn't have to hold our breath waiting for MCL's native PowerPC port.

https://en.wikipedia.org/wiki/Macintosh_Common_Lisp

Rosetta wasn't a thing yet, so Connectix (who also made the famous QuickCam) filled that gap years earlier.

https://en.wikipedia.org/wiki/Connectix

> Connectix Corporation was a software and hardware company that released innovative products that were either made obsolete as Apple Computer incorporated the ideas into system software, or were sold to other companies once they became popular.

SpeedDoubler and RAMDoubler were great, and actually kinda delivered on their promises. But what I really needed during the reign of System 7 was BootDoubler: software that made every other reboot instantaneous.

I think we should only be recommending MIT Scheme. Everything else has got too much going on and can become distracting, for the purposes of education.

I don't think it is necessary to avoid Racket since "The language #lang sicp provides you with a version of R5RS (the fifth revision of Scheme) changed slightly in order for programs in SICP to run as is." DrScheme is great for this and probably the easiest way to start.

Everything you can do with Scheme you can also do with Snap! with a visual blocks programming user interface. Functional programming, recursion, higher order functions, closures, continuations, macros, metaprogramming, all described by Brian Harvey's curriculum, the Beauty and Joy of Computing:

https://bjc.berkeley.edu/team/snap/

Snap!Con 2025 - Brian Harvey - ACM Karlstrom Award Address

https://www.youtube.com/watch?v=pDK2PE_pkqQ

Brian calls SICP the actual best computer science course ever invented, which is quite a complement from the guy who wrote the second best computer science course ever invented. ;)

He has a lot of interesting thoughs about AI in education.

MIT Scheme is the simplest thing that might work.

Awesome!

I was just about to ask just that question?

Thank you, SM