• Ruby gives you all kinds of tools to make clusterfucks, but it’s not hard to keep your hands out of the metaprogramming cookie jar.

    But with careful application even fucky features can be put to good use. Like monkey-patching a problematic method to only throw an exception rather than allow accidental misuse. With a nice verbose error message and good testing practices there’s almost no risk.

    • Oh I didn’t even mean that; just the (possible, shorthand/unreadable) syntax alone, weird typing, etc. seem like it’d be hard to work with.

      It’s also funny because “allowing clusterfucks” is a huge reason why PHP was so hated; when you took care to write it properly it wasn’t bad even in the early days.

      • The thing with Ruby clusterfucks is you have to go looking for them. Languages with implicit type coercion and loose comparison like PHP and JS have clusterfucks lying in wait for you and it takes concerted effort to avoid them.

        What do you mean regarding weird typing?