views:

371

answers:

10

Is a gaming machine better for software development?

I have asked this in SO, to get answered by programmers, appologies if this is in the wrong place.

+4  A: 

If you want to develop games, sure. I should know, I have experience on both.

Kawa
I guess that makes sense, but no, not to develop games specifically.
Mark Redman
+3  A: 

I think so. I think the performance required for gaming will greatly help developers. Only overkill would be graphics, unless you use big rendering software, in which case RAM, graphics is a must.

Good CPU, Lots of fast RAM, and a fast HD will do you lots of good.

astander
True. We develop software using Visual Studio and I suspect it doesnt take specific advantage of high-end graphics cards.
Mark Redman
+4  A: 

Unless you're programming something to do with graphics / game related, not necessarily. The video card is going to be underused otherwise. On the other hand gaming machines tend towards the high end making them ideal for many programming tasks.

pygorex1
+4  A: 

Some attributes of gaming machines can help developers, like having a good deal of memory, or a quad core processor (so you can, respectively, run VMs without hassle, and compile faster).

But a fast GPU won't do you much good, so there's no point in spending much money on it. Unless you plan on developing or playing games, of course.

Summing up: if you plan on using the PC for fun, get a reasonable GPU. If you don't, skip it and keep the rest just like you would. You won't regret it.

danielkza
+2  A: 

A gaming machine without the fancy video card, I think that's more suitable for a programmer. (you can use the video card money to add more RAM for example)

Soufiane Hassou
+6  A: 

I would say some aspects are the same between gaming machines and development machines, like large disks, a lot of memory, etc. So in that respect yes, a gaming machine would fit better than a low end desktop.

On the other hand, gaming machines tend to be tuned towards raw performance instead of robustness. A development machine often does not need a state of the art graphics card, nor does it want a RAID-0 to spead up the disk. If it crashes one disk you lose all your work, so RAID-1 would be much better. Same holds for memory, ECC (or what its called nowadays) is a bit slower but adds robustness.

One gotcha with powerful development machines is that they do not represent the non-functional requirements as to execution environment. If you are not aware of this enough your software will run slow on a "normal" machine because it ran great on your supercomputer :-) One take on this is that development machines should always be a tad slower than the target machines, but this cuts into your development time. A better solution is to have slower machines in the test environment and a few slower machines in the development lab.

rsp
You can always slow down your program or computer. Speeding them up is way harder. With an high-end PC you can test pretty much any combination of RAM and CPU, so if money is not an issue, it'll be an worthwhile investment.
danielkza
+1 for addressing robustness and stability.
Pekka
RAID 0 is fine for a development workstation, provided that your source code repository is on something more reliable (e.g. RAID5 on a separate server, with regular backups).
Roger Lipscombe
What danielkza said. With powerful enough hardware, you can always emulate the target system through virtualization.
Chris Charabaruk
Yes you can always take measures to slow down a machine, when you do that you are already aware of the pitfalls of always developing on the fastest machine availlable, which was my point :-)
rsp
+3  A: 

What you'll need for software development is usually a machine with ample RAM, ample HDD space (and a fast HDD or set of HDDs to boot), a fast multi-core processor (very important if you're working with compiled languages, especially the likes of C++ which take a long time to compile compared to Java or C#) and preferably the ability to drive multiple monitors. For the latter, it's a case of the more the merrier as screen real estate is one of those things that you can never have enough of.

While a lot of this does indeed sound like the spec for a gaming machine due to its raw number crunching ability, the main difference is likely to be the graphics hardware. You don't need something that can render x million polygons per second on a single monitor if you're trying to drive 3x 24" monitors as 2D displays. In fact you probably don't want a usually rather noisy gamer spec video card that only shines when rendering 3D; you're more likely to get more out of a "pro" graphics card that can drive 4 monitors instead.

So yes, I'd think the spec is quite similar and there is a lot of overlap between the two but in the end a developer spec machine is not the same as a gaming rig.

Timo Geusch
+9  A: 

NO.

  1. CPU For software development, you need lots of cores. For gaming, you need fast but not necessarily many cores. This is slowly changing as newer games are being written to take advantage of multicore CPUs, but the general case is that most gaming machines focus on raw CPU power. For example, in my case, I'm an RoR developer, and during development I run: my editor, mongrel, solr, postgresql, and memcached. Most of the time I also have an open browser, a PDF editor, and iTunes.

  2. RAM Most games will be OK with 2-3GB of RAM. For software development, especially web development - if you will be running multiple servers - you'll want at least 4GB, or even 8GB of RAM.

  3. GPU Top-of-the-line graphics cards for gaming can cost $500 or more. For software development, you can get away with the cheapest GPU you can get. The only aspect of the video card you'll want to concern yourself with is the capability to handle multiple large monitors.

It will actually be helpful if your development machine is so crippled (gaming-wise) that you can't play the games you like to play on that machine. No distractions! :)

Radamanthus
When you choose the graphics card, you should also look for: a quiet one (not one with a noise fan); if there is anything analogous left in your setup, you should also look for display quality (no flickering etc.)
ammoQ
This is really scary: "you'll want at least 4GB, or even 8GB of RAM". Especially that you specified, that it is web development. I wonder what happens in next two years... I am doing web development so I need 32 GB... and where all this goes? In this sense I would better stick with gaming machines where I have at least crude understanding about how my memory is used.
AlexKR
As I said, in my case, I run:a database server (postgresql) - 1GB RAM or morean application server (mongrel) - 250MBan editor - can shoot up to 1GB RAMa search engine (solr) - 250-1GB RAMmemcached - 256MB+, depending on how much you give itWhat if I need to integrate my webapp with another, running on a VM? Then I'll need 1GB for the VM. What if I need to test multiple versions, running at the same time? Then run multiple VMs, at 1GB each. These are extreme cases, however. Most of the time, 4GB should be OK. For now :)
Radamanthus
+1  A: 

Gaming machines are great for everything except your wallet ;-)

Gabriel Hurley
... and the noise level in your office.
innaM
+1  A: 

Programming WPF Shader Effects is one of those particular tasks where a gaming machine can actually allow you to do more while not working in game-development. Also, GPGPU work may benefit from fast memory transfer and fast GPU.

luvieere