5 ms·
I used to hate Ruby. Last year I spent 10 months alone on a Rails app. I decided to buy in. Do things the Ruby/Rails way. Read books on how to think about OO i
by ncphillips 3y ago
I used to hate Ruby.
Last year I spent 10 months alone on a Rails app. I decided to buy in. Do things the Ruby/Rails way. Read books on how to think about OO in Ruby. TDD everything.
I can’t quite say what changed. But now Ruby is my favourite language.
It is almost encourages you to write clean code but it doesn’t force you to. It lets you make mistakes. It treats you like a grown up.
TS, Java, etc. They treat you like a child who can’t be trusted to do things right.
Yes, this means you can end up with some horrifying god awful Ruby code. But it also means you can end up with some truly beautiful abstractions.
I think the very things that prevent you from creating unmaintainable messes are the things that prevent you from writing incredible pieces of software.
That’s probably why they miss Ruby
- bilekas 3y ago> I think the very things that prevent you from creating unmaintainable messes are the things that prevent you from writing incredible pieces of software. I actually can't argue with that. Thanks for a great brief breakdown.
- jjnoakes 3y agoI don't mean to pick on your comment specifically, but I really dislike the notion that someone who appreciates, prefers, or relies on static types and a more strict compiler or toolchain is somehow not a grown-up. [Edit]: Added a missing word
- stouset 3y agoI don’t know that that’s GP’s assertion at all. I feel similarly re: Java and Ruby. But I also love Rust which relies on static types and one of the strictest compilers in existence. But there’s something I can’t quite put my finger on where—yeah—Java and Golang (in my mind) force me into a boxed-in world where I’m not trusted to make good decisions about abstractions, but Rust and Ruby encourage me to do so.
- ncphillips 3y agoYeah I totally get that. Not really the best framing. A slightly better framing is they languages within stricter static types put up guardrails. They’re meant to keep you safe. Sometimes they also make it hard for you from going where you want to go. Don’t get me wrong i like static languages too. TS is one of my favourites. My time with Java was good. Just trying to give a different perspective on Ruby
- usefulcat 3y agoWhether you ‘are a grown up’ is a completely separate thing from whether you are being treated like a grown up.
- RangerScience 3y agoThis is 100% me
- VagueMag 3y agoAny chance I could ask for books you found especially useful in Ruby buy-in?
- ncphillips 3y agoSandi Metz and Avdi Grimm are the people I mostly read. Practical Object Oriented Design in Ruby by Sandi. She has a lot of great talks on YouTube as well.
- lolinder 3y ago> TS, Java, etc. They treat you like a child who can’t be trusted to do things right. This is totally Java, but TypeScript? Practically every error can be turned off in the config or in a comment, and the type system is a veritable arsenal of powerful footguns.