views:

106

answers:

8

Disclaimer:

  1. This question doesn't aim to start another controversy between Apple fans and Linux fans, it just explicitly asks for actual information and facts.

  2. By saying "tired of system freezes in Ubuntu" I do not intend to say that Linux is bad. I understand that cheap hardware with open source OS can result buggy performance.

  3. Please, answer if you developed both in Linux and OS X.

  4. There is vanishing probability that I will use .NET

I am in Rails development for a few months. I have been using Ubuntu 8 on a desktop, then Ubuntu 9.04 on a notebook and than I went to a netbook with Ubuntu 9.10 finally. I use Vim with numerous plugins as my main IDE and Terminator for multiple console sessions (Guake is very convenient too). Once I have got tired with sudden system freezes and resume-from-suspend failures in Ubuntu with my cheap laptop I started to think about OS X platform to use as my development platform. So, I have got a number of small development-related questions regarding to changing Linux to OS X:

  1. I have heard that if you develop on Mac, nothing irritates you from work, for example suspend-resume-hibernate-resume works 100% or sound card always works or USB sticks are not a pain to mount and use instanly. Is it true?

  2. What I like about Ubuntu is that if I have an intention to try or to utilize a technology other than Rails (for example, Python or CLIPS expert system shell) I can simply download and compile from source of get a .deb package from a repository. Is something similar possible on OS X?

  3. Can a developer suffer from the fact that of OS X is not open source OS? If so, where is the problem? What can be done in Linux, that can not be done in OS X?

+2  A: 

I don't think it matters - you can write code on any system. However, one thing I would say is that if you go with any VPS Host, shared host or full private server unless you ask for a Windows one explicitly or that is their default, Linux is the platform of choice for server hosting. Therefore, I would test my code on Linux.

Of course, correctly written code should move between platforms relatively easily.

Most Linux systems are easily modifiable as a result of their package management system, thus it is easy to issue commands to install new languages and run a variety of scripts either through CGI or via Apache Modules. Most of what you need is in the package repositories, for example Fedora contains Django, a Python Web system.

A server is, at the end of the day, a server.

However, remember, if you have access to multiple local boxes, or a virtual machine for Linux, you can always remotely edit files (SSH) or if safe to do so mount that filesystem locally (NFS). That way, you can use local editing software in the environment you prefer.

Ninefingers
+1  A: 
  1. If you're using Apple hardware, this is true 99% of the time (that's the benefit of controlling both the hardware and software...you can make things 'just work').

  2. You'll be able to do the same thing in OS X. You can either download the source and build it yourself...or you can download a *.dmg with a pre-build binary for OS X.

  3. I'm a developer and I don't suffer a bit running OS X. I've preferred it for years. The experience is just a notch above Windows or Linux OSes (although MS is quickly closing the gap with Windows 7). Keep in mind that this is coming from a .NET developer using MonoDevelop so it should say something (I've also used OpenSuSe for .NET development with MonoDevelop but didn't enjoy the experience nearly as much as OS X).

Justin Niessner
+2  A: 

Why pick? A virtual machine will give you both the capability of OS X and the clarity of Linux.

(not that Linux is incapable of course. You just seem to be tired of running it on commodity hardware)

Ignacio Vazquez-Abrams
+1  A: 

I work full time as a developer for a large university. I use Mac OSX, some of my coworkers use Linux and some of them use windows. I cant say their choice of operation system makes much of a difference in the way they do their job. (Although the windows users have no native terminal to use to log on to the servers, "snicker").

Edit: I do my hobby developing on Ubuntu at home with no problems, I use eclipse both at home and at work. The only thing I really require for development work is a access to a bash shell as I am used to the command line.

leChuck
+1  A: 

It's really simple: Mac has Textmate. Linux doesn't. Both have vim/gvim/macvim.
Mac OSX is based on FreeBSD, which is a *nix derivate. GNU/Linux is a *nix derivate (this is a lie, but it's close enough to the truth). In other words, it's quite close, isn't it!

The main difference is that with Mac OSX, you are guaranteed to get things working, and your laptop will look very cool. And the battery life is pretty nice. Oh.. But Ubuntu pretty much gives you the same benefits. Tough, tough. You should pick out two laptops you like, then type on both of them and see which keyboard you like best.

Trevoke
A: 

So, I've wrestled with this question myself and in fact still want to set up a dedicated Linux box despite my usage of VirtualBox.

I enjoy using the Mac OS X machine for development. I find Mac OS X to be very elegant and it's stable. (Not that Linux isn't). The features and support apple puts out keeps it up to date and operating smoothly.

Also, a side benefit I must mention is how fast Mac OS X will start and shut down. I am, not comparing it to Linux but more to Windows in this regards. But it is still nice if you have a MacBook.

I run Linux in VirtualBox on my MacBook. It runs fine though I often don't use it because it can be a pain to get it started and working in it. Just because Mac OS X is already "there".

I've found that using most tools is the same. So no real difference there. And then, of course, you have the additional text editors that are out for Mac. I like TextWrangler -- it's a straight forward editor.

I guess, ultimately, what I enjoy is knowing that support is down the street at my local apple store if I need it. Normally, I'd like to fix my own compupter -- it's how we learn -- but on the flip side, if I need to accomplish something, I need to get up and running quickly.

Frank V
+1  A: 

There's not such a huge practical difference between Linux and OS X as there is between Linux and Windows. They both have Unix in their heritage; OS X will run the same apps your Linux servers will be running with little to no difference.

It can sometimes be a pain compiling less-mainstream stuff for OS X, if you're using modules outside of the normal binary installs, but it's nowhere near as bad as it can be on Windows.

So in general, use whichever you prefer as a desktop environment.

(Ubuntu shouldn't be suffering ‘sudden system freezes’ though, unless you have a hardware failure/overheat/insufficient power, or poor quality drivers. Worth chasing up as normally it's pretty solid.)

bobince
A: 

To my understanding, I really don't see a real comparison between Mac and Linux. Even though, they are both Unix like, they are very different systems in term of features and pre-loaded applications. Mac is excellent for doing imaging, multimedia and even coding, but most Linux distributions are server platforms with all the tools necessary for serious programming and development. From all Linux distributions, I prefer RedHat Linux.

If you are doing a work that requires high quality imaging and multimedia, I don't think Linux is the right system unless your company is a mega company that creates their own drivers and need super-machines for the job. In the other hand, Ubuntu is an excellent system for those who prefer open source, but it does not have the hardware and software support that Mac OS has.