
Ask HN: Linux family vs. Mac OS X family for Development? - haidrali
I am full stack developer spend about 10 hours programming daily. I have been using Ubuntu for last 3 years and have never used MAC neither for development nor for daily use. I want to have developers opinion about development on Linux based OS vs MAC OS X ( though both are UNIX based ).
my development stack is Rails,Angular and somewhat Android<p>THanks
======
duncan_bayne
My history:

1995: started using Linux as a hobby dev OS

2000: switched from Windows NT 4.0 to Linux at work (C)

2002: moved to .NET, used Windows at work and Linux at play

2006: mix of Linux and Windows at work

2011: abandoned .NET entirely; mix of Linux and OSX at work, Linux for play

2013: entirely Linux

2014: mix of FreeBSD and Linux for work and play

So it's fair to say I've solid experience in both, plus a fair amount of dev
environment automation under my belt.

Linux vs OSX: Linux wins hands-down unless you're happy hitting a wall when it
comes to customisation and automation. Mint is in my experience the equal of
OSX out of the box, and just gets better as you start automating things.
Productivity with a decent keyboard-driven WM and editor (StumpWM + Emacs in
my case) is great.

Recently I've become a bit concerned that some of the design directions taken
by the Linux community aren't aligned with my priorities, so I've been trying
out FreeBSD. It's awesome, and my current OS of choice, but hardware support
is more limited and the desktop / laptop experience isn't as polished as Mint.

~~~
duncan_bayne
Check out my dev environment setup scripts here:

[https://github.com/duncan-bayne/mint-setup](https://github.com/duncan-
bayne/mint-setup)

Nothing fancy (no Chef or similar, just a few shell scripts) but may give you
some ideas. I most recently used them a few days ago to provision an old
MacBook Pro as a spare dev machine at work.

I've a similar thing (more of a work in progress than the above Mint stuff)
for FreeBSD:

[https://github.com/duncan-bayne/freebsd-setup/](https://github.com/duncan-
bayne/freebsd-setup/)

------
smt88
Linux, hands down.

1) You probably write code that targets Linux. That means using Linux as your
dev machine is going to reduce complexity.

2) The latest OS X is an absolute mess. It's incredibly slow as well.

3) Docker support on Linux is far better than on OS X.

------
vladimir-y
I am also curious what are objective reasons to use OS X (apple laptops) over
Linux for code developers?

For code developers Linux is better, it's free and open, all sorts of trendy
things more convenient to test and use on Linux, there is everything could be
configured (and you will have to configure everything :)) Even for not code
developers but picture/3d it's better to use laptops with pro graphic cards
(FirePro/Quadro) than apple laptops. Also OS X is proprietary, so if you are
conspiracy theorists it's probably not the best choice.

Currently I'm using Dell E7440 (FHD IPS screen (no touch) and SSD is
essential) and Arch linux + Gnome shell (there is also win 8 as second system,
just for case), and I'm happy so far.

~~~
ptype
Because time 'configuring' is time not coding...

~~~
vladimir-y
Actually some significant configuring is required only for non standard
features, standard features usually are available of the box at least for
popular Linux distributive (ubuntu, etc). Today, Linux is available variety,
and for housewives as well.

------
jackgolding
It is interesting that this is the most Linux sided Linux vs OSX discussion
I've seen on HN.

I personally just got a iMac which has boosted my productivity compared to
working on a Macbook. Could have been the effect of cleaning my desk though.

~~~
smt88
I despise OS X for many reasons, and I have for years. However, I used to be
pretty silent on discussions like these. My issues were (mostly) subjective
and personal.

With the release of Yosemite, I'm now vocal about my dislike of OS X. It is
objectively an inferior OS.

I believe many HN readers are in the same boat now. There have been quite a
few threads about the decline in quality control for OS X/iOS in the last few
years.

------
factorialboy
For development, Linux for sure. OS X just annoys the hell out of me. The MBP
hardware is good, but for the last few years there are some very good high-end
Linux laptops as well.

I personally use the Dell XPS 15:
[http://amzn.to/1EOPJtB](http://amzn.to/1EOPJtB)

~~~
sreenadh
When I checked the link, it showed that the laptop comes with Windows. How is
the driver support for Linux(esp. fan)? Which flavour are you using?

~~~
factorialboy
It's very good. I'm making this comment from a Dell XPS 15 purchased last
week.

I go rid of Windows 8 and installed Debian + XFCE.

Everything just works, no hardware driver hacks.

------
perfectspr
Both Linux and Mac OS is good for web development. I think it depends on
hardware and tool chains you are using. Usually, Linux and Mac OS have the
same tool chains, like Eclipse+Rail+Gulp+Bower+NodeJS. So OS is not a problem,
hardware is what you should be concerned about. It will save lots of time if
you have a high performance computer. and I think the hardware of Mac Book is
better that most of other PC/laptops.

I have a Thinkpad E420 laptop which has Windows 7 preinstalled. I upgraded its
memory to 4GB. But it is still not enough in windows 7. so I installed Linux
Mint Xfce. It is really fast and takes up little memory. But the CPU and disk
is not good enough, I still have to wait a time when opening Eclipse or
Firefox. So now, I'm planning to buy a Mac Book.

~~~
haidrali
Thank you for much valuable response i also have problem with opening Eclipse,
Chrome on Ubuntu, 4GB RAM, Dell Inspiron N5010 ( though a good machine) now
planning to have Mac Book heard of its awesome battery timings

------
akbar501
This is obviously a personal preference question. I use a Linux laptop and a
MacBook Pro daily. Most days I spend more time on Ubuntu. In case it matters,
the MBP is brand new top end. I run Ubuntu on an older Dell Precision, yet its
still what I prefer.

Since you're already on Ubuntu, I'd stay with it.

Linux is just great for development. 1.) I find the shortcuts on Linux more
natural (for me). 2.) I use a lot of open source software and everything I use
targets Linux. 3.) I find it easy to develop on the same OS that I deploy. 4.)
I'm super used to Linux.

