views:

247

answers:

11

OK, so that's maybe not the best title, but I don't know exactly what I want to do, so, please, hear me out.

I've used Windows pretty much all my life although I played with Linux on several occasions. At work everyone does web development with php on Windows using the same IDE and stuff.

I would like to experience the powerful Linux command line as well as test my web apps locally running the Linux version of php, however I prefer to keep using the IDE because I feel that version control, FTP, code completion etc. are helpful to my productivity. Eventually I would also like to dive into Ruby and Python and I hear that they're not really suited for Windows users.

Is running a Linux distro in a virtual machine my best bet? Should I try something like Wubi (Ubuntu running inside Windows)? Or are there any other options out there?

+3  A: 

To begin with, running a virtual machine is not a bad idea. But the boldest step would be to erase windows from your personal laptop/machine and then install only Linux. This is what I did when I wanted to get my hands dirty. This is the easy but tough way to learn. As far as IDE goes, I think netbeans would satisfy all your needs regarding PHP, Ruby etc. Note that netbeans requires Java Development Kit installed as well.

ring bearer
Boldest, perhaps, but hardly the wisest. Why wouldn't he experiment with and get comfortable with Linux before completely erasing his functioning and usable computer?
Adam Crossland
@Adam, the same reason you live in a country to learn that country's language. Being forced to speak French when all around you are French speakers is a strong motivating factor in increasing your French speaking skills.
jmucchiello
There's bold and then there's masochistic. I remember the first time I tried to use linux. Do NOT remove windows. Even after getting to know linux. It might be vastly more programmer friendly, but there are some things in Windows it just can't compete with. Keep both OSes, you'll thank me for it.
Manos Dilaverakis
@jmucchiello: What if he decides that he doesn't like it and wants to go back home? He can't because he surrendered his citizenship. Perhaps he should just visit until he decides whether or not he actually like Brie and baguettes.
Adam Crossland
ring and jmucchiello are absolutely correct about jumping right in.
Rob
@Manos: I could not agree more. I know, use and appreciate Linux, but for everyday use, I greatly, greatly prefer Windows. That's just me. It might always be @Chris.
Adam Crossland
There's one very good reason not to erase your Windows partition: If you're doing any sort of CSS/JS work for public release, you'll need to test on IE. You can use ies4linux, but it's best to test on IE in a real Windows install. Other than that, I have used Linux fulltime since 1999, and the only thing it doesn't have is a wide range of commercial games.
Alex JL
+1  A: 

Install Linux in a virtual machine. I would suggest a Linux immersion program. Run your VM full screen and try to do everything in Linux.

If you still want to rely on Windows tools or IDEs, create a shared folder between your host and guest operating systems. This way you can use the Windows IDE to edit files that will be served by your Linux VM.

Don't worry too much about languages being "not really suited" for Windows (or any other OS). Those concepts are mostly social constructs.

anthony
If you do run a VM full screen, then don't let it colour any performance judgments you make. Remember you are running two OSes at once.
David Dorward
+1  A: 

I use VirtualBox on my Windows machine to access various linux virtual machines for certain projects that are difficult on Vista. It works great. I use NetBeans to do Ruby on Rails development. It's a superb IDE that supports Java, Ruby on Rails, Python, PHP and probably others.

You can used VirtualBox to load the Ruby on Rails appliance from Turnkey Linux. That'll get you cracking in no time at all; although, if you want to really learn about Linux, you'll probably want to start with a plain vanilla Ubuntu install and learn how to work with not only the command line but also the various package management utilities.

Python development on Windows is absolutely no problem. I use ActivePython and Wing IDE on Vista to do Google AppEngine development work.

Adam Crossland
+1  A: 

If you're interested in running linux in a virtual machine on a windows box, I've had great success with Virtual Box. It's free and it installs guest OSs quickly and easily. I had ubuntu running as a guest OS in less than an hour with Virtual Box.

To address your other statements, I use ruby and python on Windows on a daily basis. Ruby is better at this than python (in my opinion, of course) but either way, you'll run into gotchas with portability. They do not run the same in Windows as they do in Linux/BSD/Solaris/etc.

