

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

A lot of web programmers I meet use OS&#x2F;X on Apple hardware. I see none of them deploying on OS&#x2F;X however. Despite I hear about  OS&#x2F;X being part of the *nix family, I can&#x27;t comprehend why it can&#x27;t be used as a server OS, e.g. on AWS. Anyone has ideas why OS&#x2F;X isn&#x27;t good for servers (except hardware compatibility). I&#x27;m curious about OS&#x2F;X init system, package managers, support for databases, web server sw, network stacks etc.<p>If there are good reasons for it, why people use it on development machines? Isn&#x27;t that  loss of precious brain cells to learn inadequate stuff for server development?
======
Kjeldahl
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.

~~~
tormeh
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.

~~~
ElectronCharge
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.

------
matt_s
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.

------
fragmede
(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.

------
jawb
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.

~~~
hereonbusiness
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.

------
120photo
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.

