Quote: Original post by Drigovas
Then again, there were 'sloppy' programmers 10 years ago. And 15 years ago. We are now expecting our computers to do a lot more of our every-day tasks than we used to, and this results in a huge surge in the need for software in a domain where software efficiency is less important, and even correctness in the strictest sense is in many cases not vital.
While sloppy programmers always existed, a difference is that 20 years ago, a bad choice in algorithms would have made certain programs too inefficient. Either the disk space or RAM would not be enough, or the program would just take too long to run. Nowadays, who really cares if MyTetris takes 24 MB. It's only 10 seconds to download and takes realtively nothing in terms of diskspace. And what once would have been a 10 minute loading screen instead of 30 seconds turns into a 2 minute loading screen instead of none at all.
One other area that I notice lately is not of the sloppy written code in terms of bugs, obtuse coding, and unmainability, but sloppy code of the over-engineered academic style. I have no problem with uniform code, or even coding standards, but I've seen a few people who go overboard. Goto's, Multiple Inheritance, multiple returns in a statement are strictly forbidden, regardless of if they're the most reasonable of choices. Functions become 3-5 lines long and have comment blocks that are 10x longer than the function itself. And everything becomes an object, from the data to the actions performed on the data. To just debug the reading of a config file forces you to go 18 levels deep. Sure, it looks nice, but code too engineered becomes just as unmaintainable and inefficient as code not engineered enough.
I feel part of the problem is that people learn the symantics of a language, but they don't necessarily know how to use actually use the language. And this honestly is a fault with education and how it's taught imho. Because you don't get graded on your ability to think, but rather, you're graded on your ability to regurgitate what you've been taught.