Digital Phantasy
Digital Phantasy

Did gaming ruin software?

Posted Tuesday, January 16th 2007

While sharing a few beers with a friend yesterday, we started talking how gaming has influenced the development of home, end-user hardware. It’s really not a hard idea to grasp - if computers were only used at home for text processing, office tasks, surfing, and/or similar things, then there is really no need for uber-fast processors, gigabytes of ram and gigs upon gigs (if not terabytes) of hard drive space. And for the sake of argument, let’s assume that image & video processing, 3D and so on, are only to be seen as work-related tasks, and thus not really falling into the home-user category of uses for a personal computer.

And it’s true - I had a machine set up for my father to surf at home (I’m not letting him anywhere near my box), and it’s downright ancient. A 400 mhz Celeron with 128 megabytes of ram. But I run Windows 98SE on it, and nicely cleaned up, it runs Firefox like a dream, and that’s all my father needs. It runs great, and he just surfs the net, and that’s about it. He’s happy, and I’m happy too, because he’s not toching my box.

Anyway, after talking about this for a few minutes yesterday, my friend came up with the theory that gamers have ruined software. One might ask how is that, and again, it’s actually quite simple to grasp. Because gaming has driven the improvement of hardware so much and so fast over the past 15 or so years, all of us have formidable supercomputers at home - and let’s not kid ourselves, the amount of processing power that our machines have is amazing. So, because we have so much power to run pretty much anything we can find, developers have become a bit more lax in their programming habits.

In “the old days”, when memory was quite limited, developers had to be creative in the ways that they write code - so that their code will be as efficient as possible and require as little memory as possible. But nowadays, since they know that the end users have (arguably) fast machines, there is no need to be as strict. And although this might seem a bit too far out there at first, it does stand to some reason. Ofcourse, one must never forget that a substantial number of existing developers out there write good, clean, efficient code, but a substantial amount do not - and the philosophy that “we don’t care about the extra variable, or the inefficient loop, because the machines are fast anyway” is completely solid and valid, and almost every developer has heard it, or said it, at least once.

So, it’s actually quite straightforward to link the two theories together, and in a way, blame gaming for the “decline”, or possibly worded in another way - the reduction of quality of end-user software. Although I personally might not agree with it outright, because there are a number of other influences that have influenced software development in one way or another, but it does merit some though.

Who knows, if PC gaming had not become so important, maybe Gates’ statement about 640k being enough for everyone, might have actually been true.

Comments?

10 Responses to “Did gaming ruin software?”
jaggah Says:

Look, I agree about gaming ruining software development as a creative process, but only partially. It’s a complex process which involves not only games but big companies like Microsoft, Java and a number of other companies. Someone would ask why? Well, the thing is that software development just got a LOT more easier over the years. So instead of spending hours and hours brainstorming over a problem consisting of mere input/output issue, now you are dealing with process threading and network access without even blinking an eye. This simplification of the development process has it’s price - bloating the end-user software with proprietary code that makes possible for a young kid to develop corporate-level software in just weeks!

That is, I think, the biggest reason for the slow, gigantic software we deal with everyday.

Little talker Says:

I disagree. Bad software isn’t slow software. Badly designed user interface, memory leaks, lots of bugs, hard to mantain. That is today’s bad software. Not having to optimize every tiny line of code (mobile phone games developers still have to do it nowadays, BTW) actually favors better software development since the developer can focus better in what the program has to do, rather than in how the program does it. There is still a need to optimize but not having that as priority #1 is actually good. Creativity can focus on more interesting things than cleaning up a few bytes from memory. The easier it gets to make software, the more time will be spent on improving the way it works for users.
Besides, why do you think software quality has declined so much? I’d say it keeps getting better overall…

ZedTheHead Says:

I’ve still got my first computer - a 20+ year old Commodore 64 - and in the few times since then that I’ve taken it out and plugged it in, it staggers me the things the game programmers those days did with 64k of RAM. No hard disks, no ROM, just 64k (and that included the operating system). That was art.
My point: maybe gaming is driving software (certainly did back then), not necessarily in the same direction as business sofware, but forward nonetheless.

zeroSignal Says:

Jaggah:
Developing software has become easier, no doubt. Various environments will let you do pretty much anything, and at quite a rapid pace. However, my point is not that. The point is that because developers know that the end users have fast computers, they are less concerned with memory preservation, cleanup etc. I might not be right, and I don’t neccessarily agree with the notion, I’m just saying that the notion actually has some merit and that it deserves some though.

