• ExLisper@linux.community
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    7
    ·
    1 year ago

    But it is a fad. Rust for example is not a truly OOP language. There are more ways to do software than OOP and slowly the OOP fad is going away. It has and will have it’s uses but using OOP for everything was a fad that most people are getting over now.

    • ulkesh@beehaw.org
      link
      fedilink
      English
      arrow-up
      16
      ·
      1 year ago

      Well I guess there is more than one. By that logic, literally everything in the universe is a fad. Good luck selling that bullshit :)

      • ExLisper@linux.community
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        4
        ·
        1 year ago

        No, it was a fad in the sense that people got too exited about it and started using it where it didn’t fit. Later they realized that and now start moving away from it. At least that how I would understand someone saying that “OOP is a fad”. It’s not some batshit crazy statement proving that someone is an idiot you’re trying to make it out to be.

        • ulkesh@beehaw.org
          link
          fedilink
          English
          arrow-up
          7
          ·
          1 year ago

          Yes, it is a batshit crazy statement. “Fad - noun - an intense and widely shared enthusiasm for something, especially one that is short-lived and without basis in the object’s qualities; a craze”. OOP has existed for 40 years, has been widely tested, is a proven form of programming, and is still in active use today. You’re clearly missing the point, are severely uninformed, or have some agenda here, and I don’t really care to argue it with you. Good day.

          • ExLisper@linux.community
            link
            fedilink
            English
            arrow-up
            1
            arrow-down
            5
            ·
            1 year ago

            You’re focusing too much on the ‘short lived’ part and not enough on the ‘intense’ and ‘without basis in qualities’ parts.

            • blackbrook@mander.xyz
              link
              fedilink
              arrow-up
              3
              ·
              1 year ago

              Short-lived is a key attribute of what “fad” means. If something stupid catches on for decades, it’s not a fad.

              • ExLisper@linux.community
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 year ago

                No, the definition says ‘especially one that is short-lived’. It means that things that are not short-lived can still be fads. It’s clearly an optional attribute. The key attributes are ‘intense’, ‘widely shared’.

        • Kindness@lemmy.ml
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          I appreciate your willingness to stand your ground and find your argument partially defensible.

          There exist problems where OOP is a useful, convenient, and simple solution. Some of the zeal surrounding OOP is diminishing due to the inherent limitations concerning access and mutability, though that doesn’t make the tool less useful when it solves a class of problems simply.

          OOP is not the ultimate solution many touted it as, however, it is likely to remain as a major paradigm. The fad will continue to ebb and flow, as its shortcomings are not apparent until you reach a certain level of complexity. (Such as multi-threading interactions.) That level of complexity is not required until you reach expert/researcher programming capability on problems that don’t have band-aid solutions or until you are forced to reconcile such issues by stricter compilers. Further, new programmers may not be aware of OOP until they need to solve a problem, re-introducing OOP as a cure-all.

          As an unfortunate reminder, OOP has existed for 40 years, and a significant portion of advanced and capable programmers will call you a lunatic when you refuse to agree OOP is the ultimate solution. The class of problems the paradigm solves encompasses their entire career. Take the idealist or fanatic opinions with a grain of salt, thank them for their input, and let it slide off your shoulders.

          • blackbrook@mander.xyz
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            A thing that complicated opinions and statements about OO is that it is not a clear cut thing. It is a collection of features that have become associated together but which don’t have to be, and not everyone agrees on which are required for something to be OO, or how important or useful (or harmful) each is.

            What is most fad-like about it, IMO, is the conception that it is a coherent “paradigm”.

            • Kindness@lemmy.ml
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              1 year ago

              Please forgive the meandering reply.

              As far as I’m concerned, OO is a mental model for how to handle any noun. Linux is a good example for OOP, in that, “Everything is a file.” Linux does this amazingly well; even interfaces that read data from USB ports are “files.”

              However, this comes with some limitations. Kernel threads are not very accessible. If you tried to set up a single operating system over multiple computers, you would need some very severe modifications to Linux, and the implementation would likely have many sharp corners to snag on. (Where is this file? What hardware “owns/runs” it? How does Computer 2’s hardware take over, or modify a value currently in Computer 1’s CPU? Etc. As a side note, last I checked, the most common method of distributed computation with Linux is to install an OS on each computer, and have them report to a master or scheduling computer. Which, while functional, is reliant on separate components functioning on their own, independently of the scheduler.)

              I’m stepping well out of my wheelhouse to give a contrasting example. Please be gentle with corrections. Kubernetes, designed to handle multiple pieces of hardware, is written decoratively declaratively without OOP, I believe. Each piece of hardware becomes a node run by a control plane, which is much the same thing as an OS, but lighter, with less capabilities and independence. (?)

              This is not to say you can’t do the same thing with a custom Linux distro, but using an entirely OO pattern will create sharper corners.

              Each paradigm has its own strengths and use-cases; and each their own weaknesses and limitations.