• FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    1 month ago

    Very good points. A codebase that gets this VERY wrong is Gitlab. I think it might be a dumb characteristic of Ruby programs, but they generate identifiers all over the place. I once had to literally give up following some code because I could not find what it was calling anywhere. Insanity.

    Another point: don’t use - in names. Eventually you’ll have to write them down in a programming language, at which point you have to change the name. CSS made this mistake. foo-bar in CSS maps to fooBar in Javascript. Rust also made this mistake with crate names. A crate called foo-bar magically becomes foo_bar in Rust code.

        • tyler@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          I haven’t heard that in 15 years. The main reason to use Ruby is that it’s a better Python. The tooling is 10x better, it has all the same language features and more, it has easily enough packages to handle any situation you want, and it doesn’t have all the bike shedding that Python has.

          You shouldn’t be writing applications in a scripting language anyway. They’re for scripting, it’s in the name.

          • FizzyOrange@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            1 month ago

            Well I’m no fan of Python either but it doesn’t describe itself as a scripting language (and neither does Ruby) so I think you’re way off there.

            And I dunno about Ruby being a better Python. It looks way worse to me. In particular the story for static type annotation seems pretty dire. The syntax is worse, it’s less popular, and even slower!

            I can believe the tooling is better though. Python’s is abysmal (unless they officially adopt uv - ray of hope there but I have zero faith the Python Devs would make such an obvious decision).

            • tyler@programming.dev
              link
              fedilink
              arrow-up
              1
              arrow-down
              1
              ·
              1 month ago

              Ruby and Python are both scripting languages and have been since being invented. Static type annotations are a dumb thing to add to a language like Python and Ruby, they’re not static languages. If you want static typing you should be using a different language. The syntax is most definitely not worse, and that’s not an opinion, Python’s for comprehensions are nightmares of readability, and hardly make sense 5 minutes after you write them. Ruby prioritizes readability over everything else.

              Speed is almost exactly the same, with Ruby winning on many benchmarks. The only people saying Python wins are Python programmers. There was a post on the clojure community the other day comparing specific instances and while clojure was winning them all, Ruby was in second on most of them.

              Python only looks better from the outside. I spent years coding in both at the exact same time at the same company. The only two things Python wins on is number of packages, and even that is a dumb metric (looking at you npm), and Click, which is an absolutely fantastic CLI framework.

  • collapse_already@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 month ago

    No, no, one of the main benefits of OOP is information hiding. If your code is too greppable, developers can circumvent the information hiding.

    (Sarcasm)

  • magic_lobster_party@fedia.io
    link
    fedilink
    arrow-up
    1
    ·
    1 month ago

    I agree with the first point. Always go for clarity over cleverness.

    I somewhat disagree with the second point. Consistency is important. Stick with the same name when possible. But I think mixing camel case and snake case should be avoided. It can make the code less ”greppable” IMO, because now you need to remember which casing was used for each variable.

    Kind of agree on the third point. I think flatness should be preferred when possible and when it makes sense. Easier to find the variables with the eyes rather than having to search through nested structures.