I agree, but why is it everywhere like herpes?

I agree, but why is it everywhere like herpes?

Attached: 59B066E4-4270-4C3D-B871-614E787A57CF.jpg (800x800, 88K)

Other urls found in this thread:

harmful.cat-v.org/software/OO_programming/
youtu.be/QM1iUe6IofM
steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
gamedev.net/blogs/entry/2265481-oop-is-dead-long-live-oop/
twitter.com/AnonBabble

>which could only have originated in California
Was he trying to be funny since it originated in Norway?

Attached: quote-i-made-up-the-term-object-oriented-and-i-can-tell-you-i-did-not-have-c-in-mind-alan-kay-61-17- (850x400, 52K)

Because its the best we got and modularity is a good thing

>$95,000 / year to do object-oriented SWE in Java

I really couldn't care less.

The average Jow Forums user doesn't have a programming job so they honestly wouldn't know.

Eh. You can join the working world or stick to your principles and die in abject poverty.

Pretty simple choice. Hell, the majority of programmers are pretty trash, you can make good coin just by being slightly above mediocre.

My dad gets paid over $100k a year to code in Visual Basic

>object oriented programming is bad
someone explain this meme without resorting to a ridiculous strawman argument and image macro of a poorly designed object heirarchy

My dad makes $600k a year selling houses to Chinese millionaires.

namespaces is superior over OOP

Attached: __.png (587x482, 23K)

object oriented programming allows women and indians to believe that they can program
if college courses started out their first quarter with c or assembly programming, even at a very simple level, at least 50% of the people who have no hopes of being even a mediocre programmer would drop out
of course they wont do that because more dropouts = less money

> C or assembly programming
> people make 6 figures at a Software Engineering job without ever having to touch any low level languages

Where did herpes come from? California.

yeah, they are shit in most of today's industries, but i was only saying they would be valuable for weeding out most of the retards that are responsible for all of the dumb shit we have to deal with today before they could ever get their hands on anything resembling a degree

it's literally the perfect paradigm for business, which is full of high turnover rate mediocre coding monkeys

pretty much the only real paradigm that's pure garbage is straight procedural.

I don't understand how object oriented programming makes it any easier for women and filthy indians. It's just a way of delegating work really.

indeed it feels like a massive meme that fomets the writing of more code rather than just having a primitive abstraction.

>DIz is a car object
>andd diz a plane object
ITS FUCKING DATA YOU RETARD

classes are for cucks. plain and simple.

Usually by FP enthusiasts. OOP is about objects containing behavior and side effects. FP is about little to no side effects and functions containing behavior. (Although pure FP is rarely practical but most FP won't admit it)

>”learning” C++ before learning good C
This is why most code monkeys are shit

>OOP is about objects containing behavior and side effects. FP is about little to no side effects and functions containing behavior.

Can you explain what you mean by side effects?

literally printing lol

I don't get the OOP hate, either.

I use C and multiple flavors of assembly at work, but I also use Python and Ruby and they are great for rapid development of scripts and tools.

Anything that happens in a program/function that is not a return value, I/O being a prime example.

>Object-oriented programming is bad
Which part?
1. Encapsulation
2. Abstraction
3. Inheritance
4. Polymorphous
Usually it will be one of the bottom 2 that someone cites and gives the worst possible interpretation/understanding as to why it is bad. Using C for anything other than low-level or legacy code is retarded.

Also Dijkstra had some really bad ideas. Like the whole GOTO: considered harmful which showed he knew nothing about production code at the time.

I knew a guy that was paid 200k+ for four years to code in VB.net but he was porting some fucking ancient cobol code for the University of California.

Who here one file master race?

Attached: 1542603526448.png (500x693, 208K)

>considered harmful
harmful.cat-v.org/software/OO_programming/

Great site. Shame that linking to a page of quotes doesn't make an argument any more solid though.

yeah it's not like your gonna actually read the more dense material in the links there

I took c, what is oop? c++ is OOP? C++ is just headers cheat codes for c? some one explain?

Attached: maxresdefault.jpg (1280x720, 158K)

Object Oriented leads to a lot of complexity of trying to link things together and understanding what part goes where. It becomes nearly impossible to understand the bigger the project becomes, so it isn't scalable. But I don't know a solution to it.

Print SOLITION

it's not like you can't have oop with entity-component and data-oriented design all together. this shit isn't binary

it's disgusting. functional or iterative languages are much much easier to maintain than anything OOP. just look at the current best kernel in the market.

California didn't invent OOP. I did.

Quoting someone who never produced anything of value
Try "and"
As in, "Java is OOP and FP"

I'm not experienced enough to know if OOP is bad or not (it's worked for me so far), but these links are pretty entertaining.

