[off-topic] Sony releases PS Vita SDK

SomeDude lovelydear at mailmetrash.com
Fri Apr 20 05:45:51 PDT 2012


On Friday, 20 April 2012 at 04:40:56 UTC, H. S. Teoh wrote:
> But I suppose my experience has been colored by the trauma of 
> working
> with an over-engineered C++ system that only one guy 
> understands,
> resulting in people who came after him rewriting their own 
> versions of
> code that they didn't dare reuse 'cos they didn't understand it,
> eventually ending up in a patch-upon-bandaid-upon-patch 
> codebase with
> umpteen ways of doing the same thing that *nobody* understands, 
> not even
> the original guy.
>
> One example. The system had this elaborate database abstraction 
> class
> hierarchy that could do wonders: automatically populate data 
> structures,
> automatically ensure data consistency, periodically do 
> self-maintenance,
> replicate itself and sync with backup servers, etc., -- if we 
> only knew
> how to use it.  Problem is, only the guy who wrote it knew 
> which obscure
> class objects to instantiate to make the thing sing to our 
> tune, so
> somebody got frustrated and wrote what is essentially a wrapper 
> function
> that takes a raw SQL string and executes it, thus bypassing the 
> entire
> beautiful database abstraction code completely. Since everybody 
> else
> didn't understand the original code either, they started using 
> this SQL
> bypass function everywhere... only to discover that the system 
> broke in
> subtle ways when you didn't go through its beautifully 
> over-engineered
> abstractions. So more and more dirty hacks were introduced that 
> piled on
> top of each other like festering infected bandages that fail to 
> address
> the real wound underneath.
>

Oh yeah, I've seen that story too in a couple of other places. 
C++ seems to make exceptionnally easy for "mad coders" to screw 
up a whole system with overengineered pieces of crap. One of my 
colleagues spent more than a year rewriting a system that turned 
into a black box that nobody could maintain.

My opinion is, when a team works in this language, code reviews 
should be an obligation, else there is always a guy like that, 
who has his genius idea that nobody else understands and puts his 
crap all over the place. Basically, the only piece of C++ 
software I've seen that never became a huge piece of steaming 
crap was a system that was systematically code reviewed by the 
main software architect and a couple of highly skilled engineers.

I suspect D is not much better on this topic, it's possible to 
write extremely complex code with it too. Actually, it's possible 
to write complex and unmaintaineble stuff in any language (even 
in Python), but I believe the more complex the language, the 
easier it is to screw things up and the more important code 
reviews are.


More information about the Digitalmars-d mailing list