A while ago I started into a rant about "object oriented #programming", #OOP as it's nicknamed, because I was on a lengthy train and bus trip and that's usually when I write the most on social media—and that's a pity perhaps because after the trip is over, if I haven't finished the rant, only rarely do I feel like wrapping it up properly.

I feel a bit uncomfortable on this particular subject, too, because it's not my field really, despite the SDSU computer science (not a real #science) degree I got over a quarter-century ago. I got so burned out by trying to work in #software that I gave it up almost completely, even as a hobby. I've probably spent more time in the past quarter-century attempting to perfect my apple-pie baking technique than trying to keep up with computer programming.

[1/???]

Maybe that says something about why I developed a #programming habit in the first place and maintained it for a while: I started out in childhood, digging through library books and Scientific American columns and similar sources looking for stuff I could try to do in Commodore BASIC, and it was a hobby I could carry on at home when living with my parents. It was something I could do alone for hours, closeted in my room, requiring little more than the computer itself (hooked up to a TV, at first) and because personal #computing was still fun and straightforward and uncluttered, I actually enjoyed what I was doing.

I was strongly influenced by the example of my RL father (peace be upon him), a biologist who had perforce become a decent Fortran programmer: if you wanted to do lots of scientific #maths on a VAX minicomputer, Fortran was the stuff! Because of him, and my general interests in the sciences, I conceived of the personal computer chiefly as a device for doing difficult math and scientific modelling. I rarely played games, although there were a couple that grabbed me for a while, like Jumpman (q.v. https://en.wikipedia.org/wiki/Jumpman_%28video_game%29).

[2/???]

Jumpman (video game) - Wikipedia

I don't know how my own childhood experiences with hobby #programming compare to others'. I would be willing to guess that very few teenagers get into personal computing these days because they want to do #science on them, not in an era where #gaming has popular geek culture in its suffocating grasp. Indeed I feel like I have been privileged, or cursed, to behold the era of the great transition—the day when a lot of bright but easily tempted children suddenly lost their interest in doing more substantial and constructive work in science or maths, because now there was a glittery new prospect in sight: making a zillion bucks by programming a game.

I grew up wanting to be Gauss perhaps, or Marie Curie. If I'd been born just a few years later maybe I would have wanted to be John Carmack (spits excuse me) tooling around in his ill-gotten Ferrari. Even as it was, nineteen years old when #DOOM was released—and yes, I played way too much of it, because it was preferable to enduring Caltech's idea of undergrad education—I was briefly drawn into the idea of escaping from my unpleasant future prospects into instant riches via game programming. I would never have admitted openly in 1993-1994 that my hopes of a scientific career were dead as a coffin-nail...but I was definitely inoculated with the idea that maybe computer programming could be a bolthole. Many other Caltech undergrads were excited by the idea of making a mint in computer games.

[3/???]

Anyway, after I finally got booted from Caltech (quite deservedly I assure you, even if the process was hastened by mostly terrible teaching and a hideously toxic student culture) I took up #programming in earnest with the help of SDSU because I was wretched at autodidactism (self-teaching) and thus welcomed being forced along by a definite curriculum and class schedule. In earlier years I'd worked with BASIC and Pascal, but now I was put onto C and C++ mostly, ornamented by Common Lisp and Java, and I got my first exposure to "object orientation", at least of the Java / C++ sort. (I made very little use of the CLOS in Lisp; I don't recall that it ever felt necessary for the exercises in #artificial_intelligence which I did at SDSU.)

I'm struggling to remember what I was taught about #OOP. I recall at least that it was very heavily sold, and when I finally got work as a programmer, I was frequently dealing with "objects". Heck I worked for a time at a San Diego firm that sold an implementation of CORBA, an "object request broker" that permits calling methods on remote or distributed objects. Does CORBA get used for anything these days? I haven't heard the name in years and years.

[4/???]

It was around this time that I first started to get generally irritated with the quality of instructional and tutorial materials in #programming.

Now I need to stress that not all programming and #computing books which I encountered in the 1990s and early 2000s were rubbish. I remember especially liking the textbooks I got to use in my elective #AI classes: Russell and Norvig's AI text (q.v. https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach) and Guy Steele's text on Common Lisp. These books mostly fit my idea of what a good, uncomplicating, unconfusing textbook ought to be like: dense with information, stolid and even plodding in the sequential presentment of topics and subtopics, illustrated in a spare and concise fashion without lots of splashy colors or graphic arts meant to impress rather than inform.

But as the 1990s progressed and computer programming became more faddish and hyped as the future of education—touted as a skill more necessary to learn than any other—I noticed how texts on programming topics were getting fluffier, less rigorous, more likely to feel like sales brochures, especially when it came to #OOP.

[5/???]

Artificial Intelligence: A Modern Approach - Wikipedia

@mxchara From what I understand OOP is one of those programming paradigms that got hit by the hype train several years before I picked up computers in earnest... Of course there's plenty of Java still around (and I still don't get the point of having FooBarInstantiatorFactoryBean classes everywhere). It does some things well (e.g. grouping similar variables and functions together and being able to describe similar-yet-different elements easily) and some things terribly (e.g. forcing things that should never have been objects into objects then inventing various forms of incredibly clunky workarounds).

CORBA? Pretty sure that's a historical relic. I have not seen or touched that in 6 years of programming career. I remember covering it in a course at uni though.

@brib
Yeah, CORBA is pretty dead. But CORBA inspired systems like COM or (uff) SOAP are still around in Windows land where nothing ever is granted the benevolence of death and all bad ideas most live forever.
@mxchara