youtu.be/QM1iUe6IofM

steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

I use all of those but Ruby, but I don't use classes or objects in python (unless I have to in order to interact with someone else's code or a library). I don't see why you would, it adds useless overhead. Unless for some reason you enjoy typing "self" over and over again.

>gives the worst possible interpretation/understanding as to why it is bad
>Like the whole GOTO: considered harmful

Take some of your own medicine.

Inheritance is bad, not because it's wrong in itself, but because it's too inflexible an abstraction compared to mixins/traits and using it "to model hierarchies in the real world" as so many people are taught to do is ridiculous on so many levels.

Polymorphism is basically the entire point of OOP.

How's Australia, Satan?

Because object hierarchy can quickly reach an unmaintainable clusterfuck as project requirements change

Will some of the shills in this thread point to one modern widely used gui desktop application that uses FP?

I'll wait.

Attached: hnilw.jpg (620x464, 36K)

None of those things are exclusive to OOP. In fact, OOP is probably the worst way to implement all four of those.

Forget about OOP for a moment and think about the glory that is the Shortest Path First algorithm, also named as Dijkstra's algorithm.
Without Dijkstra's algorithm, we wouldn't have implementations like OSPF which powers the IP networks of many companies around the world.

CASE tools were everywhere too. Look where we are today.

Attached: baitavesta.png (800x600, 48K)

And what exactly would be difficult about coming up with that without him?

>best we got
Keep telling yourself that.
>I went into this industry only because of the money and I don't actually care about enjoying myself because I have no soul.
You must be ginger.
Not everyone on Jow Forums is you user.

This thread proves that Jow Forums is full of sheep and soulless gingers.

You don't know what OOP is child.

gamedev.net/blogs/entry/2265481-oop-is-dead-long-live-oop/

What if you want to share state between several functions? Or avoid repeatedly passing the same arguments?

I am well aware of entity component architecture, as I've programed games. I'm not at all under the illusion that inheritance is only useful for 'naive' object modeling.

This doesn't change the fact that C++ style inheritance is inferior as an abstraction to the more flexible approach of mixins/traits along with interfaces ( implicitly via ducktyping or otherwise), which make it relatively simple to compose components together. And I've still not seen any other object system with the power and flexability of LISP's CLOS, let alone with the Metaobject Protocol.

lmfao you missed the point of that article dumbass. Next time you think that inheritance == OOP or that C++ requires inheritance make sure you think you are an idiot at the same time.

>This doesn't change the fact that C++ style inheritance is inferior as an abstraction to the more flexible approach of mixins/traits along with interfaces
its called the sins of the father you fucking heathen. god condemns to the 4th generation departed from a nonbeliever. its not abstract its literal. he hates you because your father is a faggot

C++ inherited the sins of dos and binary. they keep making OS but they dont make new tiers of code. thats why your faggy java script applet wont run. god hates you and your ghey little cohort C++ . you bitch about C++ but you do rough trade with him all the time and we wall know especially god and your not man enough to make a new tier of machine language.

Object oriented is great.
Inheritance is the one pitfall all the hate usually comes from, even though in reality, it's not even used that much. Interfaces are far more popular.

>which powers the IP networks of many companies around the world.
Friendly reminder that distance vector algorithms exist, and that Dijkstra's algorithm is useless in graphs with negative costs.

OOP isn't even from California, it was invented by a couple of Norwegian mathematicians in collaboration with Donald Knuth.

>Next time you think that inheritance == OOP

Are you actually reading what I'm writing? Are you saying you can have inheritance without OOP, that you can have OOP without using inheritance or that there is more to OOP than inheritance? What are you even specifically referring to when using the term?

Do you not at least agree that the basic point of OOP (as opposed to 'structured programming') is to use polymorphism to allow structures which can be composed in such a way that lets them vary and yet conform to the LSP?

>Are you saying you can have inheritance without OOP
what is polymorphism

It's not OOP in itself, it's the garbage that got bolted onto it over the years.
Religious worship of idiotic design patterns regardless of their applicability to the task at hand is responsible for far worse mess than unstructured COBOL ever was. Like the staple of corporate Java which is factories of factory factories all the way down.
How did this came to be? Someone invented OOP. Someone hyped it up as the final, universal solution to every problem ever. Years down the line, when it escaped from academia to the corporate world, serious issues were found and from then on it's just a never-ending cycle of trying to fix the shit that was put in to fix something else.

I did a double degree in computer science and mathematics, the first language we learned was caml and java . 1/4 of the class drop out after the first semester

Assuming we're speaking of dynamic polymorphism (as opposed to parametric or whatever), then having having a class or structure that implements or otherwise functionally fits into what might be called an 'interface', i.e. parts of the codebase which call methods of the structure and expect those methods to be implemented by the structure. This happens in such a way that multiple, different such structures with different implementations of methods can be used in a single part of the system, and yet vary in individual behavior on a case by case basis, though in a way that ought to conform to the specific constraints required by that interface.

This.

OOP Chapter 1 verse 1 "everything is an object".

Terrible way to teachan abstract concept but anyways... OOP sometimes is like using a jackhammer to put in one thumbtack. Making all sorts of classes everywhere just to perform a relatively simple task.

Luv me ten levels of inheritance.

>solition

What the fuck? C is simple. ASM is the true nightmare.

>ASM is the true nightmare

Most modern x86 assemblers have a better macro system than C does.

Agreed. Would it hurt to separate data from code? I swear the CSS zealots were loud about separating HTML structure from all the presentation pretty stuff and I was confused that the OOP world seemed to be doing the exact opposite. Oy vay.

>inheritance is inferior as an abstraction to the more flexible approach of mixins/traits along with interfaces
mixins and interfaces are more flexible, but inheritance is faster
they both have their uses

>but inheritance is faster

Yes, I agree that it can be much more efficiently implemented and that this is a real advantage to using it.

>Luv me ten levels of inheritance.
Yet this never even remotely happens. Why are people who don't know anything about OOP (or programming altogether) always the loudest?

Data is easy to model. Adding stateful storage, mutations, and methods to the data makes it exceptionally hard to model real-world problems with it. The fact that UML is a thing, and the fact that objects have transcended the bounds of "alligator in an animal that bites" into Factories and Singletons and all sorts of other abstract bullshit is all you need to know.

All of this is more simply modeled as data and functions. Cross-cutting references and memory semantics ruin that simplicity.

t. somebody who worked WEB SCALE with both OO and functional and vastly prefers functional

>Adding stateful storage, mutations, and methods to the data makes it exceptionally hard to model real-world problems with it.
yeah try making a game with functional code instead of OOP and you'd be saying the exact opposite
use cases exist

>Adding stateful storage, mutations, and methods to the data makes it exceptionally hard to model real-world problems with it.
Why? Generally aren't you going to be doing the same handful of basic operations to any data structure over and over?

Use cases do exist, thanks to the performance that is entirely not dependent on OO and can be obtained with C using functions and data. Yet it's still perfectly arguable that games are still better modeled as data and functions (game state in a frame as a function of the previous frame's state) were it not for that real-time functional performance penalty, but games are a niche portion of the overall software world. Just about every web or desktop application is better modeled as functions and data.

And if you're going to argue that functional doesn't have the performance for desktop applications, you're out of your goddamn mind.

OOP is a buzzword invented by Sun aka Larry Hellison, and actual object oriented programming has not been invented yet

for exactly the same reason game devs are still using directx: LOL IT EZ

OOP is "functions and data", if you mean pure functions with immutable state, well any program that is presistent and doesnt just take an input and return an output is better modelled mutable state, and mutable state has the benefit of being how your computer actually works
Functional code can be good for programs that do take input and produce output, like web pages

