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.
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.
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’.
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.
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.
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”.
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.
Well I guess there is more than one. By that logic, literally everything in the universe is a fad. Good luck selling that bullshit :)
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.
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.
You’re focusing too much on the ‘short lived’ part and not enough on the ‘intense’ and ‘without basis in qualities’ parts.
Short-lived is a key attribute of what “fad” means. If something stupid catches on for decades, it’s not a fad.
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’.
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.
Cool.
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.
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”.
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
decorativelydeclaratively 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.