@faraday said in What's So Hard About Ruby?:
@cobalt That gets to what I was saying about how to learn the entire package, not just the language. Getting an attribute out of a room has very little to do with ruby itself, because the core language knows nothing about MUSH rooms or Database attributes. You'd have a similar challenge with coding in any modern full-stack application, regardless of language.
I'm someone who started from a base knowledge of 'can tweak some formatting stuff in PennMUSH and coded a couple of basic commands in MOO a few decades ago' who has now coded a fair number of Ares plug-ins, including a really, really large one that integrates magic with Ares' FS3 system.
From my perspective, what Faraday says here is true - but when I started, I didn't get enough about how modern code languages worked to even recognize the difference between 'the language' and the Ares framework (for lack of a better word). All I knew was that I didn't really understand where things were stored, how to get to them, how everything fit together, and how to make stuff GO.
It's actually really easy to find great documentation on almost everything in Ruby. Want to manipulate a string? Play around with an array? Do some math? Tons of examples!
Ares is well-documented, too, but the entire CONCEPT that I needed to learn Ares and not just Ruby was one that it took me awhile to wrap my head around. I think sometimes that's where some of the hurdle comes for folks (like me) who have very little coding experience. They GET how all the pieces of a MUSH fit together - but Ares fits them together somewhat differently, and you have to learn that structure, too.
One of my very first questions to Faraday was 'how do I make a command execute other commands?' (something I'd done in MUSH) and she told me 'that's generally a bad idea, use the helper functions instead'.
I don't know that I ever admitted that I had no idea what helper functions WERE, let alone how to use them. Now that I do, I understand why they're a better choice, but that mental leap took me awhile - as did figuring out where those functions lived and how to access them (pro tip: getting a real code editing program and learning a few shortcuts makes this much, much, MUCH easier).
I do think the Ares tutorials are very good (and getting better all the time, as I know Faraday makes adjustments as people find things that confuse them), but there's a bit of a mental shift that I think can be difficult if you're expecting Ares (I'd guess Evennia too, but I've never tried it, so I can't be sure) to function like a MUSH-but-with-different-syntax under the hood. It is-- but it also isn't.
Overall, I found Ares-and-ruby MUCH easier to pick up then PennMUSH. In particular, I find it much easier to learn how to do Big Stuff than I ever did in Penn. I doubt I'd ever have managed this sprawling, integrated, complicated magic system on Penn, because it's clunky and hard to read and there's no version control for when I really screw up and no easy-to-read config files. The leap from 'I can change the formatting on WHO' to 'I can code a new system' was much, much easier.
Also I can't say enough for the Ares discord community at large, who've helped me more than once on problems small and large and been really, really patient with questions of all sorts.