O-O comment

Someone tried to post the following comment to my posting last month about Bruce Eckel. Comments may or may not be broken, so I’ll repeat it here.

—-
You should see the POS I’m working on. Chock-full of every OOP buzzword, stuffed to the gills with all the goodness of patterns, and yet: hard to modify (brittle), unreliable, and extremely low-performance software. I’m ashamed to have my name on it. (FWIW, I was not the ‘architect’ so I’m just along for the ride.)

Run, do not walk, to the nearest web browser, and view this stuff (by MSoft-ian Rico Mariani)

Bingo. Personally I think that O-O makes things HARDER. The best O-O designs I’ve seen have had tens or maybe hundreds of man-years invested in them (counting all the stealing from generation to generation of product). Why do J-random bozos think they can waltz in with buckets of inheritance and overloading, spray the walls thick, and have automatic success? Those are kids tales. Real O-O successes are won with pain, by tossing out crap that doesn’t work, and by backhanding the slobs who keep trying to stick three extra layers of stuff in “Just in case.”

“It’s a factory.”

“I know that. Why do we need a factory there?”

“Uh, because factories are good things to have.”

“Take it out. Factories are things you work in. Factories are dirty, nasty, dark places full of machinery that will take your ass-skin off and turn it into a soccer ball the moment you stop paying attention. Factories are where poverty-stricken, ignorant sumsabitches come to work still drunk from last night’s bar fight and stick doodads together using a laser welding torch that last month killed three workers when someone lit a cigarrette and forgot to turn off the welder’s power supply. Factories kick you out when you’re sixty five with a cancerous colon and a sixty dollar a week pension, and the only things you know how to do are (A) stick doodads together with that torch, and (B) have fights in bars. Don’t talk to me about factories. Don’t talk to me about stupid useless factories, okay?”

“Sorry, uh, yeah . . . okay.”

“Is this next file a singleton?”

“Yeah.”

“Get out of my sight and don’t come back until it’s either gone or does thread-safe teardown correctly.”

Sometimes the best thing that can happen to you is a catastrophic disk crash that wipes out all your source code and forces you to take a fresh look at things. Perhaps modern revision control systems are a little too unforgetful.