It seems like most web developers that have blogs about their workflow use Macbook Pros and OSX. What is the reason for that other than the ability to boot into multiple OS? I have seen very few posts on the internet mention using something like Ubuntu to develop websites and create web apps.
Do any of you use Ubuntu or Linux for Web Development? What is your workflow like?
In my company, all production machines for anything run Linux exclusively, and a handful of Macs are the only exception. The macs are used for two things: 1. iOS development, which is only possible on OSX, and 2. some limited audio production using proprietary hardware solutions that only perform well and are compatible with OSX (the main chunk of audio production is done on Linux though).
All web development is done on systems equipped with Fedora and OpenSuSE. The development servers run Debian. We've tried many Ubuntu versions in the past, and always test new Ubuntu versions as they are released. Ubuntu never reaches our performance and stability goals, and does not offer up-to-date tools for innovative product development. Ubuntu server is a great choice as an operating system for development servers though, but we prefer Debian, OpenSuSE and CentOS for all servers. The (virtualized) web development servers run a lean and mean custom Debian for most performance and lowest overhead, and to reduce the overhead of snapshotting. Debian has the lowest volume of updates of any distro except Mint, which means less overhead when snapshotting virtual machine states, because it needs to be resnapshot less frequently. The workstations mostly run OpenSuSE, some run Fedora. The reason for this is the better and much more up-to-date management tools, the much better packaging quality than Debian/Ubuntu, the much reduced updating overhead and much shortened patch latency thanks to DeltaRPM and dnf/zypper, and the much better compatibility with latest hardware combined with stability and full modern functionality. This is not only true for web development, but also for just about any other purpose.
If you want to work efficiently with Ubuntu, you basically need to keep with old LTS versions as long as possible, because usually, Ubuntu releases take about two years to get to a point of stability and functionality that is usual in RPM-distros or Debian within two weeks after a release. That is not a problem if you don't need the functionality of newer versions. It's hard to make a difference in such a competitive market as web development without integrating the latest and greatest though, and the latest and greatest is only available on recent Linux platforms, not on any other platform (not even on BSD).
Thanks for the great information. I appreciate the time you took to explain. Ubuntu seems to market the most and sometimes it is hard to see past the marketing and just get the facts. I am learning JavaScript and jQuery on my own with the hopes of progressing to Python next. Learning on your own requires searching many tutorials and I was surprised at the lack of Linux references in those tutorials (or even Windows!). Thanks again for filling the knowledge gap!
OS X basically hides apache, unless you're using Server. Apache baked into OS X is filled of dependencies; too many, and not the ones you want. And it's not recommended to change it, or setup a alternative. I basically don't use any dependencies, so I use NGINX.
I use Ubuntu or Debian VMs for my web servers, and edit code on these headless servers. My router is actually a mac mini, which runs server and provides DHCP and DNS to the local network. So all of our development hosts get A records. Nice not needing to deal with hosts files.
Yeah I agree with Ubuntu LTS. That's what I've been using. Isn't the point of Linux like deep stability, and maybe slower moving for the sake of patching things. That's why I did 14.04. Not sure why I went with ubuntu over debian. It's basically has the same packages available to it though. Ubuntu seems to have more people with experience on stack overflow.