Object-Oriented Programming is Bad?

youtube.com/watch?v=QM1iUe6IofM

Attached: Object-Oriented Software Construction.jpg (220x300, 23K)

Other urls found in this thread:

youtube.com/watch?v=IRTfhkiAqPw
youtube.com/watch?v=V6VP-2aIcSc
xahlee.info/comp/Alan_Kay_on_object_oriented_programing.html
en.wikipedia.org/wiki/Module_(mathematics)
ocaml.org/learn/tutorials/modules.html
en.wikipedia.org/wiki/Process_calculus
rrt2.neostrada.pl/mioduszewska/course_2643_reading_3.pdf
twitter.com/SFWRedditVideos

Why does everyone hate OOP so much?

Java and enterprise

Attached: Touch_of_Class.jpg (370x499, 26K)

You can write bad code in any style. I have been programming for 30 plus years in anything from assembler to lisp, c, java, pyhton, cobol, miranda, basic whatever. The only thing that matters is that you work is tidy, has a consistent strucnture and documents where it has not and communicates it's intention well. The whole OO vs procedural vs functional discussion is irrelevant and frankly feels a bit childish to me. They are just ways of connecting the digital pipework differently. If you are a good programmer you will be flexible and able to recognize logical patterns and structure in any coding style. Or if that is difficult for you, just stick to one and be an ace at it.

Object-Oriented Programming is Embarrassing: 4 Short Examples
youtube.com/watch?v=IRTfhkiAqPw

Object-Oriented Programming is Garbage: 3800 SLOC example
youtube.com/watch?v=V6VP-2aIcSc

agent-based OO is simple to formally verify
OO is a popular in microkernel-based OS design
many designs in unix OSs are secretly crippled OO design

both crowds and pretty much every single human being is good at creating strawmans and being stubborn
thanks to the wonders of normal distribution, every paradigm and style with at least some adoption will be riddled with mostly garbage

If you are suggesting that a few basic ideas from Behavioral Economics and Complexity Theory could shed a great deal of light on the situation, then I agree.

Reminder that OOP is promoted by corporations not because it's superior to other paradigms, but because it lends itself to code that makes the programmer nonessential. OOP degrades the value of programmers and lends itself to poor code because of overreliance

no one who codes professionally for a living cares

Java was good until they slapped functional programming onto it. Every modern language these days needs some kind of FP support and I bloody fucking hate it.

Diving into Smalltalk is my plan for next week, so I hope it won't be catastrophic. I wonder how similar or different will it be to Lisps.

Attached: lang.png (1000x1000, 135K)

Attached: 1533962339482.png (626x393, 50K)

>no one who codes professionally for a living cares
That's a silly statement that implies a very poor imagination. Your limited abilities were probably overwhelmed by the attempt to feign a suggestion of having the knowledge and experience of a professional programmer.

Attached: Les_Grossman.jpg (1280x720, 46K)

They confuse the Java/C++ implementation of OOP with actual OOP. The closest thing to actual OOP would be Erlang w/OTP libraries passing messages around or SmallTalk. The grand idea of OOP as originally conceived was to have a distributed network of say a gagillion 'objects' (servers) that all perform their own algebras on messages that are passed to them.

haters never got it
never understood it

>all perform their own algebras
what the fuck is an algebra?

>that all perform their own algebras on messages that are passed to them
What the fuck does this even mean?

xahlee.info/comp/Alan_Kay_on_object_oriented_programing.html
Alan Kay's original idea for OOP
>I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages..
>My math background made me realize that each object could have several algebras associated with it, and there could be families of these, and that these would be very very useful. The term “polymorphism” was imposed much later (I think by Peter Wegner) and it isn't quite valid, since it really comes from the nomenclature of functions, and I wanted quite a bit more than functions. I made up a term “genericity” for dealing with generic behaviors in a quasi-algebraic form.

you still didn't tell me what an algebra was

An algebra is a module, wherein you can also multiply two module elements. en.wikipedia.org/wiki/Module_(mathematics)

For anybody who doesn't know the ml-family of languages uses this definition of modules ocaml.org/learn/tutorials/modules.html

So for example, the process algebra (process calculii) is such an algebra. en.wikipedia.org/wiki/Process_calculus
This is exactly the kind of language you would want for writing 'smart contracts' and probably what Ethereum should have went with instead of their Solidity abortion but it's still an open research area

So objects are just structs with functions? Why would you want that? Functions should process the data, not the other way around.

Attached: 1551690095458s.jpg (124x124, 2K)

Can't say, 'cause to this day I'm not sure what oop is supposed to mean.

Look up actor systems in scala. Each actor runs asynchronously from other actors and can receive from and send messages to other actors. This makes it easy to have multithreading without worrying about locking or to distribute the workload across different machines.

The "objects" should all be and concurrent and coordinated as a synchronous, discrete-event system.

Attached: wonka.jpg (630x436, 45K)

>should all be and concurrent
should all be concurrent

Part of it is down to OS design, I think. If you build a microkernel OS around messaging you can write most of the userspace code in memory safe OOP languages. Basically like Redox but not garbage.

OO is okay but the language designers tried to tackle complexity requirements by adding more and more complex solutions.

Sometimes you can tackle complexity by sticking to simplicity and well defined rules.

Sounds like Erlang.

You don't know what you are talking about.

bored?

A bit bored. Gaming and eating dinner while revisiting this cesspool that is Jow Forums - expect slaps rather than strokes [1] here, and no justice to it. That being said, Erlang processes are not coordinated as a synchronous, discrete event system.

[1]: rrt2.neostrada.pl/mioduszewska/course_2643_reading_3.pdf - "strokes" are described in the introduction.

Yeah you are right. Not synchronous at all. I'm getting tired I guess.

More like it lends itself to code that can be written by many people at once. OOP is all about organization since that's the most important thing once a program exceeds a certain degree of complexity.