Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best setup for Linux development from Windows? [closed]

What's the best setup for developing Linux apps from a Windows workstation? Right now I'm connected via SSH to our Linux development server and am using Eclipse, forwarded over SSH via PuTTY, to the public domain version of Xming running on my Windows workstation. It works, but it's not great; Eclipse's response times are far from snappy (noticeably worse than Eclipse running natively on my much slower Windows workstation), I can't resize some dialog boxes, and I haven't figured out a good way to reconfigure my fonts.

Is there a better setup available?

Edit: This is for C/C++ development.

like image 545
Josh Kelley Avatar asked Jun 08 '09 13:06

Josh Kelley


People also ask

Is it better to develop on Linux or Windows?

Effective and faster updates With Windows, you have to wait for a significant amount of time for a software update, and even then there could be issues with every update. With Linux, the updates may be faster, and most of the time, it can fix the problems you've faced with Linux.

Is it worth to switch from Windows to Linux?

Linux can actually be very easy to use, as much so or even more so than Windows. It is much less expensive. So if a person is willing to go to the effort of learning something new then I would say that it is absolutely worth while.


1 Answers

Options for Linux on Windows:

Tools Only

Given you're using Eclipse I'm going to assume you want a full IDE, but if you can get by with just the GNU/Linux tools, there are a few choices.

  • cygwin gives you a bash shell with lots of tools, including an X11 server. This has been around awhile and is mature.
  • msys is a smaller, lightweight alternative to cygwin.
  • GNU utilities for Win32 is another lightweight alternative. These are native versions of the tools, as opposed to cygwin which requires a cygwin DLL to fake out its tools into thinking they are running on Linux.

Linux in a Windows Process

There are several packages that will run Linux as a Windows process, without simulating an entire PC as virtualization does. They use Cooperative Linux, a.k.a. coLinux, which is limited to 32-bit systems. These don't have the overhead of virtualizing, and they start up faster since you're not booting a virtual PC. This is a little more on the experimental side and may not be as stable as some of the virtualization options.

  • Portable Ubuntu
  • andLinux

Virtualization

Virtualization software lets you boot up another OS in a virtual PC, one that shares hardware with the host OS. This is pretty tried-and-true. There are nice options here for taking snapshots of your Virtual PC in a particular state, suspend/resume a virtual PC, etc. It's nice to be able to experiment with a virtual PC, add a few packages, then revert to a previous snapshot and "start clean".

  • VMWare
  • VirtualBox
  • VirtualPC

In my case...

Sounds like your environment has different performance characteristics, but here's my situation: I started out with Eclipse on my Windows laptop (doing Rails development), found this sluggish, and switched to using putty to ssh into a fast Linux box. I do my editing via an emacs running on the Linux server, displayed on Windows using Xming. Or I use native emacs on Windows, editing the files shared via NFS. The latter is slower in my environment due to sluggish saves.

When working from home, I ditch X because it is too slow with remote clients, and just run emacs -nw within a putty window. I then use GNU screen so that I have multiple "windows", and so that I can easily resume where I left off if my network connection flakes out.

like image 101
Pete TerMaat Avatar answered Sep 30 '22 17:09

Pete TerMaat