• MonkderZweite@feddit.ch
    link
    fedilink
    arrow-up
    12
    arrow-down
    4
    ·
    edit-2
    10 months ago

    Unpopular opinion: Ruby is too widely used, because it’s the least performant language.

    Sometimes even for stuff, where performance matters (Asciidoctor).

    • The Quuuuuill
      link
      fedilink
      English
      arrow-up
      18
      arrow-down
      6
      ·
      10 months ago

      Ruby’s popularity in the early 10s thanks to Ruby on Rails feels like it happened by accident. The language is hard to read and low performance, but Rails is completely automagic. But this is also the worst thing about rails. You create your app fast, but then maintaining it is expensive because you can’t onboard new developers easily. Even if they’re familiar with rails’ automagicisms, it will take them quite some time to parse what the hell the code is doing.

      Meanwhile I seem to recall Ruby’s creator finding the situation of his language being popular because he’d created it as an experiment and never thought it would be used in production grade environments

        • snowe@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          10 months ago

          Yeah there’s multiple people in here saying that and it seems like maybe they’ve never actually written Ruby. I don’t think Ruby is a good language for writing business apps in, but it’s incredibly easy to read. Way easier than pretty much every single language out there.

          Now if you start including shit like rails, sure. But that’s not Ruby. That a framework and just like Spring or Django or Boost or whatever, it has its own semantics and can be incredibly difficult to read. That has nothing to do with the language though.

      • AnomalousBit@programming.dev
        link
        fedilink
        arrow-up
        5
        arrow-down
        3
        ·
        edit-2
        10 months ago

        language is hard to read

        for item in array do
          puts item[:name]
        end
        

        Whew, iterating and working with data in Ruby is so hard. How does anyone read this stuff.

        low performance

        Ruby is a syntax-sugar-loaded C-wrapper, just like Python and countless other languages that don’t compile straight to machine code. If anything other than C and Rust are slow to you, then sure, maybe Ruby isn’t a good fit for your project (but Crystal might be).

        create your app fast

        Damn right, I’m two or three times as productive as I ever was in C#/Razor, Java/Spring or kludging through the countless JS boilerplate-heavy web frameworks.

        but then maintaining it is expensive

        As with any app that grows into something successful and widely used, technical complexity becomes exponential. I’ve found once web applications grow to a certain number of models and controllers, the relationships between them start to grow exponentially as well. This means one small change can ripple throughout your application and have unintended consequences where you least expect.

        This is not even remotely a unique problem to Ruby. It’s happened across every project I’ve seen that grows beyond 30 models and a couple of dozen controllers, regardless of language. This is why unit testing is so important.

        But, specifically you mentioned you can’t “onboard new developers easily”. I don’t see how. I’ve taken two CS grads straight out of college and had them adding features with tests within a couple of days on Ruby projects. Ruby was designed to be most friendly to humans, not the compiler. If Rails is what is tripping you up, imagine trying to learn a new web framework on top of an even more complicated language than Ruby. I just don’t see this argument at all, from my experiences.

        Ruby’s creator finding the situation of his language being popular because he’d created it as an experiment

        Pretty sure most any language that was created by an individual and not by BigCorp™ is a feat in and of itself. This speaks more widely to a language’s capabilities and value if it can reach popularity without corporate backing. This argument seems to imply that because of it’s origin, it will always be some kind of experimental toy that was never intended for wide-use.

        Meanwhile, Linus Torvalds:

        I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.

        Things have to start somewhere, I guess?

        I kindly ask you to be more constructive in your criticism of Ruby. It’s a great, powerful language with a low barrier to entry. There’s no reason to spread FUD about it.

        • morrowind@lemmy.ml
          link
          fedilink
          arrow-up
          6
          ·
          10 months ago
          for item in array do
            puts item[:name]
          end
          

          What’s with the weird syntax, isn’t idiomatic ruby

          array.each do |item|
            puts item[:name]
          end
          

          (or the shorthand version)?

          • CarrotIsland@beehaw.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            10 months ago

            Was about to say as someone who’s been using Ruby for over a decade, 8 of which professionally, I’ve never once come across a for loop. each on the other hand, all day every day.

          • AnomalousBit@programming.dev
            link
            fedilink
            arrow-up
            1
            arrow-down
            2
            ·
            edit-2
            10 months ago

            First time I’ve ever heard someone call a for loop “weird“. They’ve been around for 50 years 😂

            The whole point was on readability, not trying to make rubocop be quiet. Sure, .each is great, but I’m not sure about it being shorthand. What did you save? Like 3 characters? I find the for loop more readable unless I’m method chaining.

            • morrowind@lemmy.ml
              link
              fedilink
              arrow-up
              3
              arrow-down
              1
              ·
              edit-2
              10 months ago

              Not in ruby, the for loop was initially put there to make it friendly for people from other languages and is discouraged. It’s just syntax sugar on top of each.

              By shortand version I meant

              array.each(&:to_s)
              

              (although in this case I’m not calling puts anymore)

              edit: lemmy keeps putting the & there, but you know what I mean

              • AnomalousBit@programming.dev
                link
                fedilink
                arrow-up
                1
                arrow-down
                2
                ·
                10 months ago

                Not in Ruby

                It’s valid syntax, it’s part of Ruby. It’s easy to read and familiar across many languages. Write what you want to write, I’m not sure why you feel the need to finger wag.

      • MonkderZweite@feddit.ch
        link
        fedilink
        arrow-up
        3
        arrow-down
        5
        ·
        10 months ago

        No, there circulated a performance list a while ago. Python was in the lower third while Ruby was bottom.

        • morrowind@lemmy.ml
          link
          fedilink
          arrow-up
          5
          arrow-down
          1
          ·
          10 months ago

          Which benchmark are you talking about? The most common I know of is the computer language benchmarks game, here’s a nice implementation of it.. You can see ruby is actually a decent bit faster.

          It’s an annoyingly persistent myth that ruby is significantly slower than python.

    • lars@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      10 months ago

      Yeah I usually run my backend in Asciidoc too. The level of its performance might surprise you.