A: 

I'm a little confused about the question, but I'll give it a shot.

Doing web development on Linux shouldn't be any harder than Windows.

My experience in the Linux world is limited(I drank the MS kool-aid awhile back)For IDE you may want to think about Eclipse, for the webservers that run on linux look into apache(for static content, html, css, js, etc...), and something like Tomcat for your application server(there are many others). The language that goes along with Tomcat is Java. There are some open source databases out there like Firebird.

As far getting Linux up and running, anything from an old PC not in use up to high cost PCs should suffice. It's a pretty reliable OS.

Chris L
A: 

I was thinking about the same and found Wubi (http://wubi-installer.org/).

Wubi is an officially supported Ubuntu installer for Windows users that can bring you to the Linux world with a single click. Wubi allows you to install and uninstall Ubuntu as any other Windows application, in a simple and safe way.

I didn't try it yet, but it looks as what I need. If you try it, let me know how it goes :)

Vitaly
Wubi is a great way to jump in, look around and even stay, but, quickly, you'll find won't use or need Windows anymore.
Rob
+1  A: 

I run Fedora 11 under VMWare Player on a windows machine. It works nicely.

https://www.vmware.com/products/player/

Linux is a development environment. You don't need to buy and add a bunch of stuff the way you do in Windows.

prefer to keep using the IDE because I feel that version control, FTP, code completion etc. are helpful to my productivity.

  1. FTP is already available in dozens of forms in Linux. You don't need an IDE for this.

  2. Code Completion is overrated. In dynamic languages like Python (and probably Ruby) it's very hard to do correctly. Komodo Edit does a nice enough job, as does Python's IDLE. But there are gaps where it can't reason out what the object is probably going to be. So, it isn't helpful with dynamic languages.

  3. etc. is vague.

Eventually I would also like to dive into Ruby and Python and I hear that they're not really suited for Windows users.

Really? Where did you hear that? Please provide a quote or a link. I do development in Windows as well as Linux using the same Python code base. It works the same in both places.

S.Lott
What do you need to add and buy with Windows? Everything that you need to do development with Ruby on Rails, PHP, AppEngine is absolutely free. You can also get Visual Studio Express for free to go towards the MS end of things. Sorry, but this just seems like anti-Microsoft FUD.
Adam Crossland
@Adam Crossland: Most folks who ask "How do I start using Linux for web development?" are asking what they have to add. Since 90% only have experience with Windows (the rest are MAC-only rarities) then the question is really about comparing Microsoft with Linux. And that question amounts to "what's the equivalent of Visual Studio?" Since the question is bad, I'm just playing the percentages here. Yes, there's free stuff for Windows. **It must be added on**. For Linux, most of the time, it's already installed.
S.Lott
A: 

As someone who works with PHP and develops on both windows and linux I would bin the idea of a VM and look at duel booting your machine.

You can then choose at boot what OS to work in. I find that I do the bulk of my development under linux as I find debugging php scripts using the Eclipse IDE, Zend_Debug and php a lot easier than on windows.

Having windows on your machine then also gives you the option to use that OS if you so wish.

If you need to work between the two OS's create a small FAT partition that way you can see your work from both OS as Windows can't see EXT3 or EXT4 filesystems that linux uses. Also even though it works quite well I don't trust writing to NTFS from linux.

Grant Collins
A: 

Wubi is great but, once you start running it, you never switch back to Windows, so it's almost a "Why bother?" situation. It's good for a quick peek but you'll find yourself staying in wubi and/or getting another box to do a complete install of Ubuntu. Then you won't resist installing some other distro and, all of a sudden, you're growing a long beard.

Rob
A: 

I would recommend dual booting. It discourages you from switching back over to Windows, and takes full advantage of your hardware. As already suggested, a good start is Ubuntu. I use it, and love it.

There are about 1,530,000 tutorials on installing LAMP (Linux Apache MySQL PHP/Python)

Jonah Bron
A: 

www.colinux.org/ instead of dual booting or VM

and www.winehq.org/ for keeping your IDE still

mario