Talker:
Software quality is an arguable, and not exactly measurable metric. I’m not saying that software has reduced in quality per se, but that in fact, the way the software is developed has suffered some “deterioration”. Developers are far less carefull about variable declaration and cleanup, objects, efficiency, etc. That might not be exactly noticeable, and as you say, software does seem to get better - but have you ever thought that software might be getting better, simply because we have faster hardware, and don’t exactly notice how long some process takes?

Mr. Zed:
Kalimera.
I still have my ZX Spectrum +3. Haven’t booted that thing up in ages, but I just might. :) And you’re absolutely right - what developers did back then, that was indeed art. And I still stand firmly by my statement that gaming has heavily influenced the evolution and improvement of home PC hardware.

jaggah Says:

zS:
What I meant was that developers are forgetting that artistic aproach mainly because the IDEs that they are using worry about most of the code produced since it is at most times - auto generated. That code is highly not optimized. Just see any code generated by MS Visual Studio and you’ll get the picture. Hence forward they rely heavily on the IDEs when it comes to programming, and their unawareness of memory consumption mainly comes from the new RAD way of programming. And let’s face it, the developers are the ones dictating the way the application behaves. But behind every developer there is an IDE of choice, and the majority of IDEs today are far from good when it comes to code optimization.

Little talker Says:

Well, I wouldn’t put so much emphasis on hardware alone. Programming languages have also evolved (some of them will take care of cleaning up resources for you so you don’t have to worry so much about it). Development environments have also evolved. For instance, check this post by Joel Spolsky discussing loss of this low-level concepts is being lost, not because of faster hardware, but because of higher level languages taking care of these details for you.
Also, I think it’s hardware evolving constantly and rapidly that has pushed gaming forward and not the other way around. While some technical advance, especially in graphics cards is arguably a result of gamers demands (and not by a 100% though), most advances are a result of vendor competition and market demand (google needs fast-ass servers!). Actually, hardware has pushed gaming so much that now some are trying to get away from the hardware-spec dependant games concept (nintendo and the Wii). The Wii is all about forgetting the super-specs and complex engines which are hard to code for (art!) and getting into the art of entertaining which is what software buyers care for in the end.
While some new features in software are a result of improved hardware, most of them come from some kind of design innovation or new features (as opposed to optimized features).
I agree though, in that standalone programs are probably so under-optimized because of high specs being usual. But that’s software companies shooting their own foot. Firefox is such a hot program now, and it doesn’t take a powerful to run it [yep, it leaks some memory sometimes…]. And you can use to browse these hot web 2.0 apps with you late 20th century machine. So there are still good programmers after all..
I could go on for hours, but I gotta do some working ;-)

Brian Says:

I could be wrong but this blog post is dumb and it doesn’t sound like it’s written by a programmer. Why should programmers have to worry about stuff like memory allocation when we have enough trouble dealing with business logic alone? Do he propose we go back to coding in assembly? Software development today would be hell if it weren’t for all the advances in hardware (and we probably wouldn’t have that many concrete advances in programming languages if the hardware wasn’t there to support it). Translation: software has become easier and faster to build because of better hardware - not worse.

jaggah Says:

Brian this post wasn’t about the easiness in software development, that is very obvious and trust me from a developers point of view (and we are/were all developers at a certain stage, including the author of the text) this is the greatest thing that could have happened. The problem is in what the software produced today looks like. And trust me if a programmer should worry about something is about memory allocation and memory leaking. Tell me how do you intend to write a highly optimized software in C++ if you don’t keep track of your pointers? Isn’t that memory allocation. And what about the hours spent debugging your java code to find that memory leak?

So yes, memory, and all its aspects ARE a programmers worry.

Regards,
Jaggah

*p.s. - For reference I’m a software developer for 2.5 years, developing in Java and C++ (mostly Java)

Little talker Says:

Well, I think that the statements of the post are too bold since it makes a very general assumtion based on questionable principles. I’ll sum up the points made here:
Gaming has pushed hardware makers forward into improving performance, better performance has made it less necessary to be concerned about code optimization, and in consequence, software is worse than it would be if there were no gaming industry.
So, point by point:

Gaming has pushed hardware makers forward into improving performance

It seems to mean that Moore’s law exist only because of gamers. It ignores completely the many preformance-hungry real life applications of computers (from google search to physics simulation, very real examples of power hungry apps that would by themselves give a significant push to hardware development). Not to mention Intel’s AMD’s and others needing to make cash by the loads. Do gamers deserve all the credit (or a siginificant part) for pushing the whole hardware industry forward? We all want to give what we do a special significance, but this is so unrealistic.

