views:

1532

answers:

10

On my servers I run everything on Linux/ Apache, but for offline preparation before upload of the projects I'm using Windows (Vista) with a local Apache/ WAMP, PHP, Python, GD_image installation and so on. My question, would it be much easier in terms of setting up a good environment if I were to use Linux, e.g. Ubuntu distribution, as development OS for these things? Would you know some pros and cons when it comes to Windows vs Linux in terms of web development?

(As I'm using mostly web apps these days, switching the OS might be less of a problem. I would need a good replacement for my image editor, though, as I prefer Corel PhotoPaint and PSP4 over Gimp, last time I tried.)

A: 

I don't think you will notice any difference for development. Development should be just fine as you are using the same stack (minus the OS of course).

Andrew Hare
+9  A: 

As always, your production, testing and development environments should be identical or as similar as possible to get consistent results.

kauppi
A: 

The only difference I can think of is that when something hangs in a linux gui (gnome, but I think it applies to all) it usually just hangs inside the window, and I have never experienced the general "locked up" feeling you can get on windows.

In all fairness to Windows XP, you do usually get out of it when you finally manage to kill the processes.

krosenvold
A: 

I don't notice much difference.

If you use a lot of "bash" scripts then its easier if you can use them natively in your dev environment (i.e. LInux) likewise if you use a lot of OS specific "system." calls in your code. But this is not normally the case for web development.

One thing I have noticed though is that some open source tools (I am thinking of eclipse and vim particulary) have better implementations for Windows than for Linux -- go figure.

James Anderson
+33  A: 

Disclaimer: I use Ubuntu for development and Ubuntu (server) for production servers. I might be a bit biased but it seems like you're looking for somebody who's actually gone down the same path as you.

That out the way, I love using Linux for development. Most of the tools I required are the same: Eclipse for PHP/Python and a souped-up text editor (gedit in my case now, was Dreamweaver's text mode) for HTML/etc. Under Windows I was limited to FTP* which stunted my workflow a little. Under Ubuntu, I can just mount the working directory and work straight from it, or use a version control app like svn, git or bzr.

Lets get one thing straight: you will spend more time on the command line but I don't see that as a neccessarily bad thing. I have short alias commands that do a million times more than five minutes clicking around several Windows windows could accomplish. If you have Linux servers, chances are you do a fair portion of your administration over SSH already, so it shouldn't be too much more of a jump.

But even just on the desktop, there is a modest learning curve. The initial annoyances mainly come from finding the "right" applications. There is a lot of choice and very rarely do you find a direct mapping to a Windows-only app. This just takes some getting over. You will get used to something provided it's functional and you actually use it. That's technology for you.

For stuff you just can't drop (Adobe Fireworks and Photoshop for me) you can use Wine to "emulate" Windows (though it's not really emulation) or use a virtual machine like VirtualBox to run a real copy of Windows in the background. I only need these apps for 10-30 minutes at a time so I just fire up a TinyXP image in VirtualBox. Your mileage will vary with both alternatives.

Pros of Linux:

  • Free (in both ways)
  • Plenty of dev apps
  • You can make it mirror your production environment (cutting out nasty surprises)
  • Generally well supported with updates
  • Looks gorgeous if you put enough time into using the right effects =)
  • It makes you much cooler. Fact.

Pros of Windows:

  • You've already got it so you're not going to have to spend a week reacclimatising
  • You've already put money into it
  • Upgrades do a very good job of clearing out your wallet of all that troublesome cash.

Ultimately, it's really up to your personal work-flow and tastes. Both systems are more than capable or providing a decent work flow.

*I wasn't limited to FTP as such but getting a svn (or other) server set up back then was, I'm ashamed to say, beyond me. But Windows would not support my current configuration which relies on bzr+ssh... So perhaps it is Limited. I'm rambling.

Oli
+1 for "It makes you much cooler. Fact.".In addition when I have to do dev on windows box I always find myself really missing all the built in command line stuff on linux, e.g. grep, perl, awk, find
MrWiggles
Mr. Wiggles, that's what msys (mingw.org) is for.
T.E.D.
"Plenty of dev apps" -> yeah, just fire up synaptic and start browsing. It's all there.
Svante
+1 Brilliant answer: You also have the excellent (wine based)crossover office for running some of those "undroppable" applications.
DRL
@Oli: +1, but you say: "Pros of Windows: You've already got it so you're not going to have to spend a week reacclimatising" YEAH TRUE except that everytime they release a new Windows version (XP vs Vista vs W7) all the menus and user interface are moved in different places from where they used to be and everytime it takes months to get confortable with it. I would add ad Linux Pros that once you learend it it lasts forever no need to find menus in different positions from one version to another.
Marco Demajo
+2  A: 

Our company is playing with PHP in WIMP (Windows, IIS, MS-SQL & PHP). I have noticed that there are times where PHP behaves differently on WIMP vs LAMP. (The most obvious things involve pathing but I have seen some issues with php.ini, but that may be my greenness with PHP.)

I have also played with WAMP (Windows, Apache, MySQL & PHP) and that seams closer to LAMP, but still has some differences in behavior.

Since the we are planning on running on WIMP, it really isn't a problem, but if I was going to try to develop in WIMP and deploy on LAMP, would think twice.

I would run LAMP on a VM on Vista (or LAMP on a spare computer) and use my Windows tools to build the site but run it on the real thing.

jrcs3
+1  A: 

My question, would it be much easier in terms of setting up a good environment if I were to use Linux, e.g. Ubuntu distribution, as development OS for these things? Would you know some pros and cons when it comes to Windows vs Linux in terms of web development?

Seeing as how your Windows environment is already set up, I don't see how it would be easier setting one up in Linux. However, there are slight differences between Windows and Linux servers, and although I develop using XAMPP I prefer to test on a Linux setup for compatibility.

(As I'm using mostly web apps these days, switching the OS might be less of a problem. I would need a good replacement for my image editor, though, as I prefer Corel PhotoPaint and PSP4 over Gimp, last time I tried.)

You might try Krita - it does a reasonable job of bringing image manipulation to the masses. I have moved from PSP/Paint.Net to Inkscape - while the learning curve is steep, I haven't looked back - and it runs natively on both Windows and Linux. :) Excellent tutorials via screencast are available from heathenx - helped me tremendously.

Raithlin
A: 

Linux of course. With only a few commands you can have a complete development rig. Apache, MySQL, Python, Perl, your favorite IDE's, in what? 10 minutes? You don't have to go to www.x.com to get x and then install, repeat... Also, Linux is a install and forget OS this days. I haven't have the need of touching my system since I had installed it.

Ubersoldat
A: 

i dont' know if I need to start a new question. I have not found my answer yet so am feeling this is the most appropriate locations (sorry sysadmin).

I am trying to setup my home Development Environment

a) Server Ferdora 11 with SVN on Apache b) Clients Windows Vista Home Basic. c) IDE Visual Studio 2008 with AnkhSVN

I got the server ready, but am unable to connect use Visual Studio to communicate to SVN Server. I could browse the the server, i can use the web browser to access the content.

I have tried all possible please help me.

Thanks

Yes, you need to start a new question.
Jeremy Stein
A: 

Of course Windows is a better development environment. No question. Oli is right about the facts of course, but I must disagree with the conclusion. In Linux you do more command line. That is very bad. In Linux you spend a lot of time looking for the right applications. That is bad. Just these two alone are real resource drainers. They make it very difficult to set up your environment. Sometimes you will just try to take short cuts and the quality of your developed code will suffer. ("So I just wont unit test") They also make it very unlikely that two programmers will use similar environments. That makes it difficult to introduce new workers into a team. Oli is also right about Linux being "cool". Cool means - "look what a hacker I am, look how I do all of that with one enter on the command line" In Linux you can become such an expert and so cool that noone will be able to follow what you did and how. And thats a good thing? David

davids
-1 because this post is utter nonsense. I am much more productive on my Debian based machine than I could ever be on Windows, because of the fact that I know the Linux system much better than the Windows system. That's what it all boils down to, knowledge of the system.
nkr1pt
Hi nkr1ptLets not get angry here : )We are actually agreeing.All I am saying is that the principle of least knowledge applies here too. Needing to know about the system in order to be productive is like needing to know the implementation in order to use the interface.Sometimes, we have no choice - but I avoid it when I can.Learning all the clever ways to make the Linux system do wonders may be enjoyable for some, but when there is a development job to be done, time spent on learning the system is time wasted.Have you every used Visual Studio? Give it a spin. You wont look back.
davids