Macbook VS Linux laptop for web development?

Hey guys,

I'll be taking some Web development courses later this year and I'm thinking of picking up a new laptop. The majority of the students in the class use Mac. I asked a few of my friends on why this is, and the answer I hear is because then MacOS terminal works a lot like Linux.

I then thought to myself, instead of buying a Mac and be gouged by Apple, I should pick up something more cost effective like a Zenbook then either have a VM running Ubuntu or just boot straight into Ubuntu with it.

I was hoping to get your guys opinion on this. For someone going to take web development courses, is it better to get Windows PC and run Linux on it, or is there some other advantages to getting a Mac that I'm missing?

Thanks!

In my experience at a coding bootcamp, everyone having Macs makes for a lot less "I can't get this running on my machine" problems since everyone's got the same environment. I too, when I was told I had to get a Mac, was a little weary and thought why can't I use a Linux machine, but it seemed to make things run a bit more smoothly in the class (more time spent learning less trouble-shooting software/hardware problems).

If you get a Mac, homebrew is a better option for getting Unix stuff than MacPorts. I'll just throw that out there.

The latest edition of the Macbooks strike me as very poorly designed for developers, with weird limits, total lack of expandability, and missing keys. There's no escape key!

Their corporate anorexia is seriously damaging the health of their products.

If I was in your boat, I'd look at the previous-gen Macbooks. Still pricy, since they do retain their value, but not quite as expensive. You don't need the latest machine to do web dev.

Failing that, I might go for a Linux machine, but be prepared to deal with the compatibility headaches. If you're doing everything in emacs, this isn't such an issue, and many web servers will be running Linux stacks anyway, but if you're using mac-specific dev tools (or just configurations) that won't work as well.

Malor wrote:

The latest edition of the Macbook Pros strike me as very poorly designed for developers, with weird battery-driven limits, total the same unsurprising lack of expandability, and missing keys. There's no dedicated hardware escape key on Touchbar models! It's like they think that "every application wants a slightly different user interface, a slightly optimized set of buttons, just for it."

Their corporate anorexia drive to make their laptops ever thinner and lighter is seriously damaging their suitability for use by me health of their products.

FTFY

Unless you want to spend time figuring out which hardware components are properly supported, or buy a machine that comes with exactly the flavor of Linux you want already installed, you should get a Mac, or just keep running Windows and use a full screen Linux VM. Software development is leveraging containers more and more, so past a certain point, which OS is actually dealing with the hardware is getting less and less important. I still prefer MacOS for that task.

Malor wrote:

The latest edition of the Macbooks strike me as very poorly designed for developers, with weird limits, total lack of expandability, and missing keys. There's no escape key!

Their corporate anorexia is seriously damaging the health of their products.

I don't disagree, but you can remap Caps Lock as Escape.

Caps Lock is used way too infrequently to be where it is on the keyboard, we should go back to the Sun keyboard layout.

Just to be clear, don't get a 'Macbook' for dev, the CPUs are slower and the screen is smaller. Make sure you get a Macbook Pro, you can still get the 13" without the touchbar, but for dev bigger screen is better so you will probably want a 15". Personally I would look for last year's model still on sale somewhere or maybe a refurb from the Apple store.

Software development is leveraging containers more and more, so past a certain point, which OS is actually dealing with the hardware is getting less and less important. I still prefer MacOS for that task.

At that point, it's the hardware that matters most, and Macbooks (and Pros) are woefully underpowered, and not expandable.

They used to be very good for development. In my view, they've been badly compromised, and are no longer the best choice. Apple is primarily interested in extracting more money from you, not in making sure they give you a machine that's ideally suited for professional-level work.

LeapingGnome wrote:

Just to be clear, don't get a 'Macbook' for dev, the CPUs are slower and the screen is smaller. Make sure you get a Macbook Pro, you can still get the 13" without the touchbar, but for dev bigger screen is better so you will probably want a 15". Personally I would look for last year's model still on sale somewhere or maybe a refurb from the Apple store.

Granted, it's been at least a decade since I did any serious web dev (thank god!), but things must have gotten really complex since then if slow CPUs are a concern. Back then 90% of it was a terminal and a text editor.

I've been doing development on a 2013 MBP and have no complaints about expandability or anything else. It's a nice piece of hardware and doesn't feel remotely underpowered for what I do (java, python, swift, docker containers for local testing, windows vm for various tasks).

In the end, get what you want. If you want to spend the extra money for the aesthetics, build quality, or OS on a Mac, go for it. If you don't, your web dev work isn't going to be compromised.

billt721 wrote:

Granted, it's been at least a decade since I did any serious web dev (thank god!), but things must have gotten really complex since then if slow CPUs are a concern. Back then 90% of it was a terminal and a text editor.

I just stopped doing React Native work, probably not far from 'serious' web front end work. The fan on my 2012 MBP was spun up a lot of the time. Using Atom with Flow type checking and ESLint was probably 2-3GB RAM alone.

It's a few days in, but I'll toss in a thought here, anyway. I have been out of web development for about five years, but when I was doing so essentially everyone in the development community I worked in was running either OS X or Linux.

You commented that your fellow students said, "MacOS terminal works a lot like Linux," so I'm assuming that you're not taking classes focused on the Windows server environments. So what you'll want is a computer that can easily host a LAMP (or MAMP) stack like the servers your websites will ultimately be hosted on (or whatever environments you're learning: in my example, MySQL and PHP). You can, of course, do this in a virtual machine, but just booting into the actual OS you want to use is probably more convenient.

If you really want to go crazy, you could consider a Hackintosh. Or if you want to really make people scratch their heads, you can buy a Mac and drop OS X and put Linux on it.

I guess I would join others and suggest a prior-model refurb/secondhand/clearance/whatever Mac laptop might be a good fit. Part of the reason I say this is specifically because you asked the question you asked the way you asked it. Being part of the crowd and doing what everyone else does means you can focus on learning to develop rather than configuring your operating system and setting up the servers therein. That said, from a technical point of view, a decent Linux laptop will serve you just as well, if not better (as long as you are comfortable setting it up and operating it without the built-in support group).

If you're going to go with a Linux laptop, look at system76. They have a good track record of getting the right, compatible hardware for Linux, run Ubuntu by default. You just have to get it shipped (unless you live in Colorado).

I bought a thinkpad carbon x1 and really haven't had issues running Debian natively.
I think the "I'm afraid of configuring stuff" line of thought is not worht following through with.

Spoiler:

I did have to edit some drivers to get my wireless card working, but if it takes under 10m of googling its not an issue imo.