As for the Mac, the hardware casing is amazing...it's so thin and nice. As for
RAM, CPU, its definitely very good, but not the highest end configuration on
the market.

------
loumf
I am an iPhone dev primarily so I have to use OSX, which I am fine with.

I also do webdev in Django and that's fine too, but sometimes OS X likes to
play with my python and mysql versions (especially on OS upgrades) -- since I
don't have to do this every day (or even every month), I often spend the first
few hours of a new task with it trying to figure out how to fix them.

I haven't switched to using vagrant for all server dev, but if I had to do it
a lot, I would put my dev environment inside vagrant and isolate it from OS X.
I deploy to Linux anyway, so there's no point in making it work on OS X.

------
informatimago
Stay with Linux.

It's really a personnal question, and depends on your preferences on user
interface.

For example, I prefer the emacs user interface and I use emacs with ratpoison
as window manager on X11 on Linux. I also use emacs on MacOSX (and
[http://www.emacsformacosx.com](http://www.emacsformacosx.com) is a very good
GNU emacs distribution), but I miss the rest of keyboard interaction allowed
by ratpoison (which if you stay inside emacs, is not a big deal). I also use
X11 on MacOSX. In my situation, Linux is quite preferable. On the other hand,
since I'm currently working on a MacOSX application, while I could (and
actually did during a period) edit and compile it from the Linux box, I'm
currently using the MacOSX box to work on it (and therefore accessing my Linux
workstation thru X11 on MacOSX, since it's more convenient than moving around
to the Linux box).

This later note, to mention that you can have a setup where "the network's the
computer", that is, you actually use the workstation at hand just as a window
on the whole network. With a window system like X11, you really get a smooth
experience having processes on the various computer on your network displayed
on your screen. Then it doesn't matter what OS your current computer runs, you
are just using X11 apps, running all over the place.

And if this is your approach, if you're using more a network of computer than
a single isolated computer, then consider that (while NeXTstep
DisplayPostscript system provided such network independance and indirection),
the only window system nowadays providing it is X11 (which you can use on unix
as well as on MacOSX or MS-Windows). Also, and for somebody who uses the
keyboard 12 hours a day, I notice that I can more easily configure the layout
of the keyboard with X11 than with MacOSX (or worse, MS-Windows), and
furthermore, I find that the keyboard is more responsive when processed by X11
than by the MacOSX system, notably in the handling of modifier keys (and that,
with a DasKeyboard-3 keyboard, which has 6-key rollover (thru usb)!). So when
typing some kinds of text, I really prefer to use Linux than MacOSX.

On the other end of the computer system, there's the persistent storage, and
on this side, there's some justified criticizim of the MacOSX file system
(HFS+) compared to the much better Linux (or other unix) file systems. This
may be a reason to want to use a Linux workstation, but you may also just
store your file on a NAS (or just a NFS or Samba server on your Linux box), so
again, the network's the computer, and the choice of OS on your workstation is
not so relevant.

There's the question of the hardware, with multiple considerations. Ignoring
the question of price, there's the question of ease of use. MacOSX seems to
provide a "it just works" experience, which is good, but on the other hand, if
it fails, you may have a harder time than with Linux, where you can usually
repair it. For example, sleeping a laptop, or switching to new wifi networks,
are no-brainers with a MacOSX laptop, but I've spend hours configuring linux
laptops to do that. Perhaps there's some hope and light at the end of the
tunnel, in the form of the Libre15 laptop?
[https://www.crowdsupply.com/purism/librem-
laptop](https://www.crowdsupply.com/purism/librem-laptop)

Now, perhaps you will have to test your web development on a Safari browser.
Then you will need a MacOSX box to use it, and happily, MacOSX can also run
Firefox (and Chrome, etc).

------
haris4063
Stay with linux. Its better and free :p

------
SwellJoe
"10 hours programming daily"

Gods, man, get up and take a walk now and then!

~~~
perfectspr
That's right. Maybe you like this [http://www.amazon.com/The-Healthy-
Programmer-Pragmatic-Progr...](http://www.amazon.com/The-Healthy-Programmer-
Pragmatic-Programmers/dp/1937785319)

------
hasenj
I use OS X because of the better hardware and nicer GUI/UX.

After installing homebrew, MacVim, iTerm, and Chrome, I can't think of
anything major I miss from Linux/Ubuntu.

I'm mostly doing front-end development. No "Docker" stuff or anything fancy
like that.

~~~
smt88
Nicer GUI/UX is subjective. I find that the OS X GUI kills my productivity,
but others may feel the opposite. Linux is highly configurable, at least, so
you could get near-perfect OS X UI on a Linux machine.

As for the hardware: I'm running Ubuntu on my MacBook Pro laptop, and it runs
great. It boots much faster than my clean Yosemite install. In fact,
Yosemite's performance was abysmal compared to Ubuntu.

~~~
Someone1234
This is a little off topic, but how is the battery life on your Macbook Pro
when running Ubuntu? Last I looked Ubuntu ran fine, it just cut your battery
life in half (actually both Windows and Ubuntu cut your battery life in half,
when ran natively/bootcamp, and not via VM).

So has that improved at all. It certainly hasn't on Windows on a Mac (the
Apple bootcamp drivers are really unoptimised).

~~~
smt88
Battery life is about the same, but it was never great (13" 2013 MBP with
HDD).

When I'm using my laptop (at a client, in a meeting, at the airport) I always
have a power outlet, so my productivity is much more influenced by the OS than
the battery life. Your lifestyle might be different.

