views:

621

answers:

8

Which OS do you prefer to program on? Client or Server

There is a school of though that if you are doing (mostly) web programming (or other server based code), you should use a server OS for your dev machine, since that's closer to the environment where your app will be running.

Update: I should add, this is really directed to the Windows crowd

A: 

Regardless of the operating system you're actually talking about, it shouldn't matter. Most applications you might write won't need to worry about the differences (if there indeed are any). Only in rare cases might you use some specific functionality that might only be available on a "server" edition of your OS.

There are other considerations, for example Windows server editions are tuned by default to give less priority and attention to desktop programs, and more attention to things like the file cache. Personally, I would always choose a "client" edition of my chosen OS.

Greg Hewgill
It is the edge cases that get us into problems, though. Knowing your production server's behavior is important once one goes beyond a certain level.
Stu Thompson
A: 

Personally I use Windows Vista but that's because it's what I like and I can use it well. But in all honesty it doesn't matter, your OS should be something you are comfortable in and has the tools you need to be productive.

I would say your test environment is the one you need to have as close to your production environment as possible. I write in RoR on Vista but test it in a Linux VM setup the same as my web server and at work we have a Win2k3 server with IIS6 installed to test our .Net sites on but I develop on Vista using IIS7.

L2Type
+2  A: 

There is a school of though that if you are doing (mostly) web programming (or other server based code), you should use a server OS for your dev machine

I think that applies more to 'system programmers' rather than web 'application programmers'. Why? There is definitely great value in knowing the platform intimately, like one would get in living with the OS, etc. day in and day out. But not everyone can or should need to go there.

While my main production environment is RHEL4, Linux just does not work for me on the desktop--in fact, it drives me crazy. I find working on OSX close enough, though. And I just love working on my Mac rather than an XP box.

I'm doing the Java thing, and the "write once, run everywhere" hype actually works for me. :)

Update: I should add, this is really directed to the Windows crowd

Minute late, bit short ;) Maybe you should edit the title too...

Stu Thompson
A: 

I use Windows Server 2003 set up as a workstation.This is the guide i have used for several years. Really like it.

jamting
One thing to watch out for if you do this is that some software, such as A-V scanners, requires a Server licence rather than a Workstation license to run on Windows Server and these can be an order of magnitude more expensive.
Dave Webb
+2  A: 

OK, I know you're mainly talking about windows but...

I used to develop on windows for deployment on *nix servers. Sure there were lots of gotchas with this way of working, but you just kind of get used to it.

In October 2005 I switched to Linux, initially as an experiment, but I never went back. There was a steep learning curve. I thought I knew *nix pretty well after 10 years of dealing with it, but I knew nothing compared with the amount I learned using it on my desktop machine.

Workflow has been so much smoother developing and deploying to similar platforms.

More recently, we have even started to pick servers running Ubuntu server, so that they most closely match our Ubuntu desktop development machines.

If you are talking about the difference between a desktop and a server edition, I'd guess you needn't worry about it. If you're developing on one OS for deployment on another, I'd consider changing your desktop platform.

reefnet_alex
+1  A: 

The client vs. server OS issue is only relevant on MS platforms. And even there it depends on what you're developing for.

As far as I understand for Sharepoint development you need a server OS to run your code If you're just doing vanilla ASP.Net stuff then it's mostly personal taste.

Edit As Tyler commented, you can run MOSS/WSS on Vista but it's not supported. Or you could develop on a client OS and run sharepoint on a server OS in a VM.

Mendelt
That's technically correct. You can run WSS/MOSS on Windows Vista but it's unsupported. Otherwise your options are Windows 2003 SP1/2008. A good alternative is to dev in virtual machines.
Tyler
A: 

This is going to be a bit of a weird answer but I'm a big fan of Windows 2008 and Hyper-V, as a workstation (I know). Essentially I'll only install Office like software on my workstation and all the development will be in Virtual Machines.

Assuming there's no Win2k8/Hyper-V availiable I'd gladly settle for some old WinXP (but w/Virtual PC).

Hyper-V allows you to get great performance out of any .VHD VM that you run. Both Virtual PC and Virtual Server are free (as in beer) and you can set up a ton of infrastructure that allows you to re-purpose virtual machines (ie. Base Machines, Differencing Disks, Undo Disks). The .VHDs are also interchangeable so you can re-host a previously enjoyed .VHD for other developers to enjoy on some virtual server, OR they can take a copy of it, rename the virtual machine and enjoy your ready-to-go environment with some Virtual PC!

This is awesome for bringing team members up to speed (environment wise) in less than 10 min. YOu can also use it to VERY QUICKLY provision machines that would otherwise take days to setup/configure.

Never mind the much better ability to test from different OS', or be able to roll back changes using Undo disks, VMs are a life saver! Start virtualizing people!

For some of the great benefits of Virtual Machines/Differencing Disks consider this post by Andrew Connell.

Tyler
+1  A: 

It seems like the question is more about whether to use the server or client version of the same OS. So my answer is this: the client should be just fine. You can develop and test web applications of many flavors on client versions of Windows, OS X, and Linux. OS X and Linux obviously make Apache-based apps a little easier by coming with Apache pre-installed, but a download of XAMPP or WAMPP can quickly turn a Windows box into a solid development platform for LAMP applications, as well.

And if you're doing ASP.NET, your development tools (if you're using something in the Visual Studio line) have test server mechanisms built in.

So unless you have some other need for wanting the server version, I would stick with the client. It's less money, and you really don't need the server version.

Brian Warshaw