Ask HN: Can we talk about Linux vs. OS/X?

7 points by diminish ↗ HN
A lot of web programmers I meet use OS/X on Apple hardware. I see none of them deploying on OS/X however. Despite I hear about OS/X being part of the *nix family, I can't comprehend why it can't be used as a server OS, e.g. on AWS. Anyone has ideas why OS/X isn't good for servers (except hardware compatibility). I'm curious about OS/X init system, package managers, support for databases, web server sw, network stacks etc.

If there are good reasons for it, why people use it on development machines? Isn't that loss of precious brain cells to learn inadequate stuff for server development?

18 comments

[ 2.7 ms ] story [ 56.5 ms ] thread
On the desktop side, a good UI on OS X compensates for a mish-mash of inefficient and insecure technology on the backend side of things (legacy tech, mix of ..ix/Mach/Next/MacOS).

On Linux/FreeBSD it's typically the other way around; no matter how optimized and clean the back end is (relative to OS X), nobody seems to be able to put together a great working desktop standard UI supporting modern hardware.

Hopefully somebody will be able to provide a good free desktop on top good *ix platforms like Linux/FreeBSD etc, but all the people who held their breath died a long time ago.

The OS X packages like Homebrew and MacPorts make it very easy to run most of the standard backend stuff on OS X while developing, which means many developers prefers to work on modern proper functioning hardware while still deploying on standard Linux servers and similar.

In addition technologies like virtualization, Chef/Puppet/Docker etc support additional workflows which allow testing server work locally on OS X before deploying on Linux or similar.

Ubuntu is pretty close, really. Everything that's needed is better drivers, but unless Canonical makes it's own hardware that's never going to become a resolved issue.
The major issue with Linux only development is the lack of proprietary software. Photoshop, for instance. There is also some great Mac-only software, meaning a Mac runs the widest variety of software of any OS - since you can run Linux, Windows and more in VMs.

Finally, Mac provides a much nicer UI experience than any Linux so far. That won't change for the foreseeable future given the grab bag of UI technologies Linux apps use.

> compensates for a mish-mash of inefficient and insecure technology on the backend side of things. . . no matter how optimized and clean the back end is (relative to OS X)

I'm not sure that's really an accurate characterization of OSX. In terms of security, I don't see where there have been any great number of exploits attacking the kernel (XNU) or userland (mostly FreeBSD) layers. Recent high-profile vulnerabilities like heartbleed were hardly OSX specific. I'm also not sure that those layers can really be called inefficient relative to Linux. Mach was a great deal more modular in terms of separation of concerns as compared to Linux (good for cleanliness/security, but never had great performance). However, with their XNU kernel, they seem to have made some of the same tradeoffs as Linux with respect to pure microkernel separation of concerns.

OSX has also done, in my opinion, a good job of rethinking parts of the traditional Unix infrastructure that needed rethinking. Check out JKH's talk about FreeBSD and potential future directions, and see how much that is informed by his experience leading the Unix technologies group at Apple (for the record, JKH was also one of the cofounders of FreeBSD, so he's not exactly a slouch): http://youtu.be/Mri66Uz6-8Y

I'd say the biggest reasons OSX never took off as a server OS are 1) licensing 2) coupling to Apple hardware 3) most of Apple's value-add is for desktops, laptops, and smaller portables--in other words, not compellingly better than other free nixen on the server 4) other nixen focussed on integrating the Chef/Puppet/Docker/virtualization/etc tech that you mention makes life for sysadmins easier.

> but all the people who held their breath died a long time ago.

We started being able to breath again when Ubuntu was released. It's far from perfect but so's OS X.

"It's far from perfect but so's OS X."

That's a ridiculous comparison. One is "imperfect" due to open source failings and a wildly divergent UI, the other is "imperfect" due to (I suppose) some design decisions and the fact that Apple charges money for things and provides restricted hardware support.

Please articulate your perceived problems with OSX.

It's not a ridiculous comparison, it's the exact comparison that the original post was asking for on a technical level, which we are diverging from.

I didn't think claiming that OS X is imperfect would be controversial claim. Here are two articles I found by Googling for "OS X bugs" that details some imperfections in the recent relase of Yosemite: http://fieldguide.gizmodo.com/the-worst-bugs-in-os-x-yosemit... and http://www.macworld.com/article/2849849/bugs-and-fixes-whats...

Does the mere existence in OS X make it "imperfect" beyond difference-of-opinion design decisions and has nothing to do with Apple charging money, or their limited hardware support?

Yes!

Would OS X be imperfect even if those two articles weren't readily findable via Google?

Still yes!

All software is flawed. Apple knows this and hosts Radar, their bug tracking system, to work out imperfections in their software. All code, whether closed or open source, has bugs, and we as a society haven't figured out how to write bug-free code in an economical way.

Right. I understand that neither is "perfect".

However, the imperfections are in such wildly divergent areas that the comparison is irrelevant to the main issues.

I like Linux, and use it on a regular basis. I do think, though, that if money isn't a major issue the investment in a MacOS X machine is worthwhile. You can always run Linux in a VM.

Personally I think the Hackintosh route is ethical given Apple's intransigence on hardware choice. It is the largest company in the world by market cap, surely it could release the xMac...

They tried this in the '90s. Remember PowerComputing? Or UMAX?

