

Job Security Through Code Obscurity - andrewacove
http://seven-degrees-of-freedom.blogspot.com/2011/01/job-security-through-code-obscurity.html

======
j_baker
I can't wait for the follow-up: "Ego Security Through Assenine, Passive-
Aggressive Blog Posts".

(And I can say this because I've written asinine, passive-aggressive blog
posts to boost the ego myself)

------
iwwr
When a programmer is adding ugly code to the codebase, he is making a marriage
proposal. Unless the prospect with him or her (till death dues you part) is
appealing, work to remove the offending code before children start coming in.

------
zdw
Reminds me of the "If you're not replaceable, you can't be promoted" adage...

------
tsotha
_Specialise via inheritance_

Ugh. That's the one I'm continually running across. Inheritance is so heavily
abused by novice programmers they shouldn't be allowed to use it without a
twenty page written justification.

------
impendia
Have I been out of the programming world for too long, or do at least some of
his complaints refer to using advanced features of programming languages in
essentially the way they were intended?

~~~
andrewacove
He's talking in the context of console game programming (though it applies to
everything). The current generation of consoles has pushed a lot of this stuff
to the forefront - with in-order processors and cache behavior in particular
exposing the flaws inherent in OOP/Inheritance based paradigms. I'd guess that
it's a bit of a perfect storm - inflow of PC developers who previously could
rely on hardware upgrades, massive increase in fresh/grad programmers (who are
now filling positions on enormous teams of programmers compared to previous
generations), and much more PC-like hardware that requires less specialized
programming.

It's hugely important in console game programming to know exactly how you're
using the system's resources - memory and clock cycles. The styles he's
criticizing aren't just bad for limiting resource usage, they're hard to
analyze. On top of that, it can be very difficult to silo components of game
code (and game engines) behind nice clean interfaces. When you're the engine
programmer tasked with optimizing game code because you're the one who knows
how to squeeze performance out of the console, you don't want to have to climb
up and down hierarchies to figure out where everything's hidden. I've been
there - it's especially prominent in 3rd party developers with cross-platform
game engines - and it's a nightmare.

------
rvirding
Yes, wonderful. Shows the true power of OO.

