>better software conference
>hasn't made software in decades
What did casey and the organizers mean by this? Is real software automatically bad by just existing?
>What did casey and the organizers mean by this?
maybe watch the presentation? are you retarded?
>>106009791>NOOOOOOOO you can't use abstractions. abstractions are literally the devil. think about the cache miss, man! you can't just use a vtable bro, that's like soooo bad for your cpu. imagine using a vtable in a video game bro, it will like not run at all bro like ... do the thing i did in handmade hero which i never finished btw. it is literally impossible for your computer to deal with vtables bro. imagine wanting to have structure in your code, that's like so cringe.I imagined what it probably sounded like. Too bad I'm busy writing actual software.
>>106009653 (OP)That talk is pretty good background noise. He references events way older than 35 years ago for setting up the "how we got here" aspect. IMHO this is actually the most interesting bit, covering some unsung sames that influenced modern software development.
>>106009653 (OP)Talk is cheap and easy. I mean, what other reason is there for all these theory wankers to keep talking instead of actually practicing what they preach?
>>106009653 (OP)It was cool that the File Pilot guy sold his file browser for $15 or $200
Wish J Blow would let me give him $200 for his compiler
low level imperative code is great as long as I'm not the one writing it
expressiveness is king
>>106009653 (OP)I watched this whole talk. I still don't get what he meant by it.
>>106011612oop was created for code reuse, not for big team collaboration, it's not very flexible. entity component systems are flexible and likely a better default architecture
Started watching it, so he's actually pro-OOP, just using different encapsulation boundaries.
Sorry to say Casey but hardly anyone actually wrote production code like the proposed Apple extends Fruit bullshit. Exception being the game industry and maybe things like UI layout.
>>106011842>Apple extends Fruit bullshitActually, yes they did. Not necessarily end users, but the end user ended up with colossal amounts of bloat due to inheritance in the libraries they were using.
Inheritance is the core component of OOP, because of code reuse philosophy, as proven by the anon right before you
>>106011778Don't give me this "different encapsulation boundaries" bullshit. Otherwise you have to confess C is already OOP with structs, and there is no need for C++.
Several threads on this and not a single detractor actually watched any of the fucking video
This place is worse than mumbai
>>106009653 (OP)I have watched all talks so far. While Casey is the least impressive programmer of the bunch imo, he is by far the best speaker. This talk was a very interesting historical account and he managed to reel back the
> le pOOP is badenough to make it palatable. Ginger Bill was surprisingly extremely boring, but I am a phd student in maths so not exactly the target audience. Dennis an Ryan show the importance of visualizations in certain domains, pretty gud. Vjekoslav is giga based and so is Eskil but he has ADHD for sure.
>>106012209I thought it was cool how Casey inadvertently discovered that an array of objects is an array of arrays of single data points, but had to write a jungle of slop callbacks and FactoryConfigureSatelliteReceiveModes to discover that
But I still think he's a bastard for failing to convince Jonathan Blow to sell an Early Access version of his compiler for $200
what can an object do that an array can't?
>>106014813Arrays are objects in most modern programming languages.
>>106014842major red flag
>>106011842people absolutely did and do write retarded triple abstracted consultant """clean""" code
there are conference talks where """people""" say you shouldn't use if statements, all branches should be behind dynamic dispatch over polymorphic objects
>>106009653 (OP)OOP is good and enables a lot of powerful capabilities. The main problem is that non-OO operating systems hobble OOP by limiting it to individual programs instead of being system-wide. This also leads to inner platform effects like running everything in a browser or JVM instead of just using the OS objects. System-wide OOP lets you share objects across all programs and languages and eliminates inner platforms.
http://lispm.de/genera-concepts
>Genera doesn't draw any boundaries around itself. It is customizable and extensible by design. Unlike most software, it has an open architecture; you can change anything that is part of Genera. In fact, we encourage you to take advantage of this and to build your applications as extensions of Genera.>Use what's there. The system provides a huge set of capabilities from high-level substrates to the very bottom-level primitives, all equally accessible.>Use what's almost there. Take what the system provides and extend it: add some operations or exploit some hooks. The Flavors, CLOS, and object-oriented programming systems were designed specifically to meet the goals of abstract data integration and extensibility.>Using Flavors or CLOS, it is possible to have several specialized versions of an existing data type that do not interfere with each other or with the original type. You can create specialized versions of data structures without having to modify any of the original source code and even without first understanding all of the original program.>Replace what's there. Major parts of the system can be (and have been) replaced by users interested in exploring research issues or enhancing performance in special situations. The open but layered structure of the software allows you to bypass higher-level interfaces in favor of lower-level interfaces. As a very simple example, you could provide an alternate file system, using documented disk access primitives.
If software doesn't exist then it can never be bad
>>106009653 (OP)Only good software are one that exist.
Only good things in life are one that exist.
>>106011139> JBlowIs this a java project? Curious as to what it does
>>106011587
>>106009653 (OP)I could say the same of the Uncle Bob guy. Dude hasn't made anything since the 80s.
the better software was all written 20+ years ago
>>106015098Yeah, ECS is only good for large games with hundred of entities.
>>106015450>hundred of entities.do you mean hundreds of thousands?
>>106015471Maybe, modern processors have a larger cache.
>>106016121older processors didn't even have a cache so ECS wasn't relevant
>>106016160Exactly, that is why OOP was dominant in the early and mid 90s.
>>106009653 (OP)>>106009653 (OP)I watched this a few days, ago, it was really just an interesting history lesson on the family tree of OOP ideas extending way back to before COBOL even. Hardly any of it was "OOP bad", it was more like "OOP poorly described and understood by everyone who advocates for it, and has been this way for half a century".
the gist should just be that desirable or convenient mental models don't necessarily lead to optimal programming models. where we went wrong is leaning more toward the former, but it's entirely possible to have both, and it doesn't matter which paradigm that ends up as.
ginger bill talk was such a waste of time. also like a 3rd easing talk this year? why?
>>106016616i like Odin but that was def a dud
>>106011842>>106015015People quickly recognized inheritance is bullshit, GOF Design patterns book (the OOP bible, 1994) was already telling people to favor composition over inheritance.
Dynamic dispatch is amazing at doing architectural boundaries but has nothing to do with inheritance. Smalltalk didn't have inheritance in its first versions.
There are some exception where a deep inheritance hierarchy may make some sense but for the most part it's a running joke, nobody really modeled their problem space in the Apple extends Fruit way (inheritance model mirroring real-world problem domain).
This whole video is basically refuting a straw-man argument.
>>106016616Indeed, it was the lamest shit. I generally like him and his thoughts. People who care about their software probably already respects mathematics as being very powerful in certain domains.
file
md5: 0c165f26a593447c88252e04d3f0bbe1
🔍
oops
md5: fec702472b2e8d8a65bd8444240ec0d1
🔍
>>106012209We already know the arguments. People have been making them since OOP was first proposed half a century ago. No one needs to watch a two hour flat earth video to be able to say flat earthers are mentally ill. No one needs to watch a two hour anti-OOP video to know what the anti-OOP points are as they've been all over the place for decades.
Your attempt at sealioning failed and you ended up looking disingenuous, which further erodes your credibility, lessening the possibility of anyone giving a shit about your whiny obsession.
>>106016616Any suggestions for him to be better? He has posted screenshots of /g/ posts to his twitter account so he clearly comes here and reads posts.
>>106016616how about you stop worhsipping these losers? these people achieved nothing, of course they have nothing to talk about.
i'm surprised there wasn't a tsoding beat box session at this conference.
>better software conference
>a fucking file browser
>1001th immediate gui implementation
>>106017958you retards say this every time. let's just ignore how he's employed at a company that uses his language to make products that most major film/game studios use.
these people are like the new group of tinker trannies, who tinker with programming instead of linux.
>>106017994So how many ragebait posts have you submitted so far?
>>106017971you have no idea how important this is
>>106009844It in fact will not run, by some 15%
>compile timeunreliable
>>106015098>system-wide oopI'm honestly not sure what does this mean, dynamic linking at runtime?
>>106018042jannies, your chatgpt-bot is schizo posting. fix it
>>106011778>ecs>flexibleare we already pretending that dense and sparse ecs is exactly the same?
if OOP is so bad, why are all operating systems written in heavy OOP style?
>>106018258>heavy OOP stylewhich ones indianon?
>>106017790>Finish your software!I feel personally attacked. I'm guilty of doing half assed shit that I wouldn't ever use twice so I end up rewriting the same shit I already half assedly solved years ago. There's also the thing that I have started writing all my software in Forth these days and code reuse is basically the antithesis of writing applications in Forth. I think however that writing good and stable domain specific languages in Forth would be the equivalent of writing libraries with stable APIs in C.
Writing APIs like in C is not something you would do in Forth, simply because you're just emulating C at that point.
I also miss the days where software was considered "complete." You bought it on a CD and it just worked and wasn't half complete like with the software projects you see being churned out these days. You see the same thing with games, they sell a buggy mess and never leave alpha testing. It's not even worth buying games on release day anymore. You're far better off waiting a few years and buying it on sale when all the bugs have long been ironed out.
Based talk, it gives a lot to think about and reflect on. Thanks for posting.
>>106016616>>106016701>>106017490He's not like them other guys in the talks who had their primary profession as a software developer for most of their career.
I'd love to hear him talk about his work as a physicist(same goes for C3 creator), about topics like quantum mechanics or chaos theory for hours and hours but since the talk was supposed to be about writing good software. He can't share low level technical details about his current work at janga fx because their product is a commercial one. I'd say he was very constrained on what he could speak about right from the start.
I'd say its still a good talk for anyone who is just starting out.
>>106017958yeah, keep on raging. Me is raughing at you.
>>106018421>but since the talk*but the talk
>>106016616>>106017912>>106018421i liked the essence of the talk. the problem was mostly in diction and storytelling, plus the intro was superfluous. there was a throughline, it just wasn't honed and communicated very well, so it felt muddied.
>tools reduce to applied mathematics>demo of a generic problem that sends you down a long rabbithole, delving through increasingly advanced topics to even begin to understand and solve>turns out with sufficient education you'd have recognized how it maps to a known math concept with existing fixes, that you pointlessly tried to reinvent (if you even got that far)>wowza moment: that same generic demo and its math apply to many fields, you don't know how useful a tool is until you run into problems it applies to
>>106011778>oop was created for code reuse, not for big team collaborationThat's basically the most important thing in the talk
>>106015098>OOP is good and enables a lot of powerful capabilitiesName one thing POO enables that hasn't been done better in a non-POO context. You LITERALLY can't.
OOP isn't inheritance, it's messages, encapsulation and late binding
>>106018625>OOP isn't inheritance>Three postulates of OOP: inheritance, encapsulation, and polymorphism.
>>106018527The idea is to assembe software from components with standard interfaces, just like in hardware. Can't design good interfaces? That's a you problem.
You don't see people complaining about hardware OOP. Learn to code, learn to design interfaces.
>>106018651nah, that's the POOP
>>106018625>it's messages, encapsulationIn most POO languages "messages" are just syntax sugar for crippled single-dispatch polymorphic function calls. Most POO projects intentionally break encapsulation all over the place: if you have getters and setters, you are breaking it.
>late bindingPOO mostly limits this to its gay object model.
>>106018672Well I guess C++ is POOP
>>106018651Stop thinking about it as "inheritance". It's just a composition optimization
class Apple : Frut
is the same as
class Fruit {
AppleStrategy strategy;
}
>>106018709Then stop thinking about POO as POO. It's just poorly done procedural programming with syntax sugar over structs and function calls.
>>106018709class Apple : Frut {
override Color FruitColor => Color.Red;
}
class Fruit {
FruitStrategy strategy;
Color FruitColor => strategy.FruitColor;
}
class AppleStrategy {
Color FruitColor => Color.Red;
}
>>106018721CPUs are just poorly done SoC.
>>106018736Why would want to separate motherboard and CPU huh? Seems like stupid POO idea. x64? Who need that inheritance.
>>106018736>when brown people try for an analogy
>>106018270linux, all BSDs
>everything i agree with is OOP
>OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.
-Alan Kay
>>106018866Smalltalk's take on OOP is the only honest OOP. Alan Kay had an actual philosophy behind what he was doing. But that's not what real-world POO is. Real world POO is summed up here
>>106018678
>>106018891erlang and process-oriented unix both comply with that OOP definition.
OOP, like c++ and JS, is used a lot so it's complained about a lot. If FP was used more frequently, it would be complained about more frequently.
>>106018911>everything I agree with is OOP again
>>106018920I know it's counter-intuitive, but Erlang is secretly Alan Kay's definition of OOP, despite veing functional PL.
Alan Kay was really mixed on concurrency of objects. His initial design was that objects were concurrent and method calls were asynchronous. Nowadays we would call it an actor model.
But later he gave up on that
>>106018973I don't know enough about Erlang to argue about it. I guess anything with a focus on distributed computing is naturally amenable to message-passing and encapsulation in the proper sense. But giving Unix or Linux as examples of OOP is pure cope. On some level there's an object model at play but to say the actual code follows POO design principles would be a lie.
>>106009653 (OP)>Is real software automatically bad by just existing?Pretty much, yeah.
Truly good, quality software is but a pipe dream.
>>106011139You can get in the closed beta for free if you send him an email.
Retard.
>>106019021Haskell was ahead of is time by realizing we all just want to fuss over pipes, no one wants actual code that accomplished anything - that would ruin the illusion of perfect code.
>>106018891Kay is a delusional brainlet that has changed his definition over time to suit the trends. His versions of Smalltalk abused inheritance everywhere and was full of Clean Code tier garbage. Stop falling for dumbfuck boomers trying to rewrite history.
>>106020324back the fuck up people, future Turing award winner here
>>106020324>the least retarded version of OOP is still badOk.
Are you saying that reusable components like list, map, http client, file stream etc are bad?
>>106020662>everything I agree with is OOP
>>106020662plain objects to hold data
and functions which accept them as input
Why do OOP normies think they have a monopoly on passing an opaque data type as a function's first argument?
>>106020708But OOP allows polymorphism. You can write one function that accepts either file stream or http stream. Is that bad too?
You can use templates, but they have limitations. For example you can't store abtract stream object as a struct member. With OOP you can.
>>106020835>But OOP allows polymorphism. You can write one function that accepts either file stream or http stream. Is that bad too?You don't need OOP for polymorphism and yes, the OOP way of doing that is bad.
>>106020835>You can write one function that accepts either file stream or http streamMy function probably just wants to write or read some data. It really doesn't want to know anything about your specific, perfect, entirely infallible brand of Stream base class/interface that has never been tried before.
>>106009844>I imagined what it probably sounded like. it's so easy to win an argument, anon! good job
>Too bad I'm busy writing actual software.kek
>ok, next... uuh... move login button 3 pixels to the left... anon?>that will be a... 3? maybe a 5? does anyone have any experience with the login page? yeah? 3? ok, a 3>ok, anon, good stuff. next...I imagine you do!
>>106020843You don't need C to write programs. Assembly is fine.
The point of OOP is the ability to replace 1000's lines of code with 100's lines of code.
>>106021009You function wants to write "fizzbuzz" to the console. That's the only thing you ever programmed.
>>106021380Your crippled version of polymorphism makes me write more code than the alternatives, though.
Oops, sorry. You're probably developing a file browser, or imgui library, or, dare I say, B compiler?
>>106021397>no counter-argumentsounds like you got btfo
>>106021165Since not following advice from low level phonies, I have *finished* multiple phone games in modern C++ using its features that are convenient. They always run at maximum possible FPS (vsync is forced on Android) and are GPU bottlenecked, not CPU.
>move login button 3 pixels to the leftThis is how any gui programming usually goes unless you are a FOSS developer and don't give a shit about designing a polished experience.
>>106021445>phone gameskek
>>106021500>A 600 part series on how to render 3D wireframes to the screen is better than a finished commercial phone game.You are all delusional.
>>106021548>hallucinates things that weren't mentioned or implied anywhere>makes shitty phone games>thinks he's some expert programmer>calls other people delusionalOOP isn't sending its best people
>>106021548>designing APIs>code architecture>solving problems>platform independence>tackling platform services to get the best out of them>lighting>obtaining performance metrics>render 3D wireframes to screen
>>106021589Your hundred unfinished projects don't make you an expert programmer either.
Required viewing of https://youtu.be/gfv_hLUOyRc. This guy sums up all my critiques quite well. Video games have always been programmed shitty, even Carmack didn't write his sound player, etc...
>>106021648My games have all of these, but done in like a 10th of the time. These things aren't rocket science. Every non-retard can already do these things by intuition.
>>106021648>Optimizing workflow efficiencies>Maintaining automated system capabilities>Leveraging scalable infrastructure solutions>Enhancing data-driven decision frameworks>Streamlining agile development processes>Synergizing cross-functional team synergies>Empowering user-centric innovation paradigms>Disruptive digital transformation initiatives>Integrating cloud-native architectures>Boosting operational resilience metrics>Facilitating seamless integration protocols>Amplifying machine learning insights>Refining algorithmic optimization strategies>Cultivating ecosystem-wide collaborations>Accelerating iterative deployment cycles>Fortifying cybersecurity posture enhancements>Harnessing big data analytics pipelines>Pioneering blockchain-enabled transparencies>Elevating API ecosystem interconnectivity>Championing sustainable tech stack evolutions
>>106021680>continues hallucinating things>still thinks his shitty little mobile game is an example of groundbreaking software engineering
>>106021697Finished software is groundbreaking compared to non-existing vaporware, so yes!
>>106021740get a job or something, retard
>>106021680>unuronically posts xher vlog of xherself having a richter 9 clitty leak over le internet coding menJesus christ zoomers are beyond saving
>>106021744You think this Casey guy is employed? Their income is entirely based on being an eceleb and selling courses.
>>106021751This isn't my channel, just the only guy on youtube who doesn't seem to suck jblow and casey dick all day, unlike the screetchaegen, tsoding and many others.
>>106021822sorry javeet but i don't see how your shitty little phone game stands out from a trillion other finished jeet games
>>106021841You mean business-oriented linguistic proficiency.
>>106021680>links his channel>don't believe X e-celeb, instead listen to me
>>106021680>big blue frontendWho is this retard and why should I care what he says? Webshit isn't real software.
>>106021842You clearly have never been employed before if you type shit like this. Writing "hello world" in C or copy pasting a handrolled hashmap from chatgpt every day doesn't make you a programmer. You better have tangible projects on your resume if you do in fact consider getting a job.
>>106021905Ah yes, below 1k views is considered an eceleb. Still not me though, I just typed Jonathan Blow in recently uploaded one day and found this schizos rant mildly entertaining.
>>106022164sorry, javeet, but i still don't see how finishing a mobile game is something to brag about, considering what's on the app store and what kind of people name those apps
>>106021683Ok milhouse, now show us the software you built following the paradigms you learned.
Oh, those paradigms make it functionally impossible to actually finish a piece of software because they introduce so much overhead that the project topples in on itself at the half way point, every single fucking time?
Thats a shame.
>>106018258>if OOP is so bad, why are all operating systems written in heavy OOP style?Most of them are not, except for operating systems that are specifically written in OOP languages like Genera, Mezzano, Oberon, Smalltalk, and Haiku.
>>106018784>linux, all BSDsDrivers and programs don't make something OOP, otherwise MS-DOS and every other OS is OOP. The idea of an OOP OS is that everything is an object. Drivers are just objects and follow the same rules as any other objects, not something special that's part of a kernel. If you've used an actual OOP OS like Mezzano or Genera, you'd know there's a huge difference from mainstream OSes.
>>106022195What software is considered worthy bragging about according to you? I only make mobile games because they are small enough in scope to reasonably finish within my own game engine. Some dumb indians or pakis actually give me some ad revenue.
>>106022263>replies to ChatGPT
>>106022390>What software is considered worthy bragging about according to you?make a real game or something, that would be acceptable
>>106022422So unlike handmade hero? Got it!
>>106022435i don't understand your gay references. call me back when you make a real game instead of a mobile one and be sure to show your shitty OOP code so everyone can laugh
>>106022164>Still not me thoughsure
>>106022475>i don't understand your gay references. call me back when you make a real game instead of a mobile one and be sure to show your shitty OOP code so everyone can laugh
>>106020835polymorphism is gay
>>106022520Polymorphism is based. POOlymorphism is gay.
>>106009653 (OP)To those people, theoretically perfect software that doesn't exist is better than flawed software that does.
>>106022562>you should continue using a shit paradigm because it was used to write software that exists and any improvements over it are for software that doesn't exist yet
>>106018911>erlang and process-oriented unix both comply with that OOP definition.Unix processes have nothing to do with OOP that doesn't apply to any multitasking OS. Unix trannies stretch words until they become meaningless.
>>106021380>You don't need C to write programs. Assembly is fine.C sucks and was worse than existing languages. OOP is older than C too. Simula 67 and Smalltalk are older than C.
>>106022714Somehow this is actually true. Are you saying web and ai shit are better? They stopped using OOP a long time ago.
>>106018625Watch the video. He discusses this topic and everything else about OOP.
>>106009844Great way to show that you didn't watch the video. He shows how he isn't against this, he is only against how it's implemented in languages like java. The shows that the earliest usage of OOP was different and it was better, with advanced pattern matching for object types
okay guys I'll bite - can someone explain to me what is the issue with OOP? NO, I don't mean the overcomplicated retarded AstractSingletonProxyBeanFactory-type Enterprise code, but the basic ideas of OOP.
So it's been some time since I learned it, but if I remember correctly, it's that you group relevant data and methods together into objects, define what properties an methods are private to it, and what are accessible from the outside. Add inheritance+polymorphism to it to extend the functionality of certain classes, while still allowing them to act as their base classes, and bam, you have OOP.
What is exactly wrong with this approach? There are plenty of usecases where this makes perfect sense, no?
>>106023323No OOP hater has ever been able to answer this question, including Casey Muratori
I always ask it whenever the topic comes up on /g/, the only response you will get are strawmen and personal insults
>>106023318I literally said I didn't watch it. Do you fail at reading comprehension?
>>106023323>explain to me what is the issue with OOPThe root issue with OOP is that complex software doesn't map neatly into any intuitive object model and yet this paradigm constantly baits you into making the mistake of assuming that if something makes sense as an object in your mind, it also makes sense as an object in your code. The resulting design tends to be antagonistic towards the actual data-processing needs of your software.
>>106023433thats not what he called 'the basic ideas of OOP'
>>106023449The basic idea of OOP is that you should frame your problem in terms of objects. What he talks about is mostly downstream from that.
>>106023484So you aren't even answering his question
>>106023484>What he talks about is mostly downstream from that.No it's not, being able to use objects doesn't neccessitate you need to use objects in any particular way
>>106023497He asked to explain why OOP is shit. I did exactly that.
>group relevant data and methods together into objects, define what properties an methods are private to it, and what are accessible from the outside. Add inheritance+polymorphism to it to extend the functionality of certain classes, while still allowing them to act as their base classes, and bam, you have OOP.That all falls under "frame your problem in terms of objects" which my criticism addresses. Thanks for demonstrating the intelligence level of the average POOmoneky.
>>106023433>>106023484sorry if it's a brainlet question, but can you give me an example here pls? so what would be a complex system that shouldn't be framed in this object-based paradigm?
dead serious question, just trying to expand my knowledge
>>106023522See
>>106023561, especially the part about members of your cult being uniformly retarded and demonstrating it with every reply.
>>106023561You are essentially saying that hammers are bad because not all problems are nails, and he is asking what the problem with hammers are
>>106023578lmao I'm right yet again
>>106023350
>>106023567Take a multiplayer FPS game for example. The normal OOP approach would have you define position, orientation, animation key-frames etc. as game object properties. Then when you need to do delta compression, interpolation, extrapolation etc. you either have to manually implement them for all the relevant fields or use complicated macro hacks to automate it. A much simpler option is to store the properties in plain arrays, externally to the game objects, and simply iterate over the arrays to implement all the aforementioned features.
>>106023843>A much simpler option is to store the properties in plain arraysIt's not much simpler chud, then if you need to add new properties you need to modify code in an external system.
>>106023592>You are essentially saying that hammers are bad because not all problems are nailsI'm saying object-oriented programming is like hammer-oriented dentistry. You can use a claw-hammer to pull out teeth but you probably shouldn't.
>>106024132>if you need to add new properties you need to modify code in an external system.You don't, but even if you implement it in a way where you do, it would be far easier and less error-prone to add a new pointer to the list of arrays that need to be processed than to fix a bunch of methods.
>>106024140Modelling things as objects is good for some tasks
Saying objects aren't good for anything would be extraordinarily delusional
>>106023843yeah, that makes sense, I think the key point then is the usecase. For calculation-intensive tasks, especially for operations you run each frame or something, OOP really can put a ton of overhead even if the compiler optimizes the shit out of it. And you make a good point, the computer surely likes your solution more than using players as gameobjects with properties. But for less data-intensive workload, where the high-level design is more important, I'd still pick OOP because...
>>106023433>something makes sense as an object in your mind...because we humans like to group things in boxes. And that makes it easier to structure the higher-level functions of the application. (unless you over-boxify shit and end up with the before mentioned enterprise mess) I guess it really is about using the right tool for the right job.
>>106024313"Objects are good for some things" is a non-point and doesn't refute anything I wrote. The main thing objects seem to be good at is making programmers conflate their mental model of the problem domain with a viable architecture. Other than this disgusting practice (which is not only encouraged but posed as a major selling point for the paradigm) no one knows what OOP is good for. People just like the dot syntax sugar.
>>106024445>doesn't refute anything I wroteYou said the tool was inappropriate for the task
Objects are an appropriate tool for many tasks
>>106024331>yeah, that makes sense, I think the key point then is the usecase. For calculation-intensive tasks, especially for operations you run each frame or something, OOP really can put a ton of overhead even if the compiler optimizes the shit out of it. And you make a good point, the computer surely likes your solution more than using players as gameobjects with properties. But for less data-intensive workload, where the high-level design is more important, I'd still pick OOP because...You totally missed the point. The efficiency consideration in this case is a secondary. The main advantage in that example is maintainability. The way this goes over your head and you're immediately back to parroting some talking points about how people like to think with objects and how it's an easier "higher-level structure" proves my point that OOP is a mind disease.
>>106024500You're too low-IQ to understand a fairly simple post and I can't help you. "Objects are appropriate for many tasks" is a meaningless mouth noise. "Object-oriented programming is appropriate for many tasks" is demonstrably false for the reasons I've outlined.
>>106024555The whole premise of this is objects - data types with associated functions. He asked why it was bad. You can't give an answer to this, so you say it's meaningless and shift to "object-oriented programming" instead
>>106024524>mind diseasestrong words. it's difficult to think outside the 'box' (heh), when OOP-s idea is to mimic the human way of thinking. Even you said that it may make sense to make objects in your mind, but that doesn't make sense for the computer. I'm not exactly seeing how putting object-related information into large fucking arrays make code more maintainable. It makes the code more performant but not necessarily more readable and maintainable.
>>106024524>A switch statement of 1k loc for my megastruct is totally maintainable, also look at my 5 layers of indented if-else statements.Nta, but you sound like these kinds of people. I have never seen an understandable C or procedural codebase that isn't just a toy program.
>>106024634Think about the example I gave some more. It would be like the difference between manually maintaining serialization and de-serialization methods for objects (except you have like 4 different variants and they're doing more complicated things that simply reading/writing data) and implementing 4 algorithms that loop over some arrays.
>>106024723Your example has nothing to do with OOP
>>106024590I gave an answer and it stands no matter how much you keep chanting otherwise with your fluoride stare.
>>106024730>the deficiencies of the OO approach to a modeling problem have nothing to do with OOPYou're in a cult. Seek help.
>>106024754>I gave an answerYou haven't given an answer to his original question - he asked why objects were bad and why encapsulation was bad. You shifted the discussion to something else, and when pushed to answer the original question you can only come up with insults
>>106024780The example you gave is terrible. Things become easier to serialize if they're stored in an array instead of a field? No they don't, either way you need to know what properites an object or entity contains, and the automation of this has nothing to do with OOP
>>106024856The second half of your post shows that you're objectively which kinda confirms out disagreement stems from your deficient understanding.
>>106023843>you can't use a hammer to screw in a screw therefore hammers badhow about implementing file and http stream as plain arrays? why do your examples only work one way?
>>106024894Once again, you can only come up with insults. Your example was very vague, you didn't even define a problem, you defined half a problem and said OOP sucks at it. I know what kind of problem you're trying to get at, and that problem can be solved in a hundred different ways and has nothing to do with OOP
>>106024894objectively retarded*
>>106024908>how about implementing file and http streamOOP doesn't have a monopoly on opaque data types.
>>106024998Now you're backpedalling from "OOP is bad" to "other options work too"
>>106024998He's one of those OOP advocates that now defines it as:
> data types with associated functionsThese people aren't even worth engaging with because their definition is so broad that it includes basically every paradigm in existence.
>>106025061>their definition is so broad that it includes basically every paradigm in existence.No, it's unique to OOP, that's what an object IS
>>106025005You were pretending OOP has some advantage for that task when it offers none whatsoever. If anything, it ends up being worse. See
>>106021009
>>106025091>You were pretending OOP has some advantage for that taskNobody said that
OOP is good for some tasks, the task of serializating data structures is a task which can be done well in any programming paradigm so it's a bad example to use
>>106025110You're clearly mentally ill and I'm not wasting more time on you.
>>106025077The only unique aspect of OOP at the time of its conception was implementation inheritance and that turned out to be a terrible idea that even Kay and his surrounding sycophants have backed away from.
>>106025127>can't come up with an argument>scream and throw a tantrumevery fucking time
>>106025130The unique thing about OOP is objects, hence the name
No other programming paradigm uses objects
>>106025142Multiple arguments have been presented and they still stand unchallenged. Samefag harder.
>>106025176Every time I challenge your arguments you just throw out an insult and leave it at that
You can't actually argue, you can present your thoughts and you can insult people, that's it
>>106009653 (OP)the quest for the perfect code is retarded, it does not exist, any code written turns immediately into a burden, that's a fact of life, the only thing that matters is releasing products, you can then spend time microoptimizing your shit.
he is allegedly good at software architecture, now he should be able to write code that is easy to discard or improve (ie the only kind of good code) and release something that people wants to use.
crazy how yakitori and blowjob, self-proclaimed mysanthropes can't deliver anything worth of value, quite ironic.
>>106024723void SendData() {
foreach (var player in players) {
CollectPropertiesToArray(player);
}
CompressAndSendArray();
}
void ReceiveData() {
ReceivedAndDecompressArray();
foreach (var item in array) {
ExtractPropertiesIntoPlayer(item);
}
}
>>106025228>he is allegedly good at software architectureHe isn't
I paid for and downloaded Handmade Hero, it doesn't have a software architecture, it's just a small project with barely any organization at all
>>106009844OOP being total dogshit is because of the tight coupling and the fact it does nothing helpful except satisfy OCD retards' need for pointlessly controlling and categorizing everything. The fact it usually has performance overhead too is just icing on the dogshit.
>>106025268"tight coupling" only comes out of misusing inheritance
>>106025242Now let's see you implement this for all the properties and relevant classes.
>>106025228>the quest for the perfect code is retarded, it does not exist, any code written turns immediately into a burden, that's a fact of life, the only thing that matters is releasing products, you can then spend time microoptimizing your shit.
>>106025279>Communism is only bad when it culminates in starving millions of people
>>106025156Structs and records can be considered objects and unified function call syntax existed before OOP.
>>106025337talk is cheap, show us your perfect code
>>106025367It's very easy to not misuse inheritance, I'd say the majority of OOP projects qualify
>>106025397>I'd say the majority of OOP projects qualifyYou have terrible taste then and are probably brown.
>>106025377>Structs and records can be considered objectsNo, only if they have functions associated with them, that's what makes them an "object"
>>106025410It's got nothing to do with taste
>>106025411A function that takes a struct as an argument is associated/dependent with the struct. There's no meaningful difference.
>>106025430Bad taste has everything to do with being brown. If you like OOP, that's definitely due to bad taste (and brownness, in your case). Quite simple really.
>>106025442The OOP way is actually worse in most languages because there's now two difference ways to call associated functions and one is only available to the original author of the "type."
>>106025442I suppose so
OOP just takes this concept and builds design patterns around it
>>106025442This. C has methods. Anyone that thinks otherwise is brown and/or low IQ.
>>106025337Do you think your users will care if your code is some magical fairy playground catered to your specific high level of autism? Real code is messy, but it works.
Imagine having an ideology so retarded that anything can be construed to fall under its umbrella with some subjective mental gymnastics. Now imagine thinking this speaks to the virtues of your retarded ideology.
You now have a glimpse of the OOP fag's mind.
>>106025601>Do you think your users will careThey'll care about the resulting lack of bugs and extremely low latency, yes. I'll run circles around your slow as molasses pajeetware and
>b-but sir, developer productivity is paramount sir!!!!excuses.
>>106025627>completely mindbroken by the definition of an objectwait till you hear about functional programming
>>106025601Until it doesn't.
Microsoft is struggling so much with improving Windows because over the years its source code became an unmaintainable mess no one understands (and those who did, at least partially, are now retired).
>>106025643>I'll run circles around your slow as molasses pajeetwareYou haven't written any software
Don't ask me how I know
>>106025627>an ideology so retarded that anything can be construed to fall under its umbrellaThat's literally the status quo of modern "OOP", lmao.
>uhhh OOP is like uhh
>when there's like
>uhh
>structs and functions
>>106025669Name 10 programming books.
>>106025690Object - structure with associated functions
OOP - programming design patterns that concern objects
>>106025690>Didn't quote any posts because refusing to give well deserved (you)sI accept your concession.
>umm OOP is like uhhh
>when you think about structs and functions and stuff
>and uhh
>there's like
>patterns in your code
>>106025716>Ummm uuuuhhhhhh. w-why?I accept your concession, nocoder.
>>106025745You didn't ask what programs I had written, you asked what books I had read
Lmao
>>106025739Yes. You're starting to get it Babesh.
>>106025643They won't care if your software is vaporware and hasn't reached alpha yet.
>>106025663Yes, your personal code is at the same scale of Microsoft.
>>106009653 (OP)this guy and jonathan blowjob are both huge retards if you actually have a job, everything they say only applies if you're a neet talking shit on a forum somewhere
>>106025627>>106025682It's all just boomers trying to rewrite history so they don't look so retarded. Kay used to jerk off about implementation inheritance 24/7 and all of his versions of Smalltalk abused it about as much as humanly possible. Now that implementation inheritance is universally accepted as a terrible idea they try to redefine OOP as "data types with associated functions" or "message passing" which encompasses basically every language ever created.
Dijkstra was right and all of these people were/are unprincipled brainlets.
>>106025758>My coding penis is bigger than yours, so my inane ramblings are right.>Source: trust me bro
>>106025802Imagine thinking that Alan Kay is the guy talking to you in this thread mindbreaking you with simple definitions of what an object is
>>106025807>>My coding penis is bigger than yours, so my inane ramblings are right.That's how it works, yeah
>>106025820>Imagine thinking that Alan Kay is the guy talking to youNobody thinks this. You OOP freaks are even dumber than previously thought.
>>106025807>My coding penis is bigger than yoursbased. nocoders should avoid any programming thread on /g/.
>>106025858You literally took my simple definition I just gave you and tried ot make it part of some grand conspiracy
You cannot think and reason about the smallest of things, all you have are feelings, you must be a terrible programmer
>>106025787Slinging corpslop and getting paid for it doesn't prove much. Rappers get paid 1000x what you make just for mumbling. There's a whole industry where people get referred to as "JavaScript Engineers" and no one in the room laughs.
The OP made me realize that most of the programmers I know have never made anything either. I've been working as a software engineer for over 10 years at multiple companies. Even the few that do make something on their own never make anything useful or novel.
ITT: the usual suspect boring trolls. Can someone make a good shitpost already?
>>106025924>Slinging corpslopThis is a coping mechanism for unemployed retards who have been programmed by memes to add 'slop' to every other word. There are people who are productive and shipping things, and there are people sniffing their own farts, and Jonathan is taking a deep breath.
>>106026043>I turn up every day and do exactly what Mr Goldstein tells me.>I demand some respect and appreciation.Shut the fuck up, wagie scum. Go fix the build you broke last night and don't show your face until you're done.
>>106026084>oh yeah, well you get paid!>plus something something stein berg and so on!Yes, can't imagine why everyone better than you ignores your sage advice...
I program in Java at work and that's fine by me. Can even be quite cozy at times. We upgrade to the latest LTS quite fast. I am just a simple programmer
>>106009653 (OP)>>106009844If you can't finish a project, you teach
>>106015098the real problem is corporations growing headcount and not having the right type of people and monetary incentive to create good software, your patterns don't matter if you are buried in useless requirements from non technical people
>>106026120>I'm better than youGrade A trolling there, champ. Mommy must be so proud.
>>106026277>I program in Java at work and that's fine by me. Can even be quite cozy at times.
>>106025513>The OOP way is actually worse in most languages because there's now two difference ways to call associated functions and one is only available to the original author of the "type."You're confusing OOP with C++.
>>106026496OOP is a meaningless word at this point, but C++ is shit and so is every other language that's billed as "OOP" or "multi-paradigm".
>>106025442>A function that takes a struct as an argument is associated/dependent with the struct. There's no meaningful difference.The meaningful difference is that with OOP, you do are not limited to the exact type of the struct that was there when you defined the function. You can have generic operations that work on anything that implements that method. For example, if you have a document containing objects, you can have methods that show the object on the screen, and it will work for any kind of object. You can add your own objects with your own methods.
ITT:
>MUHHH LABELS
>MUHHH 10 IQ SHITPOSTING
/g/ truly is dead.
>>106009653 (OP)Me chupa la pija lo que diga el mogólico de Casey.
>>106023433>The root issue with OOP is that complex software doesn't map neatly into any intuitive object model and yet this paradigm constantly baits you into making the mistake of assuming that if something makes sense as an object in your mind, it also makes sense as an object in your code./thread
>>106023323There's no issue with OOP. Some people just can't wrap their heads around it, and they feel that they have to use all features of the language for some reason instead of what's needed for the job.
>>106027660>Some people just can't wrap their heads around itamazing level of delusion
>90% of the posts pointless because no one is consistent with OOP definition unless it's totally nebulous and encompasses everything
>>106026558You can do the same thing with traits, typeclasses, OCAMLs functors or interfaces. Polymorphism is not unique to OOP.
>>106009791>maybe watch the presentation? are you retarded?It's a 2.5 hour talk, the thrust of which seems to be
>Ivan Sutherland's sketchpad was implemented closer to an ECS than OOP, therefore, OOP is a mistakeIt's a form of gish gallop/concern trolling
>oh, you didn't to watch the entire 2.5 hour talk?>then your opinion is invalidMeanwhile Casey is a millionaire (from his parents money plus Jeff Roberts's RADbux) NEET with all of the time in the world to develop software, yet he's finished nothing on his own in 15+ years.
>>106023323You know that you are building a mindmap in data right? But data programming is just data that is in no particular connection other than incoming and outgoing.
Doing anything more than parsing and changing data inside of operations of said data is unnecessary overhead and just abstraction for no reason at all.
>>106029354The thrust is that every generation of OO claims to be based on ideas of the previous, but none of them have actually produced any of the benefits that they claim they would, at which point they turn around and claim
>real OO was never triedand it turns out that there's just fundamentally better ways to structure programs.
The actual talk is a little over 1h, the rest is Q&A and discussion. Watch it and respond to what he actually says or just admit you're a dickless shit-stirrer.
>>106029509>>real OO was never tried
>>106027976well it only shows you 90% of this board has zero professional experience and hearing OOP only sees inheritance and AbstractActorClassLoaderSubscriberInstanceFactoryImpl extends Car
The way POOtards uniformly avoid engaging with valid criticism speaks for itself. It's a cult.
I don't understand, ECS is also OOP design but with encapsulation boundaries placed in a different place to match the problem. That's what you do when modeling any domain in OOP.
Are C-niles retarded?
>everything I agree with is OOP retort #10 ITT
The way POOtards uniformly avoid engaging with valid criticism speaks for itself. It's a cult.
>>106031891you really need to stop blaming the tool for your lack of skills
>>106025332void CollectPropertiesToArray(Player player) {
array[index++] = new PlayerData {
id = player.id,
position = player.position,
yaw = player.yaw,
pitch = player.pitch,
weapon = player.weapon,
action = player.action
};
}
>>106032007Very nice! Now do this for all the other types of objects. By the way, I don't recall stating that all the game objects are neatly stored in a single array and never change positions within it.
Here's an exhaustive complete list of POOtard arguments:
- It wasn't real OOP
- You don't understand OOP
- Bad OOP is just a skill issue
- You have structs and functions so you're also doing OOP
- Why are objects bad?
>>106032283interface INetworkObject {
void Serialize(BinaryWriter);
void Deserialize(BinaryReader);
}
>>106032471>i broke the bot
>in the second year of development cycle
>decided to add breaking change feature
>can't fit it into hardoced tightly packed data structures
>must rewrite entire engine from scratch
probably the story of "handmade hero" development
>>106032307New POOtard argument dropped:
- What about my random e-celeb fantasy?
>>106032480Your network layer doesn't need to know about "player" or other game specific objects.
>>106032516You obviously ran out of context window. See
>>106024723>t would be like the difference between manually maintaining serialization and de-serialization methods for objects (except you have like 4 different variants and they're doing more complicated things that simply reading/writing data) and implementing 4 algorithms that loop over some arrays.
>>106032523>4 magic arrays that magically contain all serialized data.
>>106032572You literally sound like a broken bot and the point still stands completely unchallenged. Even your attempt to emulate the non-POO approach using POO just degenerated back into manually managing the issue for every relevant type of object.
>>106009844First half is just him going over historical documents and papers to dig up what the original ideas behind OOP and OOP concepts were. It's worth watching even if you don't care about anything else. He dug up lots of stuff he'd never heard of before and that seemingly no one remembers.
>>106032587how do you manage it "automatically" then? does the data just appears in arrays? you have no idea what are you talking about.
with OOP i can actually write a framework that automates the whole process for every new object without me writing a single line of code.
>>106032864https://unrealcommunity.wiki/replication-vyrv8r37
>>106032864>does the data just appears in arrays?Are you actually retarded? The arrays are where the "properties" are read from/written to in the first place. That's the whole point. If you organize your data in a way that facilitates what your program actually does, instead of facilitating some retarded object model that "feels intuitive", you don't need to worry about how to collect the data for processing.
>>106011842>no one actually wrote inheritance hiearchies like thatyou should continue watching
>>106018659introducing fragmentation in your code base purely for some abstract goal of object orientation just adds friction.
like micro services.
You can basically implement anything in an uncountable number of different ways.
OOP sucks cause implementing anything with it properly is exponentially more effort and harder to do than doing it in a more procedural way.
And doing it half-hearted also produces poor results.
>>106018625late binding is actually something that would be extremely useful occasionally to express certain operations more naturally.
However popular OOP-pilled programming languages like C++, Java, C#, only enable 'late binding' via abstract classes or interfaces, which is so verbose and restrictive to render it unhelpful.
>Schroedinger's POOPer: OOP is simultaneously only SmallTalk while also being literally everything.
>>106033136Saar? Why is object bad, saar?
>>106032882You can't just send the array of your raw components data over the network. At bare minimum you need some system to convert data to network friendly format, send only bits that are actually required etc. So your toy example is already starting to fall apart.
>>106033361You legit sound mentally ill. Full disconnection from reality. Zero relevance in your post. I don't know what to tell you at this point.
>>106019012the linux source code is full of ad-hoc OOPism. this retard doesnt know shit
>>106033483>everything I agree with is OOP...uh..."ism", OOPism
anyway, read the whole thread. this guy
>>106033516 has made himself an absolute clown.
>>106023433>The root issue with OOP is that complex software doesn't map neatly into any intuitive object modelthis is just a massive bullshit. OOP led to software boom by making individuals and enterprises write much more complex software then they could with huge blobs of procedural code all over.
>>106024590nocoders are retarded. procedural ans oop are not polar opposites. it's declarative-procedural and oop is a syntactic sugar over it. includes/links with extern static variables in C are basically objects.
>>106033645>people wrote lots of POOP codeAnd? Not seeing any refutation in your post.
>>106033662how do you expect a lot of code (both in amount and complexity) to be written without them being easy to develop and maintain? some people here are just so massive retards you wonder if they're trolling
>>106033685>how do you expect a lot of code (both in amount and complexity) to be written without them being easy to develop and maintain?In retrospect many people now admit that POOP software was not easy to develop and maintain.
>>106033740>many people now admitthose many people are in the room with us right now? I guess you have no anecdote, since you make it so obvious that you haven't written any software in your life
>>106033645>OOP led to software boom by making individuals and enterprises write much more complex software then they could with huge blobs of procedural code all over.there's no evidence to support it
>>106033766if you're a massive retard. there are evidences for even the lifeless who f5s 4chan 24h of the day. andreas kling guy (who himself used to browse here) wrote a fully functional and modern OS from scratch with C++. all thanks to modularization through object abstraction and dividing complexities.
Updated list of POOtard arguments:
- Lots of complex software uses OOP; most of it is badly written but it would be worse without OOP (just trust me, bro)
- Everyone who questions my cargo cult is jobless (it's real in my mind)
- But what about Joe Blow?
- It wasn't real OOP
- You don't understand OOP
- Bad OOP is just a skill issue
- You have structs and functions so you're also doing OOP
- Why are objects bad?
samefag spammer really likes to get humiliated huh
Literally not a single attempt in the entire thread to demonstrate the supposed merits of OOP or defend it from criticism, beyond pointing out that lots of bad software has been written in it.
he really enjoys showing people how much of a retard he is by repeating himself like a parrot. it's phenomenal.
>>106033831>if you're a massive retardyour seething has been noted
>wrote a fully functional and modern OS from scratch with C++if it's meant to be an argument for OOP enabling programmers to write complex software, you should check out a project called Linux
>all thanks to modularization through object abstractionmodularity is not an inherently object oriented concept
in fact, it was introduced by a procedural language
but going back to your previous point - there was plenty of large-scale large-complexity enterprise software written in non-OOP languages, such as Ericsson AXD301 which ran over 1 million lines of Erlang
>>106033865You can create a stream abstraction and treat a local file and file from http server as same object.
>>106033966>You can create a stream abstraction and treat a local file and file from http server as same object.But why would I want to use your shit-tier POO abstraction when there are many superior non-POO to accomplish the same without the limitations and ideological baggage?
>>106033966Or skip that and just call read(2) and write(2)
>>106033902>if it's meant to be an argument for OOP enabling programmers to write complex softwarecomplex software with less cognitive load, thus time and effort.
>you should check out a project called Linuxandreas kling is a random nobody with no particular education or interest in OS development until serenity. Linux kernel is being developed by multibillion corpos probably since before you born. It feels like I'm talking to a 12 yo with how retarded the arguments I'm hearing are.
>modularity is not an inherently object oriented conceptneither I said it's the only way to modularization. god, it's cringe.
>1 million lines of ErlangI'm not here for OOP superiority over everything. I don't know which anti-oop retard made it up. FP has some good merits. formal theorem proving is usually done in functional way in FP languages. still I believe OOP is best for modeling real world scenarios with lots of mutating states and adding formal safety to them
>>106014813hold data of different types
have logic within its own scope rather than global
>>106034030>>106014813have its own abstract states and pre/post-conditions and invariants. it's basically a microservice at code level
>>106034006cont.
>Linux kernel is being developed by multibillion corpos probably since before you bornnot to mention that I already 'said' Linux source code is full of ad-hoc OOPism.
>>106033840all complex software use oop. linux has a weird implementation of objects. gnome, gtk, ... are relying gobjects which is also a weird implementation, windows and COM, ... the people who are truly against oop are the functional purists with their ADTs but there is not a single relevant complex software that they have made.
>>106034077>- Lots of complex software uses OOP; most of it is badly written but it would be worse without OOP (just trust me, bro)>- You have structs and functions so you're also doing OOPI already listed your argument.
>>106034098an object is not that. a structure with pointers to procedure has no encapsulation (the pointers are data too). if you had learn about interface abstraction techniques (design patterns), you would have known that encapsulation is the most important.
>gets assblasted
>goes to reply to another post
holy shit this guy
>linux is heckin' OOP ok???
Mental illness.
>>106034131https://lwn.net/Articles/444910/
https://lwn.net/Articles/446317/
>>106034146The large variety of styles of inheritance and rules for its usage in languages today seems to suggest that there is no uniform understanding of what "object-oriented" really means. The term is a bit like "love": everyone thinks they know what it means but when you get down to details people can find they have very different ideas. While what it means to be "oriented" might not be clear, what we mean by an "object" does seem to be uniformly agreed upon. It is simply an abstraction comprising both state and behavior.
Yes, this argument is already covered:
>- You have structs and functions so you're also doing OOP
>>106034077>the people who are truly against oop are the functional purists with their ADTs but there is not a single relevant complex software that they have madeit's either that or nocoders with dunning kruger
>>106034165an object is a data abstraction technique where the data (the attributes) is hidden under a set of operations (the interface). unlike ADT, an object is bound to its interface.
www.cs.utexas.edu/~wcook/papers/OOPvsADT/CookOOPvsADT90.pdf
>>106034165kek the classic
>post an article as proof without reading it>it directly affirms the opposing view
>>106033994linux "everything is a file" is a POO
>everything i agree with is a POO
>>106034006>complex software with less cognitive load, thus time and effortwhat makes OOP produce less cognitive load when writing software?
>andreas kling is a random nobodyAndreas is a very talented individual, I'm pretty sure everyone can agree on that
>Linux kernel is being developed by multibillion corpos probably since before you bornLinux has also started as a one man project and evolved into a basis of most operating systems on the planet. Do you honestly believe it was any easier for Linus to write his kernel back in the 90's when there was nowhere near the amount of programming aids, easily available documentation and hardware standardization that we have now?
>neither I said it's the only way to modularizationfor the whole thread you've been trying to argue for OOP as a superior alternative to procedural programming
then you claimed that Andreas was able to write his system BECAUSE of modularization brought by OOP which was not, in fact, brought by OOP at all
>I'm not here for OOP superiority over everything. I don't know which anti-oop retard made it up.me neither but you can't claim that "OOP led to software boom" and allowed people to write much more complex software when there were clear examples of complex procedural software AND technologies achieving the same goals before its widespread use
>>106034256when you treat something as an object that represents a class of different entities it's "object oriented". it doesn't matter what language is used or how it was implemented.
>>106034246no, it's not
file descriptors violate Liskov substitution principle all day, every day
>>106034288for example, jpeg, png, gif are different entities, but "an image file" is one object. an image viewer essentially implements OOP principles to display images. does it really matter if it uses vtable or explicit switch? no
>>106034288>lunix is object-oriented programming because files are objects in my mind
>>106034333OOP just makes this kind of abstraction problem easier to solve.
>>106034333if I implement this image viewer in Haskell, is it still object-oriented?
>>106029354>>oh, you didn't to watch the entire 2.5 hour talk?>>then your opinion is invalidYes, that's how it works, retard.
>proceeds to attack the person instead of the argumentOf course.
>>106025268>OOP being total dogshit is because of the tight couplingskill issue
you can and should write OOP with low coupling/high cohesion. if you're unable to write good code, it's your problem, not the paradigm's problem
>>106034262>what makes OOP produce less cognitive load when writing software?abstraction through clear interfaces and code reuse
>Andreas is a very talented individual, I'm pretty sure everyone can agree on thatI'm pretty sure he's an average level developer but the tool he uses makes him able to do much more work with less cognitive effort both now and in the future. also there is a commute talk of him talking about why he likes OOP
>Linux has also started as a one man project and evolved into a basis of most operating systems on the planet. Linux is not an OS. it's a kernel. it never developed into a full fledged desktop OS like serenity. it arguably had less complexity at its first days. Also again, Linus was a systems guy who took lectures directly from Tanenbaum himself. He already knew the domain so he could use its tool better. Kling wrote Serenity just to find a hobby to distract himself from his addiction. it's all because C++ and OOP made it much more easy to model and build software.
>for the whole thread you've been trying to argue for OOP as a superior alternative to procedural programmingwhere?
>Andreas was able to write his system BECAUSE of modularization brought by OOP which was not, in fact, brought by OOP at allbrought by what? go listen the talk I mentioned. you seem like you know him better than he does.
>me neither but you can't claim that "OOP led to software boom"but it did. it's also why the biggest codebases you see today are either OOP or heavily lean to OOP-like abstractions.
>>106034385>>OOP being total dogshit is because of the tight couplingI can't give any meaning to that quote since you can't make a plain procedural code more coupled than it already is by splitting it into different objects. it reads like total absurd. the major point of OOP is to make low coupled objects with independent states and invariants to work together for a job
If OOP is smart why are all the people who love it so dumb?
>>106025442the main differences:
a struct exposes all its elements because it's just a bundle of data; an object doesn't necessarily expose its fields. they can be data fields but also variables related to the internal state of the object that are not meant to be accessed from outside
objects also define behavior (methods) within themselves rather than externally (ie. functions that accept an object as a parameter)
with functions and structs, you have to explicitly ensure integrity of state of a multi-function operation; with objects, it's mostly implicit
you also get a better overview of what behavior you can apply to an object, with structs and "loose" functions you have to do wider searches over the codebase, and still might not find everything
>>106034534Literally everything you said is wrong. It's actually unreal how retarded OOP advocates are. Why can't you just go write your bloated Spring bullshit and leave everyone else alone?
>>106034619>ad hominem>no counter-argument, just denial with no backingclassic concession
>>106034650once proven that anti-oop retards are underages
>>106034470>abstraction through clear interfaces and code reuseyou can have clear interfaces and core reuse in procedural languages
I'd argue that OOP (or maybe it's a Java thing) facilitates code fragmentation, not code reuse, where splitting simple logic into 5 different classes just to satisfy arbitrary architectural model is seen as something desirable rather than extremely harmful to overall readability
enterprise applications are especially susceptible to class explosion as most HTTP / message broker-based backends tend to have no state at all, making them poor fit for OOP in the first place
>I'm pretty sure he's an average level developer but the tool he uses makes him able to do much more work with less cognitive effortI'm pretty sure you're underestimating him and overestimating C++, considering he switched to Swift in his latest project
>Linux is not an OS. it's a kernelwhat part of "basis of most operating systems" did you not understand?
>where?starting here
>>106033645 and continuing in all subsequent replies
>brought by what?that was almost a direct quote from your own post, what do you mean "brought by what?"
>but it did. it's also why the biggest codebases you see today are either OOP or heavily lean to OOP-like abstractions.again, going back to my first post ITT, there's no evidence to support this claim and chances are those OOP-like abstractions were invented before OOP
>>106034780>you can have clear interfaces and core reuse in procedural languagesyeah, basically by emulating OOP. at this point I don't know what you're against. OOP as language builtin features? because, indeed, most methods for handling complexities in procedural languages are already either functional or objectional abstractions.
>I'd argue that OOP (or maybe it's a Java thing) facilitates code fragmentation, not code reuse, where splitting simple logic into 5 different classes>arbitrary architectural modelyou never split a simple logic that belongs to a single concept into 5 different classes.
I don't know why people are just refusing to learn things in their respective field. You're an engineer, so why are you so adamant about not knowing a shit about arguably one of the most useful and widely used things in CS? You clearly don't have any idea about OOP and architectural design, otherwise you wouldn't have said any of these.
>HTTP / message broker-based backends tend to have no state at all, making them poor fit for OOP in the first placemultiparadigm languages are best indeed
>I'm pretty sure you're underestimating him and overestimating C++, considering he switched to Swift in his latest projectSwift is as OOP as C++. Also he specificially talks about why he likes 'OOP', not C++. Still refusing to go to listen the guy himself literally praising OOP.
>starting here >>106033645 and continuing in all subsequent replieswhere did I claim OOP is superior to everything again?
>OOP-like abstractions were invented before OOPwhat do you think OOP is, some singular entity? an evil boogeyman? OOP-like abstractions are OOP. like functions in C, a procedural language, being a functional abstraction; as the name suggests. there are no pure procedural code or language. You either imagine/do things in objects or functions. OOP is doing it in the object way.
Oi, mate, you got a loicense for that Object (TM)?
That there's the property of POOP and under the administration of the Raj.
>>106034780>splitting simple logic into 5 different classesyou don't split into classes by how "simple" the logic is; you split it by how relevant the pieces of logic are to each other
it actually helps readability in that high cohesion leads to having to see less code at a time, and all of it relevant
this is opposed to just bunching everything vaguely-related together into a single class, resulting in thousand-line behemoths in which it's always a pain to find anything, regardless how simple it might be
>enterprise applications are especially susceptible to class explosion as most HTTP / message broker-based backends tend to have no state at all, making them poor fit for OOP in the first placein what way is it a poor fit?
as server-side code, you can model a coherent units that accept a specific request and produce an appropriate response
as client-side code, you can model requests with their expected response forms as coherent units that get sent to a HTTP client
>chances are those OOP-like abstractions were invented before OOPdid not read the whole thread but who even makes the point that OOP "invented" things? and what difference does it make if it did or not?
>>106035017>yeah, basically by emulating OOPList a few examples and I will show you that what you consider to be "emulating OOP" is not a feature of OOP
>you never split a simple logic that belongs to a single concept into 5 different classes [...]You shouldn't but it's exactly what happens in enterprise projects and your code will be rejected during review just because you haven't done so "for the sake of consistency". Obviously I don't follow these rules in my side projects, but we're not talking about those. I'm not sure why you're trying to hit me with your idealistic views about OOP and claim that I don't know shit when you seem to be the one lacking real-world experience, otherwise you would have known exactly what I'm talking about.
>Swift is as OOP as C++I thought you used the term "tools" to refer to a particular language, fair enough I guess
>Still refusing to go to listen the guy himself literally praising OOPI really don't care for his take on OOP, I'm just addressing your points. It started with you claiming that he was able to achieve what he did "all thanks to modularization through object abstraction" yet you can find historical examples produced under similar circumstances which used none of that. Hell, even contemporary - such as Redox OS, also developed almost entirely by one guy.
>where did I claim OOP is superior to everything again?I called you out on claiming that it is superior to procedural programming. Where did you get "everything" from? Trying to shift the narrative?
>what do you think OOP is, some singular entity?No, I don't. I think attributing to OOP language features invented before OOP or in the process of designing an inherently non-object-oriented language is disingenuous.
>>106035271>You shouldn't but it's exactly what happens in enterprise projects and your code will be rejected during review just because you haven't done so "for the sake of consistency".care to provide an anonymized/simplified example of your "inconsistent" code?
>>106035271>"emulating OOP" is not a feature of OOPyou're again repeating the same thing. There are no singular entity as OOP. I have already written this in my post.
>You shouldn't but it's exactly what happens in enterprise projectsdoubt. I'm using and looking at several enterprise projects and OOP codebases are always the easiest to understand.
>lacking real-world experiencethe .net or java codebase itself is not included in real-world?
>such as Redox OS, also developed almost entirely by one guy.isn't redox OS written under Rust? Rust is FP/OOP mixed.
>I called you out on claiming that it is superior to procedural programming. Where did you get "everything" from? Trying to shift the narrativeit's obviously superior to procedural programming if we take the definition of procedural programming as not using any abstraction at all and writing multiple logic in a single blob.
>attributing to OOP language features invented before OOPthe OOP is just a programming name to refer to objectivist epistemology, an ontological framework. now you gonna claim there are things older than that?
>>106035419*epistemological
>>106035253>you split it by how relevant the pieces of logic are to each other>this is opposed to just bunching everything vaguely-related together into a single class, resulting in thousand-line behemothsThe exact same fragment of code can be "vaguely related" or "relevant" depending on the person you ask.
You can easily have a single large class with high cohesion or just split it arbitrarily into a bunch of small classes that are useless on their own and only perform an interesting computation when put together. Maybe you've worked at a better company but in my experience, OOP culture gravitates towards splitting rather than consolidating relevant logic.
>in what way is it a poor fit?When all of your objects are effectively stateless, you almost never take advantage of inheritance or dynamic dispatch and all of your methods may as well be static, I'd argue that the OOP overlay is just redundant. Most @Controllers, @Services and @Repositories show those characteristics.
>>106035367Inconsistent with respect to the rest of the codebase, i.e. examples set by whoever started the project. So no, I can't just paste the entire repo and write something that doesn't follow an established pattern
>>106035419>Rust is FP/OOP mixedRust is not object-oriented by any definition unless you're going to call any language that sort-of kind-of borrows from Simula / Smalltalk line object-oriented.
>it's obviously superior to procedural programming if we take the definition of procedural programming as not using any abstraction at all and writing multiple logic in a single blobThen you're just wrong or misinformed. Procedural abstractions exist and they include procedures and structured programming constructs. Modular programming came out of a procedural programming language and influenced other paradigms.
>>106035522(cont.)
>the OOP is just a programming name to refer to objectivist epistemology, an ontological framework. now you gonna claim there are things older than that?Yeah, if you're going to go with "OOP is whatever I want it to be" then I'm not surprised you're such a proponent for this paradigm. There are things older than Simula and Smalltalk, which are THE object-oriented language archetypes. As for the rest of this "no singular entity as OOP" nonsense, see the first sentence
>>106034353yeah thought so
>>106034353the design can be object oriented, not the code.
>>106035838why are you posting about design when OP is all about programming?
>>106035522>You can easily have a single large class with high cohesion or just split it arbitrarily into a bunch of small classes that are useless on their own and only perform an interesting computation when put together.first: definitely not "easily" - the larger the class, the less likely it's highly cohesive
second: doing bad on purpose (splitting into useless classes) is not a solid counter-argument, you would have to show that there is actually no way to split the code that wouldn't produce useless-on-their-own classes. can't really do that on pure theory, it really needs an example
>When all of your objects are effectively stateless, you almost never take advantage of inheritance or dynamic dispatch and all of your methods may as well be static, I'd argue that the OOP overlay is just redundant.It's true that statefulness is one of the main characteristics of whether OOP makes sense, but that doesn't necessarily apply to this scenario. You can implement stateful request handlers and stateful response processors.
>Most @Controllers, @Services and @Repositories show those characteristics.you're arguing against Spring, not OOP
>Inconsistent with respect to the rest of the codebase, i.e. examples set by whoever started the project. then you're arguing against team politics, not OOP
>>106035522>Yeah, if you're going to go with "OOP is whatever I want it to be"It's, imo, programming in that epistemological viewpoint. I see some structs as objects even if the function operating on them are not directly coupled. static extern variables holding a state for some abstract state of a conceptual state machine, as well.
>structural / modular programmingdon't forget that structs and classes on c++ are basically same things. conceptually, they are similar or same. What people say OOP to is when that abstraction gets to a specific level and amount. I say it's all same.
>>106036023>definitely not "easily" - the larger the class, the less likely it's highly cohesivefair enough
>doing bad on purpose (splitting into useless classes) is not a solid counter-argumentit's not on purpose, otherwise this kind of practice wouldn't be so widespread
if you want an example, Gradle codebase should be littered with DefaultBuildTreeWorkGraphPreparer and the like (unless they cleaned it up in recent versions)
>You can implement stateful request handlers and stateful response processorsif you're doing or claim to be doing REST, you pretty much can't with a possible exception of caching
>you're arguing against Spring, not OOPyou can find counterparts in majority of frameworks for OOP languages
>then you're arguing against team politics, not OOPI don't think these two are independent
the language of choice heavily influences the way people think about code
>>106036324>DefaultBuildTreeWorkGraphPreparernames like this lose their meme interest when you actually open and read one or two design book. Representing counterpart logic in a purely procedural way would be hellish without, again, emulating OOP or FP.
>>106036383Have you ever wondered why other paradigms don't have to deal with architectural problems your design books describe in the first place?
>>106036394>wondered why other paradigmswhat paradigms? there's only functional and it's only seriously used in things like React frontend afaik. Pandoc is their greatest achievement
>>106036418all of them, in this case
BuildTreeWorkGraphPreparer and its descendants can be represented more concisely even in Go
>>106036514>all of them, in this caseI said what and you refuse to name single one of them
>BuildTreeWorkGraphPreparer and its descendants can be represented more concisely even in GoI'm sure that's true and not something you totally made up