Ask HN: Can we talk about Linux vs. OS/X?
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 ] threadOn 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.
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.
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.
We started being able to breath again when Ubuntu was released. 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.
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.
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...
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.
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.
Still i'm not sure what to think about Ubuntu and Unity8/Mir.
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 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.
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.
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.