Skip to main content

A little reminder on OOP

An object is just a bag of mutable variables, with another bag attached to it, that contains functions (which we call "methods"), those functions having read and write access to those variables.

Object oriented programming means writing programs using objects' methods as an instruction set (and possibly something else but with emphasis on methods).

Polymorphism, inheritance, encapsulation and such are generally applicable techniques that a priori have nothing to do with OOP. You can do all this without objects and methods, as well as you can do OOP without all those things (however insane that might be in practice).

I'm glad if that sounds obvious to you but a shocking amount of people seem to be completely unaware.
oop programming

There's also the term True OOP which emphasizes that the original meaning was that objects exchange messages i.e. you don't directly call a method, you send a message and the system delivers it for you. This comes from Smalltalk and was pushed further by Erlang.

Is it like a technical term? I've only heard of "pure" OOP which roughly means "literally everything is an object, numbers too"

It's rather obscure and was probably invented by someone in the Smalltalk community. I've certainly seen Alan Kay use it in reference to the work they did at PARC. The emphasis was specifically on messages which C++/Java-style OOP lacks. So I'd say it is a technical term, just not a very good one -- I did a few quick searches most of which returned garbage. This is the closest I got:

Speaking of OOP I wish there was more experimentation with prototype-based techniques. There's Javascript which is, y'know Javascript, plus Self which is somewhat obscure, and Lua which is solid but niche. Anything else is typically way too obscure to be directly accessible. OTOH I see that session types are getting more popular and the prototype-based analog of that is what I use the most in practice (out of other prototype-based techniques).

I'm so SICK of stuff not working. When I dreamed of being a programmer as a child, it never occurred to me that writing the actual code is going to be the easiest, least time-consuming, and generally fun part. Now it feels like I am betrayed by my dream. Because whatever I'm trying to do, I keep running into weird issues, not covered by documentation, not answered on StackOverflow, not heard of by professionals I talk with. It's just too much of a headache to keep trying to fix what other people broke. All fun and games when you're just screwing around, exploring cool things you like. But say you need to get the job done? Nah.
frustration programming software
This entry was edited (6 months ago)

What I do is try to educate others on what a scam "compilation not guaranteed" is. That doesn't help me program better, but maybe it'd help some third party prioritize having working compliation instructions, so I would have one less mess to deal with. It's honestly not very effective though, so I dunno.

My current approach is to install a minimalist OS like OpenBSD, install as few packages as I can and compile the rest myself (while still trying to use as little as possible). Opensource fans like to talk about how everything is open to inspection/modification, 'many eyes', etc while in reality lots of critical software is effectively closed source because it requires too much effort to analyze or modify in a nontrivial way and there's no infrastructure to make it easier. In the future I plan to write a very small highly integrated OS for a small number of SBC platforms.
It’s just too much of a headache to keep trying to fix what other people broke.
Not least because they just keep breaking it and if you criticize them they'll tell you that patches are welcome, you ungrateful fuck. There's an article documenting problems with the FreeBSD developer culture, I showed it to a FreeBSD fan a couple of years ago (in I2P, so he was at least somewhat interested in security), he just shrugged i... show more

This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.