Ask HN: Linux family vs. Mac OS X family for Development?
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
THanks
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.
Check out my dev environment setup scripts here:
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/
Relatedly, I still have my copy of this:
http://ecx.images-amazon.com/images/I/61TlqCEt%2BBL._SX300_....
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.
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.
Because time 'configuring' is time not coding...
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.
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.
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.
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
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?
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.
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.
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
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.
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.
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 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
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).
Stay with linux. Its better and free :p
"10 hours programming daily"
Gods, man, get up and take a walk now and then!
That's right. Maybe you like this http://www.amazon.com/The-Healthy-Programmer-Pragmatic-Progr...
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.
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.
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).
For linux based laptops to gain battery life it's important to use software as powertop / tlp.
It is logical that the apple laptop has a decent battery life, since apple uses a pre-defined hardware list, according to which operating system drivers are polished.
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.