To put it in perspective, programming has barely had its Archimedes and its Da Vinci by this point. Best practices are a joke, and are usually based around superstition, personality cults, and faith instead of actual empiricism. Standardization is moving backwards, and computer 'scientists' rarely solve the problems software 'engineers' actually have.
It's a mess. Engineering can fall back on the basics, but programmers, at the end of the day, are mostly relying on instinct.
Edit: I'm not saying programmers are smarter or better. The opposite, in fact. The mistakes and oversights we get away with would likely get a real engineer arrested.