views:

216

answers:

7

I already have experience with setting up virtual machines, running them and other minor tasks. Im a gamer, so I wont get rid of windows (for now at least...) but I do want to be a great programmer and to be involved with the Open-Source community.

Id like to know if its a good idea to do my programming in linux through a virtual machine, vs giving it a partitioned section of the HDD. Id like to know about performance pros and cons and functionality. All responses are appreciated, thanks in advance.

The type of programming I intend to dive into : Android Dev, Web Dev, Desktop Dev...More Android and Web right now though.

So im looking at C#,C,C++,Java,PHP,HTML,MySQL...Off the top of the dome.

I do web designing as well, so dreamweaver is added as an "essential". But im sure I can do dreamweaver files and upload them to the server after programming in Linux...Right?

And any info on IDE's in Linux for the above mentioned are appreciated, but i would prefer going the coding route and understanding the essence of whats happening "under the covers"

Thanks to all for reading, I appreciate it. Hope this isnt confusing :S

+1  A: 

If you're interested in Android development and you want to use Linux, then I would recommend you do your development in Eclipse. Eclipse is available for Linux and if you get Ubuntu then Eclipse is amazingly easy to install. I used VirtualBox + Ubuntu + Eclipse for several projects I worked on. If you decide that Linux is not for you and your project was in Eclipse then you will have no problem switching back to Windows since Eclipse is available for both operating systems.

The ONLY problem I had was the screen size on the virtual machine... if you have a big screen and you use a virtual machine then you might get limited to a fraction of your actual screen resolution. It's very easy to install Linux on a second partition, so I would just recommend you go with a second partition if you want to fully utilize the size of your monitor.

Lirik
Iv heard good things about netbeans, and am a bit biased towards it because of the reviews. Do you have any knowledge of netbeans running on linux through a virtual machine? Thanks again for responding
ihaveitnow
Netbeans and Eclipse both run on any operating system with Java (including Windows and Linux). They will probably both be horrifically slow though. They're slow when you run them natively.
Brendan Long
Even with 4GB RAM and 2.13GHz Dual Core? Well I intend on doing most of the code in text editors...Does that make a difference in performance in your viewS?
ihaveitnow
Sorry my last comment was phrased badly. Netbeans is acceptably fast when you run it natively, but it's already pushing it. If you virtualize it, it will be terrible. I have 4 GB of memory (netbeans uses around 500 MB) and a Phenom 9600x4 and it's very laggy.
Brendan Long
Also, if you're editing the code outside of Netbeans.. what's the point? Makefiles are easy to write..
Brendan Long
There is an "Epic Battle" between Netbeans and Eclipse, every developer has their favorite so I suggest you try them both for a week and see which one feels better to you.
Lirik
@Brendan, so if intnd to do most of the coding in command line, then a Virtual Machine is good? Awesome :)Thanks for the respoonse
ihaveitnow
+1  A: 

A couple things:

  • If you're using an IDE, there's no point to coding on Linux. Linux is nice for programming because the command line tools are awesome. Netbeans and Eclipse both work fine on Windows. All you'd be missing is makefiles (which IDEs don't use anyway).

  • Using a virtual machine would be annoying (working with the window and stuff) and slow. Try AndLinux if you want to have Linux running in Windows. It sets up X and Pulseaudio for you, so all of your programs will appear to be native. It's basically a way to run Ubuntu as a Windows service (all Ubuntu packages for your architecture are installable).

  • If you just want the fun of Linux command line programs without access to all of Ubuntu, cygwin is smaller and might be faster.

  • If by "Dreamweaver files", you mean HTML/PHP/CSS, then yes, you can just upload them to the server. As far as I know, the only ASP or ASP.net compatible server is Microsoft's, but why use that anyway?

EDIT: SO didn't give me enough space in the comments to answer your question..

AndLinux and Cygwin are basically just better ways to do your "virtual machine" idea.

Cygwin adds a posix layer to Windows (basically everything you need to compile Unix/Linux/BSD programs). This means that you can generally take a Linux program and just compile it on Windows and have it work. They also have repositories, but in my experience, the cygwin installer is slow and hard to use.

AndLinux runs the Linux kernel as a Windows service, giving you a similar experience as running it in VirtualBox/other virtualization programs. However, it also sets up X (the graphics layer for Linux) and PulseAudio (a sound system that lets you run sound over a network), so that when you run Linux programs they act and sound like native programs. I also like AndLinux better because you have access to all of Ubuntu's programs, and apt-get is easier to use than cygwin's installer. Also, if you use AndLinux and later to decide to go 100% Linux, you're basically already using it that way.

What I'm getting at is: If you want to run Linux in a virtual machine, don't. Just install AndLinux. It will be faster and it's much easier to work with (since everything is just a normal window).

Here's an example of the difference:

Screenshot of AndLinux: The program in the bottom right corner is running in AndLinux. Notice how it just looks like a badly themed Windows program? Compare that to something like this, where you have another desktop in a Window.

And still.. there's no reason to virtualize Netbeans. It's a native Windows program and you can gain nothing and lose a lot of speed.

