views:

231

answers:

6

If so, why?
What's missing in Windows that I get for linux (excpet GCC, and we have MingW for that)?
I know it's subjective but I want to hear some opinions before I switch OSes.
I'm not familiar with either Emacs or vim. Is there another IDE that you guys would recommend?
What's the best development env. linux distrubition?

A: 

I would not say, that Linux is a better development-environment than windows. For Linux-development for sure, but in other cases both are good.

What I was missing long time on windows was a powerful commandline, but with cygwin you are able to give Windows that missing functionality.

Mnementh
powershell is also a great command line
David Archer
+3  A: 

If you are developing Windows applications then I should imagine that Windows is a better development environment. If you are developing Mac applications then I should imagine that Mac OS X is a better development environment.

John Topley
+3  A: 

It is my opinion that your target environment and whether or not your favorite (or most productive) tools exist for that environment are the determining factors here.

jbu
+3  A: 

My previous experience of moving from Windows to Linux (Ubuntu) was a good one. My previous job was as a Java programmer, and I was much more productive on Linux. Part of that was the better command line tools and so on (although as the poster above mentions, Cygwin helps you there), but mostly it was because with our large codebase my build time reduced from about 40 minutes to about 10, I suspect simply because of the performance of the different filesystems. And given that we had automated tests as part of the build, that was a VAST improvement.

But that was for me, with my environment, and my codebase. It will depend on many things about the work you are doing. From my experience, I would suggest it is at least worth trialling.

GOR
+2  A: 

The tooling on Linux is better in some areas (valgrind), some tools are free for Linux while they're expensive for Windows (VTune), and you have compilers which are updated more often (GCC). That's for C++. For Java, there is no real difference. For .NET, Mono is nearly on par.

On the other hand, the IDEs on Linux are not as good as on Windows. Visual Studio is very nice because it integrates the debugger, the build system and the editor -- especially for C++, you really want the debugger to be closely integrated. I guess this is the main advantage over Linux. Second, many 3rd party tools integrate well with VS, and less so on Linux (VTune is a prime example here).

That said, it really depends on what you develop. For C++, I'd argue that Windows is a more comfortable environment than Linux. For C, GCC is actually better. For .NET, I tend to develop on Windows, but the applications run fine with Mono, and Monodelop is looking quite promising already. For Java, you can use Eclipse or Netbeans, which is basically the same experience on both Linux and Windows.

Regarding a Linux for development, I tend to use Ubuntu (Wubi in my case), which is nice because it usually "just works" without too much setup.

Anteru
A: 

Well it all depends on what you are developing really. I develop for both environments and each has it's benefits and drawbacks, plus there are gotchas with both.

I write web and server software in both JAVA and PHP and find that writing in linux helps with the little issues about case sensitivity as linux is a case sensitive OS. Things in php like $someobject->getID() is not the same as $someobject->getid(). Both of those will work under windows but not in linux. (caught me out a few times)

Linux gives you alittle more flexability to see what your application is doing to the OS as well as itself when it is running which always helps you find out if your app is generating high CPU and IO load. However with stuff like the sysinternals tools this is less of a problem on windows.

I find developing desktop apps easier on Windows though, as it gives me a true indication of what my end user is going to see, which sometimes doesn't happen with java.

I think my advise is use the OS that you plan to deploy in, it will make the transition when deploying less painful.

Don't forget you can always dual boot your machine...

EDIT - You can use Eclipe and Netbeans on both OS for Java, PHP, C, C++ and other languages, not sure about c#

Grant Collins