← Back to context

Comment by steve_gh

2 days ago

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.

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.

  • > until the actual line of code is run...

    Which is what the Ruby test-heavy culture is all about. I prefer types for this very reason; the compiler/checker is a complete suite of testing I don't have to write.