Brendan Long
Well as I had stated, I want to do pure coding...Just for the knowledge of it.What is the benefit with programming using AndLinux?Whats the benefit of CygWin?Can you relate your personal experiences with these softwares?
ihaveitnow
My answer didn't fit in the comments..
Brendan Long
Thanks for the update, I see how the AndLinux looks. So it basically runs linux on top of windows then.And I can do the coding using the AndLinux command line?
ihaveitnow
Its only for 32-bit versions...I run 64-bit Windows 7.Thanks alot for your participation though
ihaveitnow
Ah :( You might like cygwin. It will definitely be faster than VMware, and since it uses the same hard drive as Windows, it's fairly convenient.
Brendan Long
I loved the idea of AndLinux, went ahead and did a youtube on it...And it was EXACTLY what I was looking for. Since I cant have it, I decided to Dual Boot. Doing so now.So the you gave me the response I was looking for Brendan, more plus to you (Y)If you run a 64bit version of Windows - Get AndLinuxIf not...Probably best to Dual boot
ihaveitnow
It's possible to set up a virtual machine to act like AndLinux, it's just much more difficult. You have to install an X server on Windows and then run all of your programs in a specific way. I would explain it but I don't know how. I guess gaming and programming don't generally happen at the same time, so dual booting might work.
Brendan Long
+1  A: 

My setup is sort of the opposite: I run Linux as my main OS, both at work an at home, and I have Windows in a virtual machine. On a modern computer with adequate memory the performance of development tools is not a problem. I work with Visual Studio in the virtual machine, and I have seen few performance issues. (But note that this is on a fast computer, and that you may need more memory than otherwise, since you are running two OS:es at the same time. On an old computer with less memory it can become unbearable.)

Dual-boot, where you have to restart the computer to switch OS, doesn't work well for me. It takes way too much time to switch, and really need to switch back and forth. Having Windows in a window works much better for me, and you can maximize that "Windows window", so it looks like you're just running Windows.

Thomas Padron-McCarthy
Thanks for the response Thomas.Mind me asking what your specs are? And what do you use the Windows machine for? Coding ONLY?
ihaveitnow
This machine is a Core i7 920 with 6 gigabytes of memory, and at the office I have a Pentium-something with just 2 gigabytes. I use Windows for C and C# in Visual Studio, and to open the occasional Word document or Access database. No games, video editing or things like that in the virtual machines.
Thomas Padron-McCarthy
Thanks for the response Thomas, advice is duly noted
ihaveitnow
+1  A: 

I had no issues running Ubuntu via VMWare. You can easily switch to full screen mode anytime. Strongly recommended. One shortcoming is that Linux will not be exposed to the full potential of your hardware. Compbiz Fusion failed to work as a result.

Given that you're a gamer, I'm thinking your machine should be fast enough to run Linux in a VM. Best to try out the VM before messing with disk partitions.

Vulcan Eager
Thanks for the response Agnel, and for the concern lolBut I have done partitioning before with success, so its would not be an issue. I would just like a more efficient way of multi-tasking.I dont intend to do without dreamweaver, not right now at least
ihaveitnow
Good. Still, VM is quite a nice way to go. You can easily back up machines, move them around, install experimental stuff without worries. With partitioning, you do have to backup your data and stuff right? And you will also have to reboot to switch OSes. That's why I find it messy.
Vulcan Eager
Touche, thanks again. Was it the free version of VMware that you used?
ihaveitnow
Yes. The free player.
Vulcan Eager
+1  A: 

One thing you may want to look at is to have Linux running in a VM, then configuring Samba to allow the host to network-mount pieces of the Linux filesystem so that you can operate using Windows tools, and have Linux running the server processes (e.g., httpd). Alternatively, I'm sure that there are shell extensions for using FTP, NFS, or SSH/SFTP servers from within Explorer, but I've not looked at any for a long time.

If you should happen to need to use graphical Linux tools then you can use the X server found in cygwin for that.

The downside of this plan is that Samba can be a bit tricky to configure, but you get to use the Windows tools you're already familiar with.

Ignacio Vazquez-Abrams
Im not sure I understand completely what youve just said...But from what I do understand it sounds like a good idea."but you get to use the Windows tools you're already familiar with." could you elaborate on that statement?Are you saying that ill be able to use the WINDOWS version of NetBeans through the Linux samba thing? I apologize if my question is not clear.
ihaveitnow
That is correct. The Linux filesystem in the guest can be mapped to e.g. N: on the Windows host, and the files on it can be manipulated by Windows programs running on the host.
Ignacio Vazquez-Abrams
Nice...I will look into setting this up. Do you have any more resources that would help in this configuration?
ihaveitnow
Just the usual suspects. "Learn Samba in 24 Hours", "The blah blah Linux Bible", etc.
Ignacio Vazquez-Abrams
A: 

I use physically separate machines to run Linux and Windows (and MacOS X). This means that I don't have to reboot to do something different, and each system gets the full power of the hardware.

Disadvantages: more desk space used, more time and money spent maintaining hardware (though if you do a rolling upgrade, this is mitigated - Linux runs most happily on not-quite-new machines). Doesn't work so well if you like carrying laptops around.

Be aware that VMs universally don't give you full graphics acceleration. This can be a non-issue (many programs must cope with Intel GMA anyway), or it can be a showstopper. Your choice.

Chromatix
+1  A: 

There is an easier solution..

I still have to use Windows for Symbian programming so I use a Wubi and Ubuntu to provide my double bout into Linux..you deploy Wubi uses a large file and thus no need to worry or mess with creating a partition..

I have used it for 18 months with no data loss and no worries..

There is also another tool called andlinux: http://www.andlinux.org/

It uses colinux to run Linux as a program inside windows..

Fred Grott
Yeah thats what I did prior to your response."I loved the idea of AndLinux, went ahead and did a youtube on it...And it was EXACTLY what I was looking for. Since I cant have it, I decided to Dual Boot. Doing so now. So the you gave me the response I was looking for Brendan, more plus to you (Y) If you run a 64bit version of Windows - Get AndLinux If not...Probably best to Dual boot – ihaveitnow 17 hours ago "But thank you for taking to the time to respond. +1 for great solution.
ihaveitnow