Tutorial :What are good linux programming environments for windows?


Especially for Rails, I've found that development on Linux is generally a lot nicer than on Windows. However, I still prefer Windows as my main OS.

So far I've tried 2 options.

Dual-Booting with Ubuntu: The problem with this is I don't like having to reboot just to use Ubuntu, like if someone just asked me a quick question about a project.

Virtualizing Ubuntu with VirtualBox: This is pretty damn slow and freezes up at times, even if I'm doing basic stuff like text editing.

Basically, I'm looking for something that doesn't need to be full-featured, but where I can fetch repository packages that I need such as programming libraries. I was thinking maybe there's a Linux distro that's less demanding than Ubuntu that I can use, or some way to run a decent Linux within Windows without virtualizing. Any suggestions?


Did you consider using Cygwin? I didn't test this myself but there are several resources mentioning this combo:


Have a look at what cygwin can offer you for a Linux- like experience on Windows.

Or: virtualize Windows (tm) inside Linux.


If you want Linux on Windows without virtualization, that sounds like coLinux to me.


Perhaps you need to upgrade your PC. Ubuntu+text editing shouldn't be a problem for VirtualBox or VMWare.

However, if you want a resource-lite distro, try Arch Linux + Xfce desktop.


You can install Ubuntu using a windows installer using Wubi. The result is a standard dual boot setup, but with a simplified method for installing ubuntu if you already have windows pre-existing on your machine. Switching between windows and ubuntu requires a reboot.


I'd try to find another PC to put Ubuntu on. A relatively older one should run it fine.

You can join them together and share the keyboard/mouse with win2vnc or x2vnc.


You may be able to tweak VirtualBox to speed it up significantly. If you have a recent CPU, you can enable VT-x (Intel) or AMD-V, and possibly also nested paging. If your processor supports both of these, you should see a significant speed increase. As mentioned by others, you could always try making linux less demanding - use a lighter window manager, or use a distro like DSL or Puppy linux.


I've found virtualizing Windows XP pretty sluggish with a full dev environment running, but maybe that's just because I do that for Flex development which requires Flex Builder which almost instantly consumes all of my VM's allocated RAM. Virtualization is really demanding on your hardware, my next build is going to have 16GB of RAM so that I can virtualize in peace.

I think it would be faster to run a minimal Linux distro like Arch in VirtualBox and use that for running the servers and things like the console commands that generate your skeletons. I use git for all my source control and just push and pull from a remote repo to share code between my VMs, it's just easier that way than setting up something special.

Good luck. I think this approach is much more reliable and straightforward than cygwin or other POSIX implementations on Windows; it generally takes significant fiddling to get those things to work correctly for more than a couple of applications, and I assume if you're going to be running a server you'll have some issues with it.


Boxes are cheap, especially something to run Linux on. I have a wimpy little garage server that has only 256MB on it and it runs Ubuntu 9.04 server just fine. You can always network the filesystem so you can use whatever on your Win box to edit, but when you run the code, you are actually running in a Linux environment, no games, no compromises.

Once you've taken the plunge (please return it by Tuesday) you'll find that Linux is far more interesting as a server environment. You can try out nginx, or play around with iptables, or ... The point is, just get a separate Linux box and all of the problems are "solved." And you will be building marketable skills in the process.


Try VMWare player. It's free and really nice. You can drag and drop between your windows environment and Linux. It's quite easy to use aswell. I'm running Ubuntu and OpenSUSE on top of my Windows XP.


Download and run the POSIX subsystem for Windows. It's kinda like Linux.


You could stick with Ubuntu in a VM (keep the benefits of broad community support etc.) and try a less demanding windowing environment than Gnome or KDE. Wmii and awesome are, from what I've heard, pretty good. (edit) Forgot about Fluxbox, there's an intro to using it on Ubuntu here.


If you're just looking for a "linux-like" development environment, MSYS provides a bash shell and a good handful of development tools that run natively in Windows. Combined with MinGW, lets you compile and install plenty of open source packages.

Alternatively, Cygwin provides an emulation layer which lets you compile and run most linux programs. A bit slower than the native Windows programs you get with MSYS, but better selection of libraries/software that have don't have good Windows ports yet.


Why not just develop in windows. Most of the standard opend source tooling Apache, perl, php, ruby, sqlite, Mysql, vim, Eclipse etc. etc. come nicely packed as windows ".exe" install files (in may cases much more nicely packaged!).

The only real pain is occasionally you may have to write a ".bat" file which I thought was pretty awful attempt at a shell for an 8 bit machine and has not improved one bit in the last 20 years.


I personally can get by with msysgit, which is a fork of msys, which is a fork of cygwin. Depending on what exactly you need I'd say one of those. it's unfortunate that I've noted incompatibilities between msys and msysgit. I'm not sure if there's a binary incompatibility with mingw and msysgit, but in theory they should work together so I would go with that. Given it doesn't have a package manager... but is enough unix for me on windows... depending on what you really want/need. Otherwise go with a virtualization product.


I recommend using Lubuntu http://lubuntu.net/ instead of Ubuntu when running Ubuntu in a VM environment.

I also do not like the speed of normal Ubuntu. Lubuntu is faster especially in a VM. It also just needs about 256MB of RAM to run good.

Only downside: There are no long term releases of Lubuntu. That means you need to upgrade Lubuntu maybe once/twice a year (which is easy with Ubuntu based systems).

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »