For me it came down to accessibility. Getting into Sonic Pi was easy compared to other environments.
Documentation. When I was starting out I looked at a lot of different environments (or instruments), and they all suffered from having very little (if any) documentation. Sonic Pi’s documentation is absolutely stellar, and not just compared with other Open Source programs (it’s a common problem in my perception that Open Source software is poorly documented). I have been using Sonic Pi for a year now, and I have run into one thing which wasn’t documented.
Readability. Sonic Pi (and ruby in general) is semantically very easy to understand. You can read a lot of the code out loud and understand what is going on. As I’ve progressed as a musician my code has become more compact, but I can still explain what’s going on to someone with no programming experience.
Potential for growth. The real beauty of Sonic Pi is that it embraces both the beginner and the master. It’s accessible enough that the beginner can make something catchy with a few hours of practice. But it also grows with you as you get better at using it as an instrument. Consider the code below. This is how I as a beginner would write a drum kit
live_loop :kick do
live_loop :snare do
live_loop :hats do
Here’s how I write it now, after a year of practice
live_loop :drums do
sample :drum_bass_hard if (spread 4,16).look
sample :drum_snare_hard if (spread 2,16).rotate(4).look
sample :drum_cymbal_hard if (spread 8,16).look
They sound the same, but the latter is much faster to type out, and the structure works for everything which is loop-based. I’ve become better at playing the instrument, and the instrument rewards me for it. It’s accessible without a skill ceiling, and that’s the main selling point in my opinion