>iterative languages
This is Jow Forums

C and assembly programmer here. Just starting out in industry, working in industrial automation.
C is very simple, and in that sense it's good for newcomers. However, I've found that my greatest strengths in my job come from my understanding of functional and object-oriented languages.
Because of my experience with those paradigms, I know how to design software in an appropriate manner for any given task. Although C doesn't have those abstractions baked directly into the syntax, they serve as a model for elegant, fast, and maintainable code.
Assembly on the other hand- it seems like everyone does it differently. I work with guys who've spent half their loves programming in assembly exclusively, and every single one has a different approach, which is kinda cool because with asm there are very few "right answers," at least not in practice.
Translating those design paradigms into assembly is more cognitive overload than what it's worth. With assembly, it's more about "making it work right" as opposed to "making something beautiful or elegant." Although there's a lot of room for cool little tricks in asm, I think it's a horrible thing to teach newcomers, since it prohibits higher-level reasoning about software design. Once someone has a good foundation, though, it's almost essential that they learn some kind of assembly language, whether it's a machine-code assembly like ARM or x86, or an interpreted assembly like Forth.

is this new pasta? I'll try it out in the humor thread.

I used to try to mod games and make my own games with C++, however, I recently started using C because I tried to port my games to embedded processors for handhelds.

Once I was forced to not make everything a class, my code became much easier to maintain and iterate on. My C++ code had become a nightmare of pointers and handles, and any time there was any overlap or serious interaction between C++ classes I had to open multiple tabs to jump around and add my new feature to multiple objects.

In C it was much cleaner, I picked up a naming convention of sorts for functions that were for specific parts of the engine (so that I didn't accidentally redefine a function) and was easy to iterate and maintain. All of a sudden my player could call a render function without a fucking handle to the renderer.

Now my C++ code isn't absolutely awful, but others seriously need to try solutions without OOP so that they can understand through experience how to structure their projects.

Attached: spagett.jpg (425x282, 36K)

I wrote games in pure procedural code for years and upgraded to OOP because they were becoming way too complex and verbose

That program looks dreadful, DIM'ming arrays inside a function. I dont know what version of basic it is, so maybe a feature of this variant is that arrays declared inside functions are local. Then it'd be ok. But if not, then that function will cause an error if you call it twice in the same program. That would also be really silly because why would you bother to declare some LOCAL variables, and then DIM some global arrays?

>they were becoming way too complex and verbose

keeping track of large numbers of anything that spawns and lives a while then disappears is trivial in OOP, a huge pain in the ass otherwise. If the hardware can handle it, the choice is obvious.

lmao I'm advocating for hybrid not to throw OOP out the window.

>paradigm
Sold me right there

when has it ever been all-or-nothing
does using classes mean you're never allowed to write a free function again

OOP is vouched for by sicp

those people give cybersec majors like me a job

and it makes hackers plenty of money too. try to take it as a blessing rather than a curse.

>Functions - Learn Java - Free Interactive Java Tutorial
>Every Java method has to be within a class.

To be fair you can sort of free function in java in the same way you can OOP in C, it's kind of a hack though

>OOP = Java

Well yeah. Today's perfect abstraction is tomorrow's clusterfuck. But it doesn't matter if it's object oriented or functional though.

jfc

>I agree
you're either very young, or incredibly dumb, then. before OOP, we had massive amounts of global variables in all of our source code files. by encapsulating code and member variables inside of a class, we made things a lot more sane. At the time (around 1993?), what other options were there?

This. Also too many OOPfags treat their OOP shit like a hammer and then think everything's a nail. That was never the purpose of creating higher level languages; in fact, they were designed in the first place to make programming in lower languages easier and quicker. But fast forward 20+ years and you have fucking retards writing simple things like hello world tier programs in fucking C++ or Python.

>patterns be bad!
>factories!
you obviously do not understand what are patterns.
>patterns cause mess!
quite the other way around. Code that used patters is much easier to deal with than mess you end up without patterns.

Not desktop but still very widely used: Facebook Messenger. ReasonML.

Except that big project is mess in oop, fp, procedural and all other ways of writting code.