7 ms·
I'm genuinely curious, why do you miss Ruby, or why would you prefer it overall over TS ? When I was playing around with ruby for any significant sized project
by bilekas 4y ago
I'm genuinely curious, why do you miss Ruby, or why would you prefer it overall over TS ?
When I was playing around with ruby for any significant sized projects, I found it became unmaintainable. Granted I was most definitely using it wrong, but apart from that, I didn't see the appeal.
- izietto 4y agoMy two cents: 1. 2. 3. 4. 5. standard library 6. consistency with OOP * 7. "everything is English language". I find good Ruby readable just like books ** * Ruby is the best translation of "everything is an object" imho ** evil Ruby is the Perl side of the moon, but it's easy to ignore it > When I was playing around with ruby for any significant sized projects, I found it became unmaintainable Ruby requires tons of discipline, as it has obscure meta-programming powers that are meant to be used for DSL libraries, while usually Ruby beginners spam them understating their make your codebase unmaintainable.
- stouset 4y agoAgreed. Ruby is the epitome of “with great power comes great responsibility”. I have inarguably written some of the absolutely most elegant solutions of my entire career in it. But without good discipline, experience, and understanding you can absolutely make a horrifying mess of unrivaled proportion. Unfortunately when you work on real world projects where most devs are relatively junior (or otherwise inexperienced with Ruby) or on projects where there have been multiple cooks who didn’t necessarily share the same underlying mindset about the project, you end up with more of the latter than the former. But for small, consistent teams of experienced Ruby engineers? It can be incredible.
- ncphillips 4y agoI 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 4y 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 4y 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 4y 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 4y 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 4y agoWhether you ‘are a grown up’ is a completely separate thing from whether you are being treated like a grown up.
- RangerScience 4y agoThis is 100% me
- 4y ago
- egonschiele 4y agoOne reason is blocks. I wish other languages had blocks. Swift has them, and it means you can write some very readable DSLs. Tbh I'm happy with Typescript, but Ruby was my language of choice for years.