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 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:
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.
>I admit that my slogan "Snap! is Scheme disguised as Scratch" would sort of push in the direction of hygienic macros. But historically we built Snap! more with the idea of Logo disguised as Scratch. It was just when we added lambda that we started thinking more in Scheme terms.
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.
> 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.