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. 
- 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. 
- 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. 
- 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 
- 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. 
- 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! 
- undefined 
- 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.