Remix.run Logo
Gigachad 3 hours ago

Ruby does have the best testing tooling of any I’ve tried. But I feel like it’s half to make up for how horribly unreliable the language is. The whole thing being untyped makes it borderline impossible to know the code is correct without unit tests covering everything.

steve_gh 2 hours ago | parent | next [-]

Ruby behaves sensibly through the principle of least surprise.

But it does have extremely powerful metaprogramming capabilities which are regularly abused by those not wise enough to know that just because you could do something doesn't mean that you should.

I regularly code in a variety of languages from C / C++ through Python and Ruby through to Haskell. They all have their advantages and disadvantages. All of them are capable of abuse by the sufficiently determined. And unit tests are helpful in all of them.

Gigachad an hour ago | parent [-]

It’s quite surprising when you update Rails and they have changed the arguments for some obscure function used in only one place deep in your app and you get no indication of this until the actual line of code is run and it blows up.

I’ve worked on rails apps for the last 9 years and I’d guess 80% of the bugs that show up on production would have been flagged by typescript.

viralpraxis an hour ago | parent | prev | next [-]

I’ve seen large Ruby projects with hunders of developers working on it for >10 years with almost 100% sorbet coverage. It’s just that in Ruby you have to pay (ie spend extra time) for decent degree of type safety.

cracki 3 hours ago | parent | prev [-]

"Untyped" means, for example, you can't tell a string from a number, because they are the same type.

You mean "not statically typed". Which also applies to Javascript, PHP, Python, ... so if that critique doesn't stick to those, it's not a critique you can level at Ruby.

Gigachad an hour ago | parent [-]

Typescript has almost universal adoption at companies now. PHP I can’t imagine any company choosing for new work anymore. And Python I’m not terribly familiar with but it does seem to be moving towards types.