Ask HN: Have you considered switching from OS X to Linux?
For some time now, I've been growing increasingly weary of the walled gardens I once so enthusiastically embraced. Off the top of my head, some grievances include, forced corporate policies, lack of hardware choice, and closed operating software. For pragmatic reasons, I've stuck it out with OS X for years, but do wonder if it's time to consider OSS desktop alternatives again? Will the conveniences be missed? Tim Oreilly was echoing a similar sentiment a year ago. https://plus.google.com/+TimOReilly/posts/g9WdNt6yVgR
Are you in the same boat? It all just seems so daunting starting over...
125 comments
[ 75.9 ms ] story [ 990 ms ] threadStuff isn't so black/white, I guess I'm trying to say.
This is… an argument I won’t get into. Suffice it to say, I was merely trying to construct an analogy to demonstrate why, sometimes, using something less than the “best” product is preferable, and why, for some people, it can’t be considered a choice to use the less efficient product.
VMWare Fusion + OS X = freedom of development choice. Bootcamp + Windows = games.
The hardware isn't bad either though it is slightly more expensive depending on how you look at it.
For Linux, I find that there aren't many good vendors that provide pre-installed Linux on state-of-the-art hardware especially when it comes to laptops.
There are good companies out there like XoticPC.com that sell such hardware with or without Windows or other OS, and still provide a warranty and really good support no matter what OS you put on it.
Ubuntu and probably most other major Linux distro's work essentially as well Windows if you stick to mainstream hardware (with a few exceptions like multi-monitor support and Nvidia Optimus).
[1]: https://wiki.ubuntu.com/HardwareSupport
Yes, Ubuntu, since it is most used OSS desktop right now and most tutorials, docs, etc focus on it from my experience.
So it boils down to what you do. If you do mostly client-side html/js/css you probably will be ok with Mac. If you do more server stuff - it might make sense to switch to Ubuntu to make your life easier. Start with Virtualbox with Ubuntu in VM to keep your workflow the same in the beginning.
On OS X I found it not to be too different an experience as well, I would run Ubuntu server, open terminal, SSH into the local server, and in the browser just hit the VMs IP, as opposed to open terminal, and hit localhost.
Another option would be to get some remote Server and do your development there, which has the benefit of being available from anywhere. In that case you will have to use some form of remote editor like vim/emacs though since syncing from local is painful for bigger projects, especially if you work with different branches.
I hate to say it, but I think Windows 8 is pretty good as a host OS (not having used Windows much since 2003).
I wouldn't be able to do my job without the virtulisation though, in the end I got so fed up with trying to install stuff naively on OS X with brew and ports and from source and whatever I was virtualising on OS X for about 2 years before I switched over anyway.
I also want everything to mostly just work, which is why I liked OS X in the first place (it has a Terminal, and everything mostly works!).
I dual boot Windows 8 on my Macbook Air, I think Apple still do make the best laptop hardware.
Our personal laptops are an Air and a Retina MPB. Moving the wife from Windows to Mac was enough of a step (she uses excel and other biz apps), Linux would be a non-starter. Given the i* devices, for me, I couldn't revisit Linux without incurring management headaches I don't care for.
There is more to "switching" than just is an OSS option available.
I have a number of VMs -- ubuntu and FreeBSD for development. Desktop remains homogenous.
The most annoying aspect of it is the discrepancies between applications and keyboard shortcuts.
If you're a power user mac who uses keyboard shortcuts a ton then going back to X11 apps can be a little painful.
The other downside I had was on install I had no wireless card and had to download a tarball to a usb stick and recompile my device driver just to connect. I kind of expected things to just work by now, it's a shame there's still these little hiccups but I guess I shouldn't have bought cutting edge?
I have tried many times but, every time I had to go back to OSX for some reason. I am a big FreeBSD fan and for me OSX with the port system was the way to go. Now Apple is more and more getting in the way but FreeBSD not really running on Apple hardware.
On the Linux (I tried Ubuntu/Debian/Fedora/Gentoo) point of view you can't really find a distro that is working well enough and have a similar port system.
I'm kinda stuck with OSX...
There were always many nitpicks I had to deal with and fix every time I reinstalled or got a new computer, and they piled up and up with every new version. I switched to xubuntu with a toshiba z830 and my life got easier. Then I switched to Mint and things got even better.
No.
> forced corporate policies
care to elaborate? I'm not sure what this means. Policies forced by the company you work for? How does Linux solve this?
> lack of hardware choice
Plus, not a minus. I think the 13" MacBook Air is the best laptop on the market today. Tight integration between hardware and software is key.
> closed operating software
Don't care, see answer #2.
It's also probably worth mentioning that I make my living through iOS (in part through my site: http://www.cocoacontrols.com)
Sorry? How is a restriction a plus? Can you use a Lenovo with OS X? No. Can you use a Macbook with Linux? Yes.
I use Linux at work and it's not bad, but I'm less productive on it with 95% of tasks than I would be with OSX. It looks worse (I recognize this is subjective.)
A lot of my friends use Linux and tell me that if I spend the right amount of time tinkering with it -- making it mine -- I'd reap the benefits of a bespoke OS, just like slipping on a suit that's tailored just for me.
But what's the point? I lose out on apps and aesthetics for hypothetical yields in productivity -- I don't want to do that.
In terms of your points:
- forced corporate policies: My employer forces a Linux desktop and either a Mac/Windows laptop.
- lack of hardware choice: I will take to my grave the assertion that the MacBook Air is the best laptop on the market. (Or at least the prettiest.)
- Closed operating software: This does not bother me.
Anyway, pretty is one of those things that I learned is worth sacrificing in favour of productivity - be that in code or when I choose my OS or tools.
I agree, but I don't think its so black and white (for me!) When my tools are well-crafted and attractive, I use them more frequently and with more vigor.
If you do things like change your keyboard layout to Dvorak/Colemak, go for it. It really is a more productive environment once you're used to it, but the trade-offs are similar. Yes, you can tailor everything the way you want, but it can be very time consuming and you lose out on the ability of having anybody else know how to use your computer.
Anecdote: I came from Arch Linux to OSX. I find the tight integration between hardware and software on my 2012 Air to be a breathe of fresh air from the hacking it takes to get basic hardware support sometimes on Linux. IMO, tools like vagrant make native OS matter much less nowadays as long as you are working in some kind of *nix environment.
I just went the other direction :). I agree, the hardware/driver issues are a pain. If you're using a desktop without wireless, you probably won't have issues. If you pick Ubuntu, any issues usually aren't too hard to fix.
If you're trying to install something like FreeBSD on a laptop with a non-broadcom card? God have mercy on your soul :(
That said, once you fix the issues, they're usually fixed for good. It's just the matter of the week of banging your head against the wall to figure it out. Relevant: http://xkcd.com/979/
I've tried various distros on my laptop (Thinkpad W500) but I was seriously impressed when Ubuntu had everything working (including WiFi and ACPI key bindings) out of the box.
- Focus follows mouse without auto-raise - Instant switching between virtual desktops (not possible to disable the animation in OSX last time I checked) - Instantly open a new terminal window with intelligent window placement in the currently active virtual desktop.
Since these turned out to be a hassle in OSX, I've just gradually stopped using them, and resorder to a single desktop paradigm with more mouse clicking for navigation. All in all I feel like I'm working slower in OSX than in Linux.
However, the major problem with Linux is the looks and a host of small nice details that OSX just gets right. Instant search in Spotlight including Mail, I've grown accustomed to the Mail app (Thunderbird search is ridiculous compared to Mail.app, for instance), Time Machine, and a few other apps like 1Password.
If I could get a virtualization scheme where I could have one desktop with OSX and 3-4 desktops of Linux, that would be ideal. But I don't think that's possible with Parallels or VMware, and I'm not sure how well OSX would run virtualized under Linux.
As for the others, we have locate(1) for searching and rdiff-backup instead of Time Machine.
As for having desktops like that, if you mean monitors, then there's a great solution: Synergy. Hook up monitors to both computers and use Synergy to connect them.
A cool hardware project might be to take a micro Linux ARM board with LVDS display output, mount it inside the CD bay in my laptop and make an internal LVDS switch to quickly switch between OSX and the Linux board. That would be pretty much ideal. :)
Not sure how well it works, though.
I'm using it on my laptop and desktop and use Dropbox to synchronize.
Isn't that the main feature of VMWare Fusion? (Although it seems more targeted at integrating Windows into OS X, it looks like it supports Linux as well)
Yes, yes it is.
If you're using Ratpoison, well yeah, it's gonna be fugly. Gnome 3 and Unity look pretty sharp though, and Compiz and Clutter are at least as good as Quartz.
In fact, if you think nothing short of an OS X clone is pretty: How to Make Ubuntu Linux Look Like Mac OS X http://www.howtogeek.com/45817/
"Linux is ugly" is an outdated cliche. It used to be true. It's not anymore.
But you're right that Linux stopped being ugly. Even in Tiling WMs, we're pretty beautiful now. My windows now have the same gaussian blur and shadow abilities as on Mac OS X, thanks to Compton. My status bar has beautiful text set by Pango and rendered by Cairo. My text rendering is as good (or better than, against transparency) in OSX, thanks to the Infinality patchsets.
Really, it's only ugly if you do it wrong. One way of getting it wrong is to try and imitate OS X.
Same goes for Windows.
You can make Linux look like anything you want. If what you want is a clone of your old OS, well, I can't help your aesthetic taste, but I can at least make you happy.
Life is particularly better for the C and C++ programmer. Valgrind's primary platform is Linux. For many years Mac owners were stuck with a horribly out of date and malfunctioning GCC, and even now with clang there are problems (the clang in xcode 5.0 has some horrible miscompiling bugs which were reported months before release).
Is everything perfect in Linux? No. But overall I find it an improvement. The only app I miss is keynote, OpenOffice is a poor substitute.
What's the best laptop for running any Ubuntu flavored desktop?
I still use CentOS to this day (Asterisk), it's painful.
Thinkpads (the actual ones, not the cheap Ideapad-in-a-black-case-things). Of course, you don’t really save money compared to a Macbook, but the hardware appears (to me) much sturdier.
The only thing that didn't work instantly and perfectly on my Lenovo X220 the last time I built it (2 years ago) was the fingerprint reader, but as I use Yubikey I was OK with this (plus I found an online guide to getting it working that seemed pretty comprehensive and people were raving about).
I generally run an ubuntu vm on osx, because i love the linux command line ecosystem, but as time goes on I find myself needing to customise more and more just to get a sane base configuration.
I really don't understand why ubuntu doesn't focus on their niche - giving developers a nice dev environment and then slowly working to stabilise apis and turn it into a platform. Then they can think about other stuff. At the moment they are trying to compete with companies that are much larger, with much more budget.
That said, I think Apple has done a pretty good job of being respectful of privacy. You are asked explicitly whether to share information (location services etc) and you can always say no. Compare this to the latest Ubuntu release where your local file searches are being sent to Amazon as a default feature.
As for OS X... I'm sure it's nice, but I have no interest in Apple and their locked down, proprietary, closed off, "walled garden" ecosystem. I'm no rms, but I have little to no use for software that isn't OSS or FLOSS.
I did just switch from using Gnome as my primary desktop environment, back to KDE - after about 6 or 7 years of Gnome use - and I'm pretty damn happy with the current iteration of KDE. If you haven't tried it, give it a look, you may find that it's much better than you anticipated.
You're right, but just don't expect it to be there in two to three years.
My cell/tablet are android, so there was no real incentive to move to Mac from a house-compatibility standpoint.
There were 2 big reasons I switched. (1) I wanted to build a desktop; the Mac Mini is underpowered and the Pro is wicked expensive. (2) Apple's competing in the courtroom disgusts me. I was a huge Apple fan, but I don't want to give them any more money.
Windows isn't an option to me. I love text and I love the POSIX shell. I find DOS abhorrent.
I don't really miss any conveniences. If you really want something pretty and easy, go with Ubuntu. It mostly just works. The only thing I really had trouble with was wireless drivers. I started with Ubuntu, and later switched to Arch with i3 (Tiling WMs are awesome).
Again, If you want something that's almost as pretty and almost as easy to set up, I highly recommend Ubuntu. Once you get settled in, I also recommend looking at Arch. Arch is a lot more work and learning to set up, don't start with it. But it's a better system once you have it configured your way.
It's been some work, learning Arch and fighting with wireless drivers. But I don't regret it. I'm extremely happy with my Arch+i3 system. It has Chromium, Steam, Minecraft--everything I need. I do wish Steam had more Linux games, but with the Steam Box, I think they're on their way.
ps. I don't recommend dual boot. I did dual and triple boot a few years back. It was just a big hassle. Get a machine and dive into Ubuntu. Good luck.
Apparently this is due to Apple making it technically difficult for third-party applications to replace iTunes
The bottom line is that switching to Linux will be a step back in terms of convenience. It is still true that the closed operating systems are just easier to use as day-to-day one-size-fits-all machines. In my recent tries with Xubuntu i had some sound issues, the machine didnt want to sleep correctly and skype had audio lag issues and didnt show a popup when somebody was calling. Small stuff, but stuff i dont really want to deal with..
Ironically OSX86 on the same machine (older Intel hardware) works perfectly fine and i have none of these issues, it probably even works better than windows.
As i do all my development in VMs (vagrant) the host OS doesnt really matter and it just needs to get the day-to-day stuff done, but i still wouldnt choose Linux for that.
Id still like to switch back to Windows as the host, just to have more freedom. Sadly vagrant/virtualbox shared folder performance is poor which makes it a bit of a pain to work with.
So i have ultimately thought of a system where Windows 8 is the host and id just use a Xubuntu VM (with a GUI) where i do all the development in, but still rely on Windows for skype/office stuff/audio/adobe apps in the background.
However that locks me out of iOS development, soo dual booting windows/osx86 + vagrant boxes currently gives me the most flexibility and ability to work on anything and use all 3 OSes for what they are best at...probably need to replace the PC with some form of Apple hardware to be legal but overall its pretty perfect. (In a perfect world Apple would finally adapt the PC keyboard layout, i just hate the mental overhead required when switching systems)
I dont like Apple much, but i am pretty sure MS would love to do the same things so it more about choosing the lesser evil because Linux still isnt there yet. Atleast that my opinion right now.
Plus we have Docker.io instead of Vagrant. Way nicer.
As a development OS, I'm already there - most things for me are in virtualized Linux, but inside the Mac OS.
This has required very little setup on my part.
I'd love to not be dependant on Apple, but I trust them more than Google, and there's nothing else that works as seamlessly.
Edit:
Also the hardware. I've yet to find another company that values build quality as much as Apple. They're trying, any I hope someone else does, but I haven't found a laptop similar spec to my rMBP that feels as nice and has the same battery life. I can go 6 hours using Windows 8 in a VM for development.
Positives:
* Tiling WMs - I have always found myself working primarily in fullscreen applications like in OSX, but it's nice to have a small status bar at the top still and splitscreen capabilities. My WM of choice, AwesomeWM, provides this, and does it really well.
* Docker.io - Docker is infinitely better than Vagrant. It starts faster, it's thinner, and it's easier to interact with. And it only runs on Linux (at least for now, but it'd be hard to add OSX support probably, due to the use of cgroups and other Linux APIs)
* Better Package Management - Yes, OS X has homebrew, and it's great, but it has to compile from source, which takes a while and spins up your fans usually. It's just troublesome. And on Linux, if we want to compile, we can usually use distcc to distribute that load to a cluster. I do, and I know many others do as well.
* Choice of Workflow - OS X has a wonderful workflow, but it's not perfect. Sometimes it's nice to be able to pick the workflow that is almost exactly perfect for you, and tweak it until it's ideal. That's what I did, and it's been a huge boon for my productivity.
* Homogeneity with Deployment - this is a lesser positive, but it's still nice in many cases. Most of the good distros will teach you at least basic sysadmin skills over a shot period of time, through immersion. This means you can spend less money on sysadmins and do it yourself as long as possible, assuming you deploy on bare EC2
Negatives:
* More downtime - this is an issue with distros like Arch and Gentoo, and it does get to be a problem from time to time. I mean, it's hard to work when X11 won't start or a driver is broken (I'm looking at you, Broadcom)
* Learning curve - Linux really is as hard as it seems to learn, I'm not gonna lie. It's not perfect.
* You look like an "Engineer" not a "Hacker" - Lots of people will view the fact that you spent time customizing your work environment as you playing around with your OS. It's not really that way (unless you're a Gentoo user) but it gives that view to some people.
* Lack of support for multitouch trackpads - I'm sure this is less of an issue for other people, but it really was a dealbreaker early on for me. It killed all the ways I interacted with OS X. It was terrible for a while, then I got over it.
Honestly, I dual booted Arch and OS X for about 8 months before I ended up tipping over to Arch. It took me setting up a shared partition and AwesomeWM before I could convince myself to use it daily. But it's the best decision I've ever made, because I find myself being infinitely more productive with my new workflow. I'm done with OSX entirely, I only use it for Photoshop now.
Uh? Where is this coming from (Hacker/Engineer)? If anything, it's the other way around.
I hope the trend continues to grow.