• Armand1@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    edit-2
    1 month ago

    I’ve worked on projects with 10 000+ lines of typescript and maybe 3 classes total.

      • Armand1@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        1 month ago

        Of course, but OOP is typically about putting methods on classes, inheritance of behaviour etc.

        JS Objects aren’t typically used that way, they tend to be used as pure data containers. At least, that’s how we mostly use them.

        Occasionally, we’ll use objects to simplify passing multiple arguments including arrow functions, but I’d say that doesn’t really count unless the arrow function mutates the object it’s a part of.

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

          Of course, but OOP is typically about putting methods on classes, inheritance of behaviour etc.

          You’re referring to one subtype of OOP. That may be what most people mean when they say OOP, but that doesn’t make it correct. Object-oriented programming is programming with objects, which does not require inheritance or classes.

          • Miaou@jlai.lu
            link
            fedilink
            arrow-up
            5
            ·
            1 month ago

            With such a broad definition you could call even Haskell an oop language

            • Ethan@programming.dev
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              29 days ago

              So you’re arguing that “Object oriented” shouldn’t apply to languages that are oriented around objects?

        • olafurp@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          And maybe you have some functions that interact with them but don’t keep them super public so they’re only used by specific modules/store/redux thingy?