4 ms·
Just because you disagree with it doesn't mean it's worthless advice. I always have a fond flutter whenever I see Ruby (which I used to write, and really enjoy
by rattray 4y ago
Just because you disagree with it doesn't mean it's worthless advice.
I always have a fond flutter whenever I see Ruby (which I used to write, and really enjoyed) but absolutely wouldn't start a new project with it, for practical reasons. It's slow, it can turn into a big ball of mud as applications scale (there's no named imports for crying out loud, everything is just in a global namespace with side-effects everwyhere), etc.
Certainly there are still people/projects where, upon consideration, Ruby is still the best choice (eg; small Rails shop has a standard CRUD app to build quickly that will not likely ever scale to be huge). But you should still _consider_ not using Ruby.
- aantix 4y ago“Shopify's core monolith has over 2.8 million lines of Ruby code and 500,000 commits.”
- endgame 4y agoAnd they had to become PLT experts to build the tool that let them tame that.
- gnufied 4y agoIn fairness all major companies which use a Language extensively tend to invest in all aspects of its well being. Facebook did with PHP, Google hired Guido (and bunch of other python maintainers) and now go. If your business depends on having a well maintained platform, then it makes sense to invest in it. Shopify should be commended for investing in Ruby. As a former contributor to Rails and Ruby ecosystem in general - IMO I would still choose Ruby for certain kind of work. I write Go mostly these days and parsing random JSON for example is major PITA (so it would be in many other static languages).
- rattray 4y agoMinor nit, if you're thinking of Sorbet, that was Stripe (but Shopify has done a lot of great work on Ruby things too, incl Sorbet stuff). Disclaimer, former Stripe employee.
- endgame 4y agoThanks, I had indeed got my S-companies confused. I must've been thinking of Shopify's nix work, and put them in a mental bucket of "does advanced stuff".
- h3mb3 4y agoWhat is PLT referring to?
- methyl 4y agoprogramming language theory
- Zababa 4y agoAnother way to put it would be that Ruby is so productive for the average developer at Shopify that they can afford to pay PLT experts to work on the tooling.
- rattray 4y agoThat doesn't mean it's without downsides or that they'd make the same choice today, with the options we have available now. For example, they probably spend an absolute fortune on cloud costs, especially CI. Node, Go, Kotlin, Elixir or maybe even async+jit'd Python might all be 2-10x cheaper to run. But I bet there are other choices that would have been worse. I often enjoyed working with Ruby at Stripe, especially once Sorbet came along.
- notsureaboutpg 4y ago
- lbrito 4y agoIn my experience all those cons are mostly just your company/team not knowing how to program in Ruby.
- white_dragon88 4y agoHow does a team not know how to code in Ruby? Doesn’t ergonomics matter?
- lbrito 4y ago>How does a team not know how to code in Ruby? No one is born knowing how to program. >Doesn’t ergonomics matter? It does and Ruby does a good job with it. It is not a hard language to learn. See my response to sibling comment.
- norman784 4y agoI read this argument lot from C/C++ devs in rust discussions, they just say that you are not a good developer and they never will do any mistake, but idk, I don't mind being a dumb developer, I like to have an app that I know works, even if you are a pro and you never do a mistake, your team surely will do, it put more burden in the devs, while there are tools that can make you life easier. Then after that if you still choose ruby over a language that gives you more guarantees and safety then is your choice.
- lbrito 4y agoThat's not the same argument at all. "know language X" != "be smart". I am specifically calling out people that _don't know Ruby_ and complain about the language being this or that, when really their frustrations come from them being inexperienced in the language. It is like never having used a hammer, gripping it close by the head, and complaining that it takes a lot of effort to nail things. Blame's not on the hammer, bud. This might happen with every language. I don't know. I'm a Ruby developer and have seen this countless times. Also, none of this equates to saying that ruby is perfect. It is not.
- rattray 4y ago
- matheusmoreira 4y ago> there's no named imports for crying out loud, everything is just in a global namespace with side-effects everwyhere Yeah, this is a significant flaw. I with it had a simple module system like Javascript's require function which just returns a normal object containing functions and data.