better performance has made it less necessary to be concerned about code optimization

Of course you care less about performance if you code to a PIII than if you code to a 48K spectrum. That comes in terms of what your software needs to get done and what hardware it will be run on. Developers are often warned never to optimize before they have the program running because you never know where the bottleneck is going to be. In other words, optimization can be bad if it doesn’t affect the critical parts of the application you are coding. Optimized code is usually harder to mantain. Optimization itself is not a measure (at least, not the only one) of the quality of software except in movies like ‘operation swordfish’. You know, macho programmer that makes optimal code in seconds…

in consequence, software is worse than it would be if there were no gaming industry

I think this is a very partial conclusion based on debatable premises. Games programmers do to the latest nvidia supercard what they used to do with the 48K of the spectrum: squeeze it as hard as they can. But since cards are renewed every 6 months there is no time to hit the rock bottom of the cards’ performance. The spectrum/commodores/Amstrads were around for how many years? Which were the best games six months after the spectrum came out on sale? I bet they werent the ones with best graphics and sound ever made. A good programmer, with time, will be able to squeeze performance out of anything. But optimizing alone isn’t making him a good programmer.

If we look at gaming software we see that:
Gaming software [for PCs] relies in current hardware specs rather than originality or playability. Since those renew in a 6 months cycle, and games take from 2 to 5 or 6 years to make, development is made on estimates for a vague hw spec.
New graphics features (lightning fx and so on) must be used in order to be competitive so the percentage of code being developed for new specs is significant. Being new features, it takes time to get to the point where they can be used optimally and by when that time comes, new specs are out that need to be used. It’s not about not caring about performance anymore. It’s all about keeping the pace with new APIs and specs that move constantly.

Games take huge budgets and huge teams to make, so not all the programmers will be top notch and it will be hard to manage them (whereas for the spectrum you had 1-5 programmers in close contact with each other).
So I see fast moving APIs, high cost of production, release dates, and sheer size of the projects hurting development. If anything, hardware improvement makes all of this possible because, what program could you possibly make for the spectrum that took 200 people to make?
Rapid evolution comes at a cost, but like I said earlier there is so much more to take into account when judging the quality of software that optimization. If we had enaugh with 640k like you said, it would mean that our games didn’t need more than that to run. Take a peek at your memory while running quake III (an old, good example of optimized, well engineered program AFAIK). Or, for that matter, try and run doom II, see what it takes off of your RAM.
I could go on and on… By the way, I’m a programmer myself with (only) 6 years experience. I seldom deal with memory allocation (I do java - thank God for the garbage collector!). When I had to deal with that, well I was even more glad I don’t need to normally.
I think you should take in account that your post is a very general assumption about all the proffessional programmers out there and you should be careful when doing such bold statements. On the other hand, it was fun to discuss because the same idea came to my mind years ago ;-)

zeroSignal Says:

Little Talker:

I completely agree with all the points you have made - my original post was in no way a firm or concrete statement. I simply discussed the (off) possibility of gaming indirectly influencing the quality of software.

I still firmly believe that gaming has pushed hardware developers into improving their hardware. I certainly agree with you that hardware would have been improved in order to satisfy the needs of large-scale customers (ie, searching & so on, as you mention), but IMO, the home user, ie, the average home user that merely surfs the net and does some writing on their computer has certainly benefited from the influence gaming has had on hardware manufacturers.

I never at all said that gaming is the ONLY influencing factor on software quality - heck, my statement could be completely false for what I know - it’s not like I have researched the field and based my statements on facts. I’m just passing on a conversation that me and a friend had, and some of the conclusions we drew out of it - simply as food for thought.

We agree on the basic ideas - and anyway, look me up on ICQ/MSN - check out the contact page.

Leave a Reply
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


January 2007
M T W T F S S
« Dec   Feb »
1234567
891011121314
15161718192021
22232425262728
293031  

Quick Links:
Real Life
Speedworks
Woona (MK)
Camarogeddon
TechZ
Penny Arcade
UGoto
Sinfest
Driven To Destruction
Final Gear
VG Cats
ref (MK)
CTRL-ALT-DEL
Kaboon
Viper007Bond
random_monkey



Add Digital Phantasy to Technorati Favorites!

Trillian!

Get Firefox!

Get Thunderbird!

Eliminate DRM!

Subscribe to my RSS feed!
We are Anonymous!
Zero Punctuation


digitalPhantasy © 2005 | Sprocket by Camarogeddon
Not a sausage. Nothing you can eat, chew or throw rocks at.