Yukihiro Matsumoto: “Ruby is designed for humans, not machines”
Strange takeaway in the title.<p>Mine are:<p>- He regrets introducing threads. He now prefers other parallelism&#x2F;concurrency paradigms and is possibly looking into introducing them in Ruby 3 (that part wasn&#x27;t clear in the interview).<p>- He regrets adding global variables.<p>- He regrets not focusing on immutability primitives earlier.<p>- He and the maintainers team look at Python, JavaScript and Elixir for inspiration.<p>- He seems a bit disappointed that Ruby is mostly used for web development only and would be happy if it was used in research and AI.<p>- He regrets not investing even a little effort in static typing earlier but is now working on an optional typing system where you choose to describe types in a separate file. (Reminds me of C&#x2F;C++ and OCaml header files.)<p>I hope I’m not subconsciously emulating a sensationalistic journalist here but it doesn’t seem he’s very pleased with the current state of affairs. A lot of changes, indeed inspired from other languages, seem to be on their way to Ruby 3.<p>---<p>I’m pretty indifferent to Ruby these days. I’ve worked 6 years with Rails to a moderate financial success back then but the problems were obvious almost from the start: too much magic and implied behaviour, too much global stuff changing below your feet, way too slow DB layer (it’s known that your DB will respond in 2ms and ActiveRecord will proceed to waste 100+ ms on serialisation before and after), managing bigger projects becomes huge pain, and a number of others.<p>People just keep buying the promise of “but you get to make an MVP really quickly!”. Yeah well, but I want to maintain it past that stage too.<p>Where I was doing with this is: Ruby is a very okay language and is very nice for sketching. It&#x27;s readable, has libraries for a ton of stuff, and performs alright (especially without Rails). But I never found good use of it outside of small projects. Any serious business work becomes very painful to maintain and stay on top of for bigger projects. I’m aware there are practices that make it possible (Basecamp is a huge inspiration!) but I personally found them only half-working.<p>YMMV, of course.