Apple is ultimately, a hardware company. The fact they put a lot of effort into crafting OS' for their hardware that give the average user a very seamless and excellent (imo) user experience is precisely to sell that hardware.

"They tried this in the '90s. Remember PowerComputing? Or UMAX?

Apple is ultimately, a hardware company. The fact they put a lot of effort into crafting OS' for their hardware that give the average user a very seamless and excellent (imo) user experience is precisely to sell that hardware."

You missed my point entirely. I'm suggesting that Apple should broaden its lineup, not license its OS for other hardware. However, given that it offers nothing of interest to the typical "enthusiast" power user, it's missing the boat.

I think Apple should add the "xMac", meaning a range from mini to full size tower machines with plenty of drive bays, dual x16 PCI slots, large RAM expansion, and high-end i5s and i7s. They should be typical Apple design, quality and pricing. This would GREATLY broaden the Mac's popularity.

I also think they should do a "Mac Pro+", meaning a box that either rack-mounts with an adapter (4U), or can freestand on the floor. It should also sport multiple drive bays, dual x16 PCI slots, massive ECC RAM capability, and high-end Xeon processor(s). The killer feature of these would be to gang them together with Thunderbolt into desk side (or server room) supercomputers for scientific programming, engineering, simulation, and 3D rendering. In short, it should provide the most compute capability of any workstation available, and scale as needed.

Apple needs to broaden its horizons, and start leading the computer industry.

I see Android as the future of the linux desktop.
I'm losing my hopes on Steam OS but still keep my hopes on Android and Chrome OS.

Still i'm not sure what to think about Ubuntu and Unity8/Mir.

Licensing would be the number one reason. Also, I think the devotion to OSX and Apple hardware amongst startups and web programmers is sort of like a survivor bias. You don't hear anything from web programmers and general software developers that work at the Fortune 500 on what they use.

One piece of tech that makes the OS of your PC irrelevant is Vagrant and VM software (and other similar). Build locally but use the same OS as your Production environment.

I used to work on Ubuntu since 10.04 but I saw no future with it (lots of bugs, error reports,...) I tried many other distros (Mint, CentOs, Fedora) everything was like everything .. Last summer I bought a Macbook Retina and switched to OS X, result is good hardware and software. I installed my Linux things ZSH,Git,LAMP,Node,... + proprietary stuff like MS office, Adobe apps, which is nice because you use best of both worlds + you get Mac specific apps like Alfred which really worth it. So my point is my computer is my life I don't only code on it, I prefer a nice UI/UX while having a perfect Unix environment, I still use Vagrant for advanced stuff though. Linux distros are a mess they should collaborate and come up with a good ergonomic and CONSISTENT desktop environment rather than add a menu button and call it a new version. On servers nothing beats Linux/BSD no argument there.
I personally don't care much about the desktop environment as long as it doesn't take up a lot of resources.

I mean all I really need is a panel at the top of my screen with a calendar/clock and couple of indicators/applets (battery, network, sound, email) and some kind of file manager, system configuration is usually easier done by just editing the conf files directly.

That said, I agree that the Desktop Environment situation in Linux is just bonkers, a lot of time and effort has been invested in a bunch of different DE's, each being used by a good chunk of the user base and new ones pop up every now and then just adding to the fragmentation.

(fyi; it's OS X, not OS/X)

macminicolo.net has been around since shortly after the original Mac Mini in 2005, so there are people that deploy on OS X, but it's not really cost effective. The XServe line was Apple server, but they discontinued that back in 2011, so it's likely that Apple doesn't even use OS X in their datacenters, opting more to use more traditional servers with a supported OS. Apple's draconian licensing rules for OS X prohibit wider distribution (read about the Psystar case) anyway, so there's not really a wider market, especially compared to the licensing cost of Linux.

As far as init, OS X uses launchd which has its own foibles (XML everywhere), but it works. The app store is sort of a 'package manager', though it's not really designed as one. What you're really looking for is Homebrew which has all the unixy/webdev tools you should need. Mysql and sqlite work fine on OS X, and for the built-in 'web sharing', Apple actually runs Apache under the hood. The network stack runs fine. It isn't great if you've trying to maximize throughput on 10-Gigabit ethernet, but that's hard anyway.

People use it on development machines because Apple makes sexy laptops with sufficiently big batteries to last all day on a single charge. Because Apple controls the hardware and the software, their laptops run OS X really well.

You can run Linux on a Macbook Air/Pro, but at the end of the day, the Unix underpinnings of OS X are good enough, especially for webdev. Install brew, do 'brew install ruby/python/nodejs/whatever', and you're ready to go. Not sure how many brain cells it takes to remember 'brew install $pacakge'.

However, if you find yourself doing lower level systems work where the difference between a .kext or .ko file is huge, or you have your own opinions about systemd, influenced by the amount of time you spend digging around in systems, then by all means, use Linux as your primary OS, but webdev isn't devops.

OS X is a great desktop and thing just work out of the box.

Setting up OS X as a web server is doable but the experience is a lot like trying to setup Linux / BSD as a desktop, you can do it but really it is not the main focus of the system.

I worked at a place where we hosted a site off OS X servers using all the same software that would run on a Linux/BSD box. In fact, I was not allowed to use Linux for some systems so I had to build a lot of servers on OS X. Yes you can do it, and it is actually a great learning experience because you have to figure out how things work rather than just follow tutorials, but fact of the matter is that being a server is not the main focus of OS X.