this post was submitted on 11 Sep 2023
186 points (96.0% liked)

Asklemmy

43857 readers
1508 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy ๐Ÿ”

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_[email protected]~

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 16 points 1 year ago (1 children)

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

[โ€“] [email protected] -1 points 1 year ago (2 children)

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.

[โ€“] [email protected] 7 points 1 year ago (1 children)

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.

[โ€“] [email protected] -4 points 1 year ago (2 children)

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

[โ€“] [email protected] 3 points 1 year ago (1 children)

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

[โ€“] [email protected] 1 points 1 year ago (1 children)

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'.

[โ€“] [email protected] 1 points 1 year ago (1 children)

Well, it depends what dictionary you consult. Can you give an example of a long-lived thing that would be widely considered a fad?

There are fads that have persisted over a longer term by coming in and out of fashion, like say bell-bottom pants. But I can't think of something that would be widely considered a fad that has stayed in fashion for decades.

[โ€“] [email protected] 1 points 1 year ago

Chat GPT suggests that Yoga and Rock 'n' Roll and long lasting fads. I would say Crypto is a pretty long lasting fad. But we're really splitting hair here. I agree that most people would say that something lasting decades is not a fad but everything is relative. Something, like yoga, can exists for hundredths of years but it's sudden popularity in the west can be considered a fad. My point really was that calling someone a moron because he said that 'OOP was a fad' is silly. Maybe he simply meant that it's overrated? Maybe he meant that people got way more excited about it than they should? Maybe he meant that it's popularity was dying out? You can make valid points about all of it. Saying that he's an idiot only because OOP existed for relatively long time actually shows how simple minded the other guy is.

[โ€“] [email protected] 2 points 1 year ago (1 children)

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.

[โ€“] [email protected] 2 points 1 year ago (1 children)

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".

[โ€“] [email protected] 2 points 1 year ago* (last edited 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.