Hacker News new | past | comments | ask | show | jobs | submit login

Program = Data Structures + Algorithms

Most OO code is poorly designed, slow, error prone and a memory hog. Every object you initialise wastes so much memory. OOP is not going to be there forever. It is a failed paradigm. Hopefully it will be replaced with something more efficient, faster to develop and something with more provable correctness.

Is an object a data structure, an actor, a module, a knowledge frame ?

A state machine can rightfully be called state + behavior. Sadly no programming language has made hierarchical state machines a first class feature to support with syntax despite it being software engineering unlike what OO bros claim.




For a failed paradigm, there sure is a lot of perfectly successful software written using it.


You can make almost anything "successful" if you try hard and enough and spend enough money. If we just got rid of subtyping and mutation (which imo, are the core "features" of OOP), we would be in a lot better place. Though, if OOP means just grouping data together and providing functions that operate on that data, I don't have any problem with that. Most functional code works like that, it just doesn't mutate the data.


Yet it's been massively successful, out in the real world, in ways FP can't really claim.


What do you mean, exactly, by "successful"?


Successful as in slow to use, poorly designed, difficult to extend and a memory hog. You can't even reuse code between rails1 and rail2. OO is a joke. Pure OO languages like Java and SmallTalk are already failures. C++, Scala, Kotlin are not OO languages. Design patterns are not engineering, let alone architecture.

The only success for OO has been UI development. It's a failure everywhere else. OO databases are a failure. ORM is a failure. OO based distributed computing has failed, we use REST. OO based design is a failure, no one uses UML.

OO based architects are a waste of time and money. You can replace all OO based architecture nonsense and patterns with code written in Go.


I won't put java and smalltalk in same class. They are much different.

   >Design patterns are not engineering, let alone architecture
   >Sadly no programming language has made hierarchical state machines a first class feature to support with syntax despite it being software engineering unlike what OO bros claim
What do you mean by engineering here?


Java is not pure OO, neither is it objectively any sort of failure, being one of the most widely used languages out there.

As such I don't think the rest of your post is worth consideration.


Java Web Start is such a big success.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: