Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Developer machine, Macbook vs. arbitrary Laptop with Linux, which?
15 points by linuxquestions on Mar 20, 2015 | hide | past | web | favorite | 74 comments
How hard is it to get an arbitrary distro of Linux to work seamlessly on an arbitrary laptop?

I intend to teach myself web development. Therefore I want a machine on which I can develop on. I'm told Macbook Pros work out of the box, pretty much. However I do not want to pay such a big premium just for the apple brand. So I figured I could buy a much better Windows laptop for less, and dualboot my chosen linux distro and windows -- but how hard is it to get the distro to work with the hw?

You’re not really paying a premium for the Apple brand these days when it comes to laptops. If go out and look at laptops of similar quality you’ll see there’s not much in it. Sometimes Apple is even the cheaper option. Don’t think that by buying a cheap consumer grade laptop you’re "getting a deal" - you’re just paying what that machine is worth.

But if you don’t want to buy Apple, by all means buy a decent Thinkpad or Dell business grade laptop - Dell will certify Ubuntu on some of their machines & Thinkpads have had decent support since forever. If you buy a bleeding edge machine it will probably have some wrinkles to iron out though.

You can do what I do & pick up refurbished Thinkpads which are "good enough". Everything just works on those, because the bugs have all been ironed out. Plus, they’re cheap enough to buy a spare. X201 represent :)

Yep. There are some nice Windows machines out now like the Dell XPS, HP Spectre x360, Surface Pro, but when specced out they cost the same as a refurb Macbook Pro.

edit Except the windows machines come with touchscreens and some have active digitizers for drawing with a pen.

You are still paying a premium - just it's largely shifted from a premium up-front to a premium when you try to upgrade or repair.

I am a huge Linux fan. Love it. It's my preferred operating system, hands down. I ran Ubuntu on a Dell XPS 1330 for all four years of college while I was getting my CS degree.

My first programming job after college came with a Macbook Air. Since then, I've never bought anything but a Macbook. It's just a better built machine and I have no qualms paying a premium for quality. I use a Macbook Pro for my job now and I can't imagine using any other machine for programming.

I could care less about OSX. It's the quality hardware package that Apple gives you. Yeah, you can get better specs for cheaper elsewhere, but nothing retains its quality over the years like a Macbook.

The Macbook Pro 15" Retina is what I would recommend for a serious dev, but any Macbook down to the MBA would do.

It's similar to buying a car. After college I could've bought a Ford with all the fancy features for cheaper, but I went with a Toyota because Toyotas are just better built cars that will last.

EDIT: I always buy refurbished Apple. You get a great discount and still are eligible for Applecare.

Usually everything works out of the box even with relatively new laptops. Driver problems and heavy manual fiddling is a scare from the olden days. You might need some extra effort if you want to make full use of the gpu but this doesn't seem to a factor if you'll do web dev.

For distros - Ubuntu will give you most out of the box but I'd suggest trying Archlinux. The wiki is so much better then what ubuntu has to offer and it has info on more exotic problems. I found it way more stable and usable then ubuntu.

For brands - lenovo thinkpads work great. Asus has great support too, though headphones/mic combo jack has some issues on certain models

As a regular Arch user, I would not recommend it for new Linux users. When things go wrong in Arch, they have a tendency to go very wrong (e.g. when they symlinked /bin and /lib to /usr/bin and /usr/lib, which caused major problems if you didn't follow the news and just did a normal update).

Your best bet is to look at specific models of laptops that interest you and then use google to find out if Linux works well on them.

Typically, Linux works well on Dell Lattitudes and Lenovo Thinkpads.

That being said, when these companies release a new model, it usually takes at least a few months before people get them working 100% on Linux.

If you want more specific advice, you should create a post on reddit.com/r/suggestalaptop and give them the specs you are looking for, plus your price range.

Lenovo Thinkpads tend to work every time. I'd pick a model (from any manufacturer) and read user reviews.

I've put Linux on 4 laptops over the past 10 years and everything has worked. I've heard many complaints about sound not working, but sound has always worked for me in Linux everywhere I've tried it. ATI drivers were hard to get working back in the day, but with Valve pushing SteamOS, graphics drivers should be much less of a concern these days.

Ironically, Linux was able to play audio on my 2008 MacBook when OSX couldn't. I mean this as a fun anecdote--I do not believe my case is typical. :)

Yep, my lenovo (thinkpad e430) works great with ubuntu linux (and even plan9 (9front) and freebsd), but it annoyingly uses battery while powered off. If I leave it powered off in the closet the battery will be dead in a day. Using a macbook before led me to take battery life for granted I guess.

Edit: it's not suspended, but actually turned off. s/even//

Some laptops have a USB port always powered on for recharging other gadgets. Also check that you don't have Wake on Lan or Wake on USB and such enabled. If that's the problem you should be able to disable from the BIOS.

Is this a common problem with Lenovo, and is it a Linux-only issue? I had been considering Lenovo as an option (admittedly less so after the Superfish shenanigans), and this sounds like a major showstopper.

I can confirm, great keyboard, solid linux support. Best linux laptop I've had.

I've always thought that Thinkpads have terrible keyboards, because the Fn key is in the lower left, where Ctrl should be. Mine was from before there was a BIOS switch (or whatever the option is now) that switches the two. Every day, I would try to Ctrl C something and wonder why it didn't copy.

you're supposed to map caps lock to control and never look back.

Usually it is not hard, to install Ubuntu Linux. Normally it's a piece of cake. If you want install on your (20 minutes) than I would buy a Thinkpad.

If you would like to have Ubuntu preinstalled look at one of those vendors (The Dell looks very nice.):

https://system76.com/laptops http://www.dell.com/us/business/p/precision-m3800-workstatio... (choose Ubuntu) http://www.pcworld.com/article/2849795/purism-librem-15-linu...

Or look at amazon for Linux laptops. Hope that helps.

Trying to get any linux install to work on a random laptop is still a total crapshoot. Even if you get it to work, it'll be riddled with irritating issues – suspend or wake not working, graphics issues, that sort of thing.

Make sure you review a list of compatible machines first!

We have a load of lenovos at work that work at 100% with standard ubuntu install. I have 2 laptops at home (pretty new ones) that have Arch running with no extra fiddling after base install. In my experience things usually just work and the situation you've described is from around 5-7 years ago.

I've had awesome luck with Ubuntu. The last driver problem I had was a missing broadcom driver for my 2009 netbook using Ubuntu 10.04. Since then, I've installed Ubuntu on dozens of laptops and desktops since then with absolutely no problems.

*NOTE: I also had considerable difficulty getting the iSight and touchpad drivers to work on a 2008 MacBook, but Windows fared much worse (no wifi, touchpad, camera, audio, etc).

It's really not that bad. My experience is that 99% of features from a distro like Kubuntu or Mint work out of the box on most laptops made in the last 5 years.

You are paying premium for unmatched hardware and software quality. I've been using DOS, Windows 3.1+, Ubuntu 9.04+, and OS X Mavericks and Yosemite. Yosemite is the best OS in the world. Things just work. I used this script to set it up which worked flawlessly: https://github.com/thoughtbot/laptop I suggest that you invest in MacBook Pro 15" Retina, as 13" is a bit small if you want to see the pages and the DevTools at the same time, or use an IDE like WebStorm. I will never buy anything non-Aplle-made in the future :)

Although I largely agree, especially the part about the hardware where the physical differences are measurable and obvious, but "best OS in the world" is highly situation specific.

Best for your needs? Sure. Best for gaming or servers? Not so fast.

As great as OS X is, It's obnoxious to use in a server environment compared to other options like Linux and BSD.

I wouldn't really recommend dual booting. Despite all the FUD here, Linux is a fully usable OS without such onerous maintenance overhead. Your environment is a lot more amenable to customization and a lot of Linux users like to spend time getting their experience right for their personal needs. (Not everyone thinks Apple UI is the pinnacle one-size fits all UI solution )

I've put Linux on a lot of random laptops over the years without problem... BUT when I buy a brand new laptop specifically to run Linux on it I do like to do a little research just to make sure I won't run into problems.

The reason I would not recommend dual booting is mainly that I think in terms of workflow and maintaining context/continuity of software enviroment.. You should choose one OS to be -your- OS and run any other OSes in VMs as needed. If you really want the option to dual boot you can run an OS that's installed to disk in virtual box without too much hassle. But in terms of workflow, having to reboot your machine and juggle files and incompatible FSes around will be a nightmare and you'll pay a high switching cost if, as you're working, you should need a tool from the other OS.

Among the people I know and from my own experience over the years dualbooting.. Eventually you're going to pick one OS and spend 95% of your time in it and it will be your primary gateway to computing.

In my case I run Linux as my main OS and if I absolutely need a windows application(like IE or Photoshop).. I just bring up a Windows VM.

You seem interested in Linux and the web does run on Linux but honestly, while installing a bunch of server software directly on your workstation OS is a great way to learn, I can't imagine that anyone works that way longterm. So even though you can do it in Linux(and OSX but I would never do this there, it's too much hassle and worse for a newbie).. Once you know what you're doing you probably won't install anything outside of a container or VM that doesn't address a personal or overarching need you have--which might very well include development tools you're working with or interested in.

So.. you're probably going to spend some time in Linux. Decide if you want to live there or commute. If you decide to commute, pick where you want to live.

If in doubt, look at the Ubuntu certified hardware list: http://www.ubuntu.com/certification/desktop/models/

Or even better, choose a laptop specifically shipped with Linux and aimed at developers - I have the Dell XPS 13: http://www.dell.com/uk/business/p/xps-13-linux/pd

Dual booting a Linux and Windows machine is easy. I considered that option when I first got into web dev, but went to a bootcamp that was all-mac and it was just too much of a hassle to constantly translate everything from Mac-flavored to Linux-flavored Unix.

I'm happy with the Apple dev environment, minor gripes notwithstanding, because so much of it just_works. I'm also scared off somewhat by Linux driver gremlins (which speaks to your worry). A friend of mine, who's also using Linux to learn web dev, is constantly running into issues with his WiFi disconnecting and other small things that - while they aren't critical - add up in the long term.

So Linux is a good option if you're willing to really dive into it, which you should do as a webdev anyway, because it's so important as server infrastructure, and if you're OK with minor usability issues. But if you'd like to save that for later and focus on code, I'd go with Apple.

Hope this helps. Curious to see what others recommend.

I would guess a decent desktop computer would be a better fit for these things.

A recent quad-core processor with 8 GB or more RAM would probably be more than enough. Then, you can ssh in with your macbook or choice of any device.

I switched to OS X because Windows is awful for development (not Unix-like) and Linux has awful hardware issues and can't do "normal people things" well (games, web browsing, etc.).

The support for dev tools on Linux is so strong, that sometimes I forget that more "mainstream" content is harder to access - or unsupported entirely.

Yeah. Actually, web browsing was a poor example. The issue is more that there are a lot of things which just have almost no software support on Linux. OS X is quite mainstream and so this isn't generally a problem: if you need to do a task, there's either an OS X version of the tool you need, or an OS X equivalent. I can do things like play games and edit videos on OS X, or collaborate on Unity game projects. If there's some obscure thing I wish to do some day, I usually have a tool that can do it. These were things that were almost impossible on Ubuntu in my experience.

Macbook + Vagrant, just don't get a MBA. While light and portable, you'll eventually get annoyed at the lack of more oomph.

A developer needs a real command line - so that leaves windows out unless you install some of the custom command line apps.

I switched from debian to Mac (because of Adobe Products like Photoshop, lightroom, and AfterEffects running at 100% unlike wine/virtualbox in Linux) and I run all my development inside vagrant boxes since linux is what I'll be running on the actual servers.

MacBook Airs are really fast and you'll never have trouble with the amount of power they give you unless you're trying to compile HHVM (a massive, multi-hour-compile time project) or play high-end games.

For web dev, programming, web surfing, multitasking, the MBA is very good. I'd recommend 8GB and not 4GB RAM though. It's rare, but sometimes the extra gigs would've been useful to me (though I can't think of a common use case, and OS X does a good job of memory management to make 4GB work).

> though I can't think of a common use case

You can't? I'll tell you: 30+ Chrome tabs open + several webkit/atom-shell based apps (Slack, Spotify, Atom, etc.). I hate people packaging web apps with a passion. (Funnily enough, we might end up doing it too, because it's easier)

This is after I restarted Chrome (I had several Chromium Helpers using more than 0.5GB each before that): http://i.imgur.com/vN8EfDu.png

Not enough "oomph" usually means processing power. However, your screenshot reflects memory constraints. I run VMs and multiple tabs similar to you without a hiccup. I think most developers (myself included) tend to go with the 8 GB of RAM though when getting the MBA. You only have 4 GB. That's the issue here. :)

I don't use Chrome, and my favourite editor is vim, so I guess this doesn't affect me so much.

The one time I've really needed memory was when working on a WebGL Minecraft client. Firefox could deal with 4GB RAM, Chrome fell apart.

But yes, 8GB means your machine wastes less time shuffling memory around in some situations.

I bought my first notebook in 2006, it was a dell 640m, hell of a machine. I had it until 2013, upgraded way above their recommended specs (more memory, ssd drive). I had a dual boot with windows (although it was really never being used) and a happy all time debian user. But everytime a new version was out, and evenhough it was an old laptop with old hardware and all the drivers were pretty much there, there were always something to fix. Spending 2-3 days sorting some annoying issue out was the norm rather the exception. I think linux is and awesome OS and a great one to work on.

I switched to a macbook air on 2013, and not being an APPLEist (switched my iphone 4 for a rooted Samsung galaxy s3, which I still have), It's hardly to ever look back.

Once I get used to all of the MAC-ish things I was as productive as before, if not more. Things just work and it's a unix system underneath, so overall, I have everything I had on linux, compiling packages, package manager with hombrew, command line, etc. Just the fact of closing the computer, move around, open it and be working just where you left in 10 seconds, for me, worth the premium. Right now they are not that expensive.

I still had to overcome a few annoying mac things, it's not 100% fool proof, had to fiddle with open size limits, some specific configurations, proper web dev setup, but this time, I feel it was the exception and not the norm.

My +1 goes for a mac at the moment.

I have the same laptop, dell 640m,it is a awesome machine, it still used by my parents! Anyway I switched to a MacBook Pro too in 2010 and I never look back!

Couldn't resist posting this.

"You don't deploy to BSD. So why the hell are you developing on it?"


Edit: This is undoubtably a troll post, and I dev on a Mac + VMs if necessary.

I remember this article – it really annoyed me then, and still does. In fact, given the solutions we've not got, it's even worse.

We all mostly use cross-platform technologies. They should function almost identically in each environment. You should have comprehensive CI and staging in place to make sure that assumption is borne out before anything ships.

If it's still a concern for you, you've now got access to things like Docker on the Mac, which totally isolates dependencies far better than an arbitrary Linux install would.

The ultimate reason that people want this to work is that many of us prefer working on a Mac. It's a totally legitimate preference, and I'd argue that if your app is dependent on the environment to the degree where is breaks between nominally compatible platforms, then it's a fault with your app!

"What is this shit, Gentoo?"

I did ask myself the same question. Very funny blog post.

I'm genuinely surprised at all the pro macbook comments here. I'm typing on one right now ... with an ethernet cable, because the wifi is so spotty, while my other win 7 laptops are just fine. My MBP is great at everything except for the most important things: connecting to the internet, playing sound, waking up from being asleep.

Buy the Macbook. I have working on getting a Dell developer edition. I picked up a release older than current of a 15" Macbook Pro from Best Buy for ~$500 off MSRP. 512GB pcie SSD, Core i7, 16gb of ram, retina screen, etc. Cost be about 2.2k. I haven't regretted it. I price this machine against current non-apple w/ linux support and I am still looking at ~3k for them. In addition, their batteries aren't as long as this Macbook. Do yourself a favor, the Mac is the cheapest price for the hardware and it's faster because the SSD is PCI not SATA. (That said, expect that WWDC will include new Macbook Pros and whatnot). BTW, my coworker uses a 13" Air. He uses it for VMs and development. I only got this Mac because I had a requirement for discrete graphics and video editing.

Those new Dell XPS Developer Edition laptops look very nice and streamline getting started - http://www.dell.com/us/business/p/xps-13-linux/pd

Does anyone have rough pricing on these? They're not available for web order and I'm trying to compare/contrast without having to deal with a sales rep hounding me.

I've been able to get Ubuntu working on my last few Dell laptops with few issues.

Windows is fine for development, with a decent console emulator (http://gooseberrycreative.com/cmder/) you'll be well away.

I wouldn't bother with the MBP: it's expensive for what it is, and has two horrible longevity problems - the power supply cables keep breaking and the retina screen is extremely easy to damage (kids fingers do it). The other problem is that there is currently no way to upgrade the SSD (this is why it's expensive - you're forced to upgrade just go get a decent size SSD).

The SSD can be upgraded if you're willing to do it yourself. Obviously it voids the warranty but it's doable and not that difficult.

The only drives available are taken from the top model rMBP, last time I looked it was over 1000 EUR for an upgrade.

If you buy an old (2013-Spring or earlier) model then it is upgradable.

I would recommend getting one that allows you to swap out batteries. Apple doesn't make them anymore. Not sure if any PCs with that option are available.

As for getting linux to run on a laptop it is fairly easy to install and work on either a Macbook (as dual boot) or a PC. Regards price I think some models of Macbooks are now fairly comparable to PC laptops in price, especially if you buy around the 'Back to School' promotions in the US.

I like the trackpads on the Macbook and the keyboard is great too.

I tend to get middle of the line machines - and run Linux in a VM under VirtualBox or the likes.

Works very well. You can run pretty much any Linux distribution you like. A lower cost machine means that you don't worry too much about upgrading.

I've had decent experience with consumer grade Dell laptops. Just be sure to get a lot of RAM because you are going to dedicate some of it to the VM.

One of the best features that you can't get on a Macbook, which I think is required for anyone using their computer seriously, is Lenovo's extended warranty with accidental damage protection. I imagine others have similar offers, but Apple does not.

For around $180, I added 2 years of warranty with next day onsite repair, including damage caused by accident, to my girlfriend's new Yoga 2. She is in nursing school, and having her previous computer flake out during mid-terms was a huge source of stress.

Over the last 20 years I've had a lot of Thinkpads, and been quite happy with them. I take care of them, but I use them daily, and things happen. Usually it is just small plastics to replace, but when it's the motherboard or screen and most of the case, it is SO nice to have Lenovo do the repair for "free".

I've had good luck with Linux on the Thinkpads. I run exclusively Linux, so that has been a big deal. Currently I'm running a T530 with Ubuntu 14.04, and it works great. I suspend/resume a few times daily, and have uptimes of months.

Of course, you do get Superfish... I removed it from my girlfriend's Yoga 2 easily enough. Mine it doesn't matter because it never booted Windows in the first place...

Am I missing something? You can add Applecare for accidental damage protection, and you can bring it to any apple store. Is that not the same thing?

Applecare for notebooks does not cover accidental damage


I recommend going with a mac so that your dev environment aligns with what most people are using nowadays.

I would then buy a $5/month VPS on digital ocean to deploy to so that you can run what you build in a 'production' environment and learn some devops while you are it.

If you're comparing apples-to-apples (ha!) Macbooks really aren't all that much more expensive than their competition. Ever since Apple moved to unibody construction, their laptops have a build-quality that most laptops don't even come close to. The ones that do cost just as much, if not more. That's not the main reason I'd recommend a Mac though.

I've been using Linux in some form or another for just about as long as I've been using a computer. However, my Linux skills didn't really take off until I bought a Mac. OS X is Unix (literally, it's certified as a Unix OS). I found that when I was dual-booting Windows (this was before desktop virtualization), my primary cognitive investment was in learning to solve problems in the environment where I "lived". I used Windows most of the time, and Linux for things like Apache and an ftp server that I used to share files with friends. The problem was, I only learned Linux while I was using Linux.

When I switched to OS X, my environment became more consistent. OS X isn't Linux, but it shares a lot of similarities. If you buy a Mac, you'll have a bash shell in both of your environments. You'll use similar tools like package managers and command line utilities like grep, sed, and awk. You'll solve little day-to-day problems with bash scripts, and generally become more comfortable with the terminal. This will translate to skills that you can use when working with Linux servers.

The other thing I would recommend is that you use virtualization rather than dual boot. Dual booting has a high switching cost. You have to shut everything down and reboot the computer in order to switch environments. Given the power of laptop computers today, virtualization is a great option. Free virtualization software like VirtualBox gives you everything you need to spin up Linux virtual machines, which you can experiment with, and even trash, without consequence.

Except BSD find is not the same as GNU find, which is insanely frustrating :p. One day I will learn BSD find.

OS X is pretty much all BSD userland, because of BSD's more permissive licensing. OS X's bash version is ancient as well; also because of licensing, as far as I understand.

It's not so much that someone would learn exactly the same tools, but that there are more similarities than if they were switching between Windows and Linux.

I don't disagree with any of that. I was just saying that BSD find is the most plaguing deviation from the Linux bash on which I was brought up.

You're directly swapping cash for time. It'll take you longer to maintain a working Linux install than OS X over the life of your laptop.

YMMV, but I've got Ubuntu running stably on a Dell Precision M3800. Very solid laptop if you're okay with the 15 in screen form factor.

The last 5/6 times I've installed linux it's been pretty much flawless (wifi included) out of the box.

Get a Windows laptop and run linux with Vagrant. No need for dual booting. Windows "just works" too.

I would not recommend Windows to someone who wants a "just works" solution. I'm told that I (and every Windows user I know) just have bad luck, but Windows 7+ still regularly BSOD on HP and Dell laptops, and they seem to be much more prone to viruses, etc.

And I know, Windows is beyond reproach, and BSODs are really the fault of OEMs, but I've never seen Linux kernel panic--not even on the same hardware Windows couldn't handle.

Not trying to start a flame war, but I really think it's misleading to say Windows "just works".

I've had way more problems with my MBP running Yosemite than my home built generic Windows 7 PC.

"Just works" is subjective so it shouldn't be a purchasing factor.

I literally make all of my important purchases on subjective evidence. Whenever I'm considering an important purchase, I scour the Internet for anecdotal information. I've found that such anecdotes in large quantity are more reliable (and informative) than most of the available objective information.

More relevant to this conversation, Macs have a wide (and presumably well-deserved) reputation for quality, and Windows PCs have a wide (and presumably well-deserved) reputation for cheapness (both in the quality and cost contexts). Sure, that consumer Dell you bought might boast better specs, but these objective metrics do a bad job about predicting things like product quality or overall satisfaction.

Tell that to my brand new laptop with Windows 7 being unable to apply its updates even after 42 reboots.

Buy a MacBook. With Windows/Linux machine you will learn much more about getting OS to work :)

sorry to hijack this thread but i would like some input regarding a good windows development machine. I have used a macbook pro retina bootcamped to windows 7 (that i really love) but was wondering if going with a native windows machine would be better?

If you are doing web dev it doesn't really matter what system your are running locally. Spin up a free micro at AWS and use that.

Not sure why you're being downvoted. You could develop from an iPad with iSSH on a Digital Ocean droplet if you wanted. Plenty of web dev is done from Windows. Plenty is done from OSX or Linux. Plenty is done from BSD. The host OS doesn't really matter for the web, that's the point of the web. Unless you're trying to learn ASP.NET, then... yeah it kind of matters.

Buy a macbook. If (for whatever reason) you don't like the OSX you can install Linux in less than 2 hours.


Imho, if you're primary purpose is learning web dev, better get a Mac so you can focus on that rather than sidestepping on learning how to configure a linux machine. With a Mac, you don't have to look deep into the web to get things working.

Dont get me wrong, Linux is a terrific web dev OS.. just putting myself in the author's seemingly newbie shoes.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact