14

I work as a consultant programmer, typically in large businesses. I use a Windows Laptop, and many of my colleagues use a Mac.

My personal preference would be to run Ubuntu if I could have complete control over my development environment. But I will have occasional need for Microsoft specific products, especially IE.

My colleagues that use a Mac often run Windows on a virtual machine for these situations.

My question is: Is Ubuntu a workable solution for the laptop of an enterprise programmer? For example, is it as easy to run Windows on a VM on Ubuntu as it is on a Mac? Has anyone out there tried this? Is there any particular reason why Ubuntu would not serve as well as a Mac for development in this environment?

Note that I am not doing .NET development, so I am typically dealing with Java that is going to be run on an Apache server and used by clients running Windows.

Eric Wilson
  • 12,071
  • 9
  • 50
  • 77
  • 4
    I run WinXP from VirtualBox on Fedora often, seems to work fine for my purposes. However, it does not support 3D acceleration. – Mr. Shickadance Apr 22 '11 at 15:55
  • 7
    Sounds to me like you are fighting against the grain a little bit, I guess only you can know how much extra hassle this is going to cause you, for whatever the benefits will be. Personally I would go dual boot. –  Apr 22 '11 at 16:13
  • 1
    Mr. Shickadance: I'm getting 3D acceleration under VirtualBox. It's not very FAST 3D acceleration, to be fair, but it's there. – JUST MY correct OPINION Apr 24 '11 at 07:05
  • @ChrisF I'm unsure how this question became off topic after a year on programmers. But when I look at my question history, it is evident that I've never figured it out. – Eric Wilson May 09 '12 at 13:37
  • 2
    @EricWilson - it got a flag. I acted on the flag. The flag was that effectively this question is "can I run a VM on Ubuntu?" Which should be a question for Super User or Ask Ubuntu. But as the question is over a year old I didn't migrate. – ChrisF May 09 '12 at 13:37
  • @EricWilson - however if you disagree then I can review the question for reopening (or ask one of the other moderators to review it) – ChrisF May 09 '12 at 13:40
  • @ChrisF Interesting summary, my question was more focused (in my mind) on the pitfalls that others may have discovered, in enterprise software development. As for re-opening, it hardly matters to me. My experience is on Programmers is that if I ask a question it is either uninteresting to the community, or eventually closed. – Eric Wilson May 09 '12 at 13:54
  • 1
    @EricWilson - I tell you what - I'll reopen and see if it gets any more attention. – ChrisF May 09 '12 at 13:55
  • vmware player is supported on Ubuntu. Try it. –  Sep 04 '12 at 11:01
  • 1
    Just my 2c: Virualization works great on Ubuntu with VirtualBox, which is free. I find it beter than VMWare, not because it's free, but also because stuff such as hardware detection and how files and USB ports sharing works is better. I have Ubuntu with Windows 7 in VirtualBox on it, everything works great and fast, and I can share my Android devices and other USB devices between host (Ubuntu) and guest (Windows 7) OSs on the fly. – Shivan Dragon Sep 04 '12 at 13:11
  • It's ok. The only thing I would say, is to choose Mint, which is Ubuntu minus the fugly Unity. – Coder Sep 04 '12 at 13:46
  • Funny. I like Unity, with desktop search as a first-class citizen. But I hardly think that the choice of Desktop Environment will make or break the ability to use Ubuntu in a Microsoft world. – Eric Wilson Sep 04 '12 at 15:24
  • 1
    @EricWilson: Did you make the switch? Is it working for you? Here was my switch; read 4 posts in chronological order (reversed). Just passed 3-year anniversary and it's one of the best technology decisions I've ever made. http://glenpeterson.blogspot.com/search/label/Ubuntu – GlenPeterson Sep 24 '12 at 13:49
  • @GlenPeterson Well, sort-of. I'm no longer a consultant, I work at a smallish tech company now. I have been using Ubuntu professionally for 9 months now, and its been a very positive experience. A nice aspect of working here is that at least 30% of the devs use Ubuntu here, so there is plenty of support for Ubuntu issue. – Eric Wilson Sep 24 '12 at 16:54

9 Answers9

26

I use Ubuntu on my laptop and have used Linux in some form as my primary operating system for over 10 years. This is in a very strong Windows enterprise environment. For those occasions when I need to run something in Windows I have a couple of different VirtualBox images setup and it works extremely well. I very seldom need to launch those. I have no problems at all doing enterprise development using Linux.

I have never used a Mac so can't speak to a comparison with it. I am very happy and productive with my Linux setup.

Dave Kincaid
  • 834
  • 6
  • 10
  • +1 This is also my experience in my last 2 jobs. Java EE + Ubuntu == great – Andres F. May 08 '12 at 21:39
  • 1
    I have had direct comparison. I've described downsides of OSX comparing to Ubuntu in this answer: http://programmers.stackexchange.com/a/65381/14510 – vartec May 09 '12 at 14:19
21

Yes, IMO Linux is the best development environment you can get.

  • Is it "as easy as on Mac"? No, it's way more easy, see the latest update below. OSX is a niche system with very limited support from VirtualBox or VMWare. On the other hand Linux is main target for both of them, because of it's dominance on server market.

  • Java - runs way faster on Linux, than on Windows. Not the slowness of Java on OSX. Apple hates Java and it shows, OSX always has outdated versions, and it runs way slower than on Windows. It's also insecure and prone to trojans. For example currently latest available security update for Java 6 on OSX is update 33, while Oracle already released update 35, which has been pushed to Windows via auto-update. Ubuntu uses OpenJDK by default, but if you installed Oracle Java, you've already received update 35 via repository. Update 35 fixes some serious exploits (CVE-2012-4681), OSX users are vulnerable.

Update:

There is hope for OotB solutions. Dell has started "Project Sputnik":

Made possible by an internal innovation fund, project Sputnik is a 6 month effort to explore the possibility of creating an open source laptop targeted directly at developers. It is based on Ubuntu 12.04 and Dell’s XPS13 laptop.

Another update:

Since lot people have doubts about how easy Ubuntu really is. I've Ubuntu 12.04 on MBP 13". Things that work OotB, no additional configuration required:

  • all the normal basic functionality (graphics, sound, network, WiFi, BT etc.)
  • external displays — in fact it's done better in any other OS I've seen so far. It automagically remembers different setups. In one setup I'm connecting my laptop to 24" side by side, in another I connect it to another 24" with screens one below another. It just knows which setup I'm using. Neither Windows nor OSX provides that.
  • scanner and printer — works out of the box without installing any additional software or drivers. Also the case with network attached printers and scanners.
  • development tools — most available with zero fuss directly from Ubuntu repositories, in few cases custom repositories (requires single c'n'p to enable, then it's controlled via same Software Center).
  • mobile phone tethering — works OotB, via USB and BT;
  • 3G/4G sticks — work OotB, zero fuss, drop down lists with predefined settings for vast majority of providers in the World (did find all that I've tried).
  • multi-touch gestures — although actually the only one I'm ever using is two finger scrolling. Also it's easily configurable (via GUI), so you can for example lock two finger scrolling to do vertical scroll only.

And a lot of similar goodies. Overall comparing with OSX, where everything seems require a third party app or drivers, with Ubuntu 12.04 I hardly ever had to install anything not included by default.

vartec
  • 20,760
  • 1
  • 52
  • 98
  • The situation of Java on the OSX is about to change, since Apple has given Oracle all their Java code, I think OSX will have up to date Java starting from the next release, JDK 7. – Mahmoud Hossam Apr 23 '11 at 13:36
  • 8
    @Mac fanbois: one can always count on you to down vote any answer critical of OSX ;-) – vartec Apr 24 '11 at 11:46
  • 2
    @MahmoudHossam: yeah, Java situation indeed changed. No longer supported by OSX. – vartec Apr 03 '12 at 14:51
  • openJDK is working on OSX builds, they're lagging behind, but they'll get there eventually. – Mahmoud Hossam Apr 04 '12 at 00:00
  • @vartec Java 6 is supported by OS X natively. Java 7 can be downloaded from Oracle like under Windows. –  Sep 04 '12 at 11:02
  • @ThorbjørnRavnAndersen: ATM, current Java 6 on OSX is update 33 (http://support.apple.com/kb/HT5319), while elsewhere it's update 35 (http://www.oracle.com/technetwork/java/javase/releasenotes-136954.html) with fixes for some serious security bugs. – vartec Sep 04 '12 at 11:23
7

I have been using Ubuntu for web development. At times there are cases when I need to check for cross browser compatibility. Yes Ubuntu has very nice support for vmware and works just absolutely fine with no hiccups. I have a couple of instances of windows 7 virtual machines with different apps installed e.g. Ie8, ie9 etc. They start-up pretty fast also.

Apart from that development on Ubuntu is amazing. No annoying pop-ups messages, no notifications, alerts, viruses, malware etc. You can absolutely concentrate on your work. Ubuntu is pretty fast to startup and shut down too.

Working on the apple, I could never get used to the separation of the menu bar and application window. Never comfortable when multiple windows are open.

Screenshot: Ubuntu

enter image description here

Imran Omar Bukhsh
  • 1,959
  • 16
  • 25
  • Me too! With 8GB on my Ubuntu desktop, I can simultaneously run two WinXP VMs with IE 7 and 8, and one with Win7 and IE9. I use the HTMLValidator plugin for Firefox on Windows, but otherwise, all my work is done in Ubuntu, including most of my Chrome/Firefox testing. The Unix command line is a developer's dream come true. Cygwin makes Windows usable, but Linux is even better. The only issue with a laptop is less memory for the VMs, but even with 4GB you can run 1 VM at a time, or maybe even 2. – GlenPeterson Sep 20 '12 at 22:01
  • @GlenPeterson - yeah but I have installed the latest Ubuntu release and I really not happy with it. Looking into Mint – Imran Omar Bukhsh Sep 22 '12 at 08:57
  • I should say, I run Unity 2D because the alt-tab between terminals on the regular Unity is not to my liking. In any of the Gnome desktops I always put my favorite programs in the taskbar instead of using the menus. The "Lanucher" is just like that. It took a while to get used to searching for things instead of using menus - I had to remember what things were called instead of where they appeared, but it's no harder. Finally, you still have to use Main Menu to create new custom launchers, but it's not hard. – GlenPeterson Sep 23 '12 at 11:58
  • @GlenPeterson - I dont like the launcher on the left, would prefer it at the bottom. Also the window button are on the left when i am used to working with them on the right. And finally the unified menu bar does not work for me at all – Imran Omar Bukhsh Sep 24 '12 at 09:16
  • I tried Unity, kicking and screaming, a dozen times over 2 years because a friend of mine kept saying how much he loved it. It was pretty broken until 12.04. Now I'm hooked. I love how much screen real-estate I have for what I'm doing instead of for window controls - I set the launcher to auto-hide. Having everything in the upper-left corner makes some sense. Only thing I hate is when I have a small window, the menus for that window are torn off at the very top of the screen with other windows in-between. Ubuntu repositories rock. Alto consider Xubuntu vs. Mint. – GlenPeterson Sep 24 '12 at 13:30
3

I run Ubuntu Linux for everything except Windows testing. I used to dual-boot Windows XP but don't anymore. I can run Windows XP in a Qemu virtual machine, but the USB doesn't work very well. I would recommend dual-boot.

Andy Canfield
  • 2,083
  • 12
  • 10
  • Run Windows in VirtualBox. USB requires some configuration, but it's done everything I need it to. My only issue is a sound loop when using the computer microphone for teleconferences in Windows in VirtualBox. Well, and holding down the Alt key in Photoshop in Windows in VirtualBox requires the Windows on-screen keyboard. – GlenPeterson Sep 24 '12 at 13:34
3

Strongly depends on what you need to do. Visual Studio do not run too well under Ubuntu. Java development works fine. PHP etc works fine too.

I like the Ubuntu desktop and have used it with vmware player to get a Windows instance for a period of six months, and found it perfectly usable for daily usage for a Java programmer. The Windows instance run very well in VMWare Player.

  • I find VS2010 perfectly usable running on a Win7 guest under VirtualBox on my Ubuntu system. The host is a quad-core Phemon-II with 8G of memory and the guest runs on an emulated 4-core machine with 3G of memory. It's a little cranky for the first ten minutes or so, until paging settles down, but after that it's just like running it native. Deploying apps to IIS on the virtual machine is speedy, but accessing lots of data on Sql Server is not. – TMN Apr 03 '12 at 15:35
  • 1
    @TMN, Visual Studio do not run very well on Ubuntu without virtualization software with a Windows installation, and that is what I meant. Given enough horsepower most things run well anyway. –  Apr 03 '12 at 16:21
2

I think the first should be to make a list of all the enterprise apps you need access to and see if you can access them from Ubuntu. Are you using Outlook? Is there an odd-ball expense app that requires windows? Can you enter your timesheet? How easy would it be to install that muck into a windows VM?

Also keep in mind that you might want multiple windows VMs.

One of the consultants we work with has been using Ubuntu on high end laptops and hasn't had any problems. He keeps at least one Windows VM per client. In some case multiple VMs are used to emulate the client environment. He helps us with windows/unix interoperability issues and his ability to reproduce and then solve our problems in hosted VMs is amazing.

A web developer I work with keeps one Windows VM per version of IE. This is on a Mac but the principal should apply to Ubuntu as well. Being able to test with IE6/7/8/9 without multiple-rebooting is pretty handy.

sal
  • 2,078
  • 1
  • 15
  • 19
  • 1
    The first suggestion is not practical, as I can't know what apps will be needed at the next client. – Eric Wilson Apr 23 '11 at 10:28
  • 1
    Pretty much everything works well on Windows on VM, unless it requires to access fancy hardware (beyond typical USB / sound / video stuff). Having extra memory for all this helps very much, but decreases battery life a bit. – 9000 Apr 23 '11 at 14:14
  • "Make a list of all the enterprise apps you need access to and see if you can access them from Ubuntu" - Also see if there is a native alternative to those apps, e.g. How much can you use OpenOffice instead of Microsoft Office? For me, I need both, even specific versions. sometimes one client has Office 2003 and another Office 2010. I have multiple virtual machines: XP/Office2003/IE7 and Win7/Office2010/IE9. This is much better than being stuck with a single Windows version (though at $130/OS and $130/Office, it gets pricey). I Buy OEM Windows CSs from Amazon. – GlenPeterson Sep 24 '12 at 13:40
1

I do this a little differently. I use Windows 7, but have VMWare workstation and create a virtual machine for the environment I want to develop under. I have a virtual machine for Ubuntu, Fedora, FreeBSD and Open Solaris. If there is an operating system that I want to use, then I just create another VM. I hope to be able to use OSX this way at some point, but last time I checked you were not allowed to do this by Apple.

I did try to do this the other way around (VM for windows under and Ubuntu desktop), but it was a mess. VMware had many, many issues with this (mostly crashing the whole machine) and was generally slower. Also, the kernel updates for Linux when trying to use VMware was a real pain.

Yes, this is anecdotal, but is just my experience with it.

jmq
  • 6,048
  • 5
  • 28
  • 39
1

Linux is an excellent environment for an enterprise programmer. You can configure and control your entire system from bits and pieces without any hassles of virus, malware, etc. Unlike windows, It doesn't suffer from an obsession to reboot after installing software and also, applications and environments tend to run better/efficiently on Linux. These days Ubuntu has made it possible that users can configure and use Linux as easily as a Mac or a Windows.

For a programmer it is even more better. C, C++, Python are pre installed. Be it java, groovy/grails, ruby/rails, or smalltalk. All of them run flawlessly on a Linux machine. If it is inevitable that you need to test your windows specific applications, you can always run wine and configure the dlls to get it running.

Within my Ubuntu system, I run Virtual box to manage Tiny core Linux and Bodhi Linux. I never installed Windows on virtual box but I have experienced it on one of my colleague's machine. It runs very smoothly without any hassles.

Vamsi Emani
  • 1,745
  • 7
  • 21
  • 21
0

Ubuntu is a very suitable to run virtual Windows. VirtualBox and VMWare works very well under Ubuntu and ofcourse you can always switch to Kubuntu if you want your Ubuntu to look more like Windows but stay Linux.

It runs faster than Windows, saves battery time and does not limit you like a Mac. It is great to have a Linux and especially Ubuntu laptop if you want to work with multiple environments. Everything you need is free and you have the full control.

But you can install and run Windows on a Mac too. I use my Mac like that. You can also install Ubuntu and Windows side by side with dualbooting, but if you want to do that way, make sure that you install Windows first.

Mert Akcakaya
  • 2,089
  • 1
  • 13
  • 16