4 ms·
>Remember when Twitter was written in Ruby? Ruby is the exception to the rule. Friends don't let friends start new Ruby projects in 2023.
by ramesh31 3y ago
>Remember when Twitter was written in Ruby?
Ruby is the exception to the rule.
Friends don't let friends start new Ruby projects in 2023.
- epolanski 3y agoRuby in 2023 is miles ahead it was 10 years ago.
- pdimitar 3y agoYet it's still super behind tech like Elixir or Golang, which are both faster and give you more compile-time guarantees.
- DoesntMatter22 3y agoBehind how? There are no good web frameworks for Golang at all, and relatively few sites being built with it. Elixir? Okay, it's a nice language that is also dynamically typed. It has some advantages but good luck finding anyone with knowledge of how to program in it or has even used a functional language before. I don't personally use Ruby these days but to say it's super behind is just silly. Golang is as similar to Ruby as C++ is.
- pdimitar 3y agoPeople are starting to recognize benefits of even gradual typing en masse these days, while some of us knew it for 10+ years. Not to be an elitist, I've made plenty of other mistakes and I am trying to not look down on anyone, but to discount types is not a well-informed take IMO. That's what I mostly meant by saying Ruby is behind Elixir and Golang. And mind you, Elixir is strongly but dynamically typed and I still find it much better than Ruby.
- DoesntMatter22 3y agoI'm not discounting types at all. I started in strongly typed languages and only gradually moved to dynamic languages. For massive apps generally dynamic languages are not good. However, Ruby also has a lot of creature comforts that Elixir and GO don't have. Maybe there wouldn't be a product at all with GO or Elixir. It's hard to say.
- veggieburrito 3y agoRespectfully disagree about not starting new Ruby projects now - can we still be friends? It works and is easy to get started for simple stuff, same with PHP for some folks or Django etc.
- pdimitar 3y ago"Easy to start" is oversold in my experience. At one point you want more guarantees upfront.
- veggieburrito 3y agoMore guarantees like how? Genuinely curious. I’ve been working with Nest.js lately and it’s good but rails is still more plug and play in my opinion.
- pdimitar 3y agoMore guarantees as in asserting on exact data shape which also includes some typing guarantees like "function argument 1 is always gonna be this struct" (basically a map with keys guaranteed to be present). In Ruby you get nothing like that, all your function arguments are just variable names. This increases testing friction a lot. I've been all over the spectrum: from PHP and Ruby through Elixir (combining best of static and dynamic types IMO, though still flawed) to Golang and finally to Rust which is super strict. To me Elixir and Golang are close to perfect. Rust takes it too far and development velocity can suffer a lot until you become an expert (which can take quite a while). Plug and play is nice but my opinion remains that it's oversold. Quickly whipping out prototypes is not the only virtue of a programming language (though technically that's a feature of Rails, Ruby's killer app, and not of Ruby itself).
- DoesntMatter22 3y agoThe problem is that is only so helpful anyway because you have to send the data to the front end and then translate it back, and in my experience that is where most of the issue is. If you are building a front end facing site you are constantly going to be fighting with that.
- DoesntMatter22 3y agoWhy not exactly? What language would you suggest?
- pdimitar 3y agoElixir, Golang, maybe even Rust (that one is a hard sell though, there could be a lot of friction at the start and part of it persists even when the project matures).
- DoesntMatter22 3y agoLiterally none of those languages existed when Shopify was launched. Did you expect them to get into a time machine or make that happen or what?
- pdimitar 3y agoTrue, I lost track of the original problem, sorry. Still, at one point it's OK to admit the original tech is no longer as useful and migrate to something else IMO.
- DoesntMatter22 3y agoI appreciate your admission here. We can disagree about usefulness I guess. Ultimately Ruby has worked just fine. They didn't report massive issues, and the DB is going to be the bottle neck way before Ruby, so I just don't see an issue. If I knew I was building a site for a massive load would I use Ruby? No. But I don't think it's a terrible choice either.