Wednesday 11 August 2010
Choosing Sides
My Macbook Pro is 3.5 years old and still works pretty well, apart from the disk being full, frequently spontaneous wake-ups in my backpack which heat everything up alarmingly, and flaky wireless connection. Plus the turn of Moore's Law means I can now get a quad-core laptop and a lot more RAM and disk. So it's finally time to upgrade. I'm opting for non-Apple hardware; Apple have gone beyond the pale pursuing patent warfare and platform lockdown, and I can no longer live with buying their products. A Lenovo W510 is probably in my future.
Now I'm faced with a somewhat difficult decision: Linux vs Windows. There are good reasons on both sides. The best thing about developing in Windows is that it's good to have developers on the platform that most of our users use. VMWare record and replay is also very attractive. The Mozilla build and tools situation on Windows used to be terrible --- very slow builds, horrible profiling --- but it's gotten a lot better thanks to pymake and xperf. But Microsoft, while not as dangerous as Apple at the moment, still aspires to be, and I won't embrace them gladly.
Linux, of course, has the virtue of freedom, and a chance to regain Miguel's love. On Linux you get valgrind. But not many of our users use Linux, and VMWare's record and replay doesn't really work there. I'd have to use X11, which I loathe with passion.
Tough call. Another thing to consider is that whichever way I go, I'll end up using the other in a VM quite often. Dual-booting is also an option.
Comments
Personally I use a dual boot Win 7 + Linux setup purely because then I am really seeing exactly what users are seeing.
Apple pushed hard, and got, a DRM-free world for music, and has helped to push HTML5 to make the internet a better place for everyone.
You're naive if you think WebM can possibly be patent-free, and Apple is well within their rights to "lock down" their own platform if they choose, as long as they leave their internet platform open – which they have.
Good luck with your next laptop purchase – looks like you'll need lots of it.
I told myself I could do that, but that wasn't the case. A VM is much better because you run on there only platform-specific apps, while having open your browser, mail, everything on the OS you want.
I have a dual boot on the laptop I'm writing form, but I use Windows not in VM only to upgrade my mobile phone firmware and something like that, because I don't trust a VM for such a delicate process.
So: you know your habits and necessities and you'll choose the OS that fits you the best, but don't even think about dual booting.
Another question is desktop vs. laptop. YMMV but I've found desktops to be much more reliable than laptops (disk crashes, transformer breakdowns, …). Of course the flip side of the coin is that you can't take a desktop with you wherever you go and fire it up at MacDonald's or in a train compartment.
What is it you don't like about X11? I haven't "fought" with it to make it work like the old days in many years. These days it just works.
I've also been really happy with how much easier modern distros are to use than OS X. Every time I install something on OS X by downloading it, unpacking the dmg, and dragging it to the magic folder I long for Linux where I click the app name and "install" and it just works.
If you don't need advanced video editing applications and you can live with GIMP linux (any distro) is a dream development environment.
All my Windows VM images have Cygwin installed, it helps very much "emulating" and Unix env so if you choose a Win OS consider Cygwin as a valid friend
But really, you should just go with whatever you think will make you more productive.
A separate desktop machine is not an option: too hard to share state. I used to do this but having all my data with me all the time is too valuable.
Sly, Apple is using software patents to shut down competition. They're doing everything we always feared a bad actor might do with software patents. The iPhone is locked down in ways that Microsoft never dared do with Windows. Imagine if Microsoft had simply said "no software that 'duplicates functionality' of our software is allowed", we wouldn't have the Internet (or Apple) as they are today.
X11 is a terrible design that's awful for app developers. If you want to be fast, you have to avoid touching X as much as possible. Drivers are also a disaster; binary drivers suck but open drivers don't have decent support for 3D acceleration.
Well, perhaps I'll still use Shark occasionally.
I've never liked OSX and getting back to Linux
will be great (well, I run linux on desktop). And even Win7 has better UI for my use than OSX. I guess dual boot will be good enough for me.
Lenovo W510 is pretty expensive. I was hoping to find something cheaper, yet reasonable powerful.
Perhaps HP Envy.
That's very true. However, there is also the question of where most of the users are *going* to be. More and more people are browsing the web from mobile phones and tablets, and hopefully a lot of them will be using Fennec. And that will almost certainly be on a Linux-based OS (Android of Meego), not Windows.
smaug: the W510 is actually about the same price as a dual-core Macbook Pro.
Anyhow, maybe soon we will be able to develop Firefox directly on Android tablets, for users of those same tablets ;)
I accidentally trashed my Windows partition (even in Cygwin, "sda" may not be your SD card but your hard drive, oops!) and haven't run Windows for about a year. Many Windows programs run fine in Wine especially if you set Wine to present itself to them as XP or earlier, and for programs that access USB ports Windows running in VirtualBox works well.
YMMV
I don't get this "X is evil" stuff. You can waste a lot of time fighting evil and not succeeding, or you can spend the time using your computer. Like Mac, for example. Their phones are closed. They're not computers, and they want them to work. If you don't like it, use another phone. But their computers are open to all software.
Good luck with your choice, but just get what you like. Your choice probably won't save the world--unless you can make Linux file sharing not suck somehow.
I've been using mostly Linux for a couple of years now, I guess. It works, but with free software on any platform you end up filing quite a few bug reports. You have to be a nut case to do it. There's a lot of software that just flat out doesn't work. Some projects fix bugs instantly, while others ignore major bugs. Then once in a while a big bug gets fixed without any attention from you. I think Windows is more mature, but Linux is getting better. Just take your choice and name your pain.
I wonder what it would be like to have them dual booting, then both also accessible as VMs from the other?
Alternatively: Windows still builds slower even with pymake, making it the host sort of balances things out. That only averages build time, though, and doesn't actually help if you end up using Linux more, since that means the total time increases...
I would recommend getting a little more RAM -- 6 GB if possible -- and setting up one OS as a VM within the other.
VanillaMozilla: I've been doing the three-platforms thing on my Macbook Pro for a while now. It's helpful sometimes, but I think I'll be just fine with two platforms on the laptop and a Mac laptop lying around for occasional Mac work.
Siddharth: I'll definitely get 8GB (and probably upgrade to 16GB some time later). I might have to experiment with VMWare's file sharing; in Fusion 2.0, doing a build in a Windows VM with a srcdir which is a shared directory on the host is *incredibly* slow, but doing the same thing in a Linux VM is reasonably fast. Things might be completely different with a newer version of VMWare, or VirtualBox, or using a Windows or Linux host.
However, as a Linux user I wanted to get me a Thinkpad with no pre-installed OS, or at least only with a small DOS-like dummy OS. That seem to be impossible, though.
Another caveat is that for a dual boot system you probably want a shared partition, and since Windows only does VFAT and NTFS you must opt for one of those. NTFS in Linux is not an entirely pleasant experience. It works, but every file and directory is 777 and thus colored green when you do an ls.
You'll probably need dual boot though, since you are working with those performance critical 2D and 3D backend parts of the rendering engine. I would not test them
BTW, my current machine is a Thinkpad Z61p and unfortunately it does not get WebGL on Linux in Firefox 4. (Neither does Chrome, BTW.)
One thing work considering, though, is your future upgrade path. I've found migrating a Linux installation from one machine to another is fairly easy (just cloning the disk usually works), but the same can't be said of Windows due to activation issues when the hardware changes. For that reason alone I use Windows in a VM, so that the "hardware" never changes as I move to newer machines. That way just cloning the drive moves both my Linux system and my Windows VM as one with no activation hassles.
I also have a dual-boot between Fedora and Windows Vista but I haven't had to use Windows in months, it's just there for posterity now.
Both systems indeed have a virtual machine with the other operating system :). I don’t think dual-booting is nice; when I need the other system I much prefer to be able to switch and copy/paste from the one to the other as I wish. Maybe for performance measurements it isn’t so great, but otherwise very convenient.