Advertisement

Has the improvement in technology encouraged sloppy programming?

Started by September 21, 2009 09:19 AM
29 comments, last by Fiddler 15 years, 1 month ago
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.
Quote: 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 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.


I agree. Learning to program with a language and learning to design a system correctly (i.e. software engineering) are two completely different skill-sets. The former is easy to teach in an academic environment; the latter not so much. Correct design requires experience that comes only with time and exposure to "real world" software (academic applications don't really count as such).

On the other hand, this experience stays with you no matter what languages/tools you use: an experienced software engineer will produce a good design even in Cobol; an inexperienced one might produce good code in a specific language, but will often fail to get the larger picture (how many have sinned by accessing the database from the UI?) Move him to a different language and he's back to square one.

[OpenTK: C# OpenGL 4.4, OpenGL ES 3.0 and OpenAL 1.1. Now with Linux/KMS support!]

This topic is closed to new replies.

Advertisement