Hacker News new | past | comments | ask | show | jobs | submit login

>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.




Ruby in 2023 is miles ahead it was 10 years ago.


Yet it's still super behind tech like Elixir or Golang, which are both faster and give you more compile-time guarantees.


Behind 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.


People 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.


I'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.


Respectfully 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.


"Easy to start" is oversold in my experience. At one point you want more guarantees upfront.


More 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.


More 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).


The 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.


Yep, agreed, and I am saying that as a guy who still prefers server-side rendering.

Stuff like Elixir's LiveView and its imitators (like PHPx and I think C#'s Blazor?) are where things get better but since I am not interested in frontend, I leave that work to other people.


Why not exactly? What language would you suggest?


Elixir, 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).


Literally 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?


True, 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.


I 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.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: