Why Buying a Mac for (Rails) Developers is a Good Idea

“It’s better to be a pirate than to join the Navy” (Steve Jobs)








This post was inspired by the last part of Jim Neath’s article on speeding up Rails development, titled “Seriously, Just Buy a Fucking Mac”. Some commenters insisted that you can do just as well on other systems (Ubuntu, in particular). In three short words, I don’t agree. In my opinion Ubuntu is a valid alternative but it comes in at second place, and the gap between the 1st and 2nd position is significant. Why?

Software

Some people, when it comes to a good PC vs. Mac fight, start to brag about the hardware – it’s overpriced, and not that much better, and my high end PC notebook is better because … etc. Because they most probably never ever used a Mac for a longer period, they don’t know that the real speed gain/ease || joy of use comes from the software (though it doesn’t hurt that there are no hardware conflicts, evar, no matter how much do you upgrade, no messing around with wifi/mic/video cards/you name it and the quality is top-notch etc.) No. The real secret sauce is the software:

The essential stuff

ruby_logo.pngrails.png

Ruby and Rails – I have spent a few years on Ubuntu from warty to gutsy, and though it was improving from release to release, when I bought an MBP a year ago, the difference was shocking. C’mon, installing Ruby and the whole Rails stack on ubuntu is still a considerable pain, whereas OS X ships with ruby/rails by default.

text_mate.png

A powerful editor – TextMate the best editor ever invented, hands down – mainly when beefed up with Ruby/Rails bundles (the ‘standard’ ones, as well as others like RubyAMP). No windows or linux editor comes even close – though this is hard to believe unless you tried TextMate for more than 5 minutes.
I have been drooling when I was on Ubuntu and checked out screencasts like peepcode Textmate 2 for rails – fortunately I bought a Mac, watched the video and using Textmate ever since, so the drooling stopped.

sequel_pro.png

An intuitive SQL GUI – CocoaMySQL/Sequel Pro. Sorry guys, MyPHPAdmin doesn’t count. Neither does mysql-query-browser, which is the windows 3.11 of the SQL GUIs IMHO. Sequel Pro rocks!

Other niceties

skitch.png

Skitch is something I had no clue I needed, but now I couldn’t live without it! “Skitch.com is a webservice that works hand in hand with our application Skitch to give you 1-click
uploading of images for fast and fun image sharing.”
. Doesn’t sound that mind-numbing, but try it once and become addicted forever.

dropbox.png

Dropbox is a kickass utility to store, sync and share your files online. The best part is that it actually works – it’s not some half-assed solution, but a really working, beautifully executed powerful tool for sharing your stuff.

cyberduck.png

Cyberduck is an an incredibly useful FTP, SFTP, WebDAV & Amazon S3 Browser for Mac OS X. Really missed something similar under Ubuntu.



css_edit.png

CSSEdit – I was really missing a good CSS editor under Linux – the existing ones didn’t even come close to CSSEdit. CSSEdit’s intuitive approach to style sheets and powerful previewing features will make you deliver awesome standards-based sites in no time!

mars_edit.png

MarsEdit is a desktop blog editor, so you can write a blog without giving up the comforts of your Mac. Since I am using MarsEdit, blogging has become a whole new experience – instead of a clumsy web-interface which requires me to be on-line I can focus on blogging actually!

Once you get productive with these extremely powerful tools (and I didn’t even mention the standard built in stuff like Spotlight, iCal, iChat, Time Machine, …) your development time will be greatly reduced compared to that on an Ubuntu/Windows/… machine. For realz!

Everyone and Their Dog is on a Mac

So… why should I keep up with the Joneses – did the me-too club become popular recently? Isn’t Apple’s mantra ‘think different’? Why join the ‘cool kids’?

Valid questions – however, everyone else being on macs also means that

  • you’ll have a much bigger chance of getting quick support on the Ruby/Rails forums/IRC – which is not always easy with Ubuntu (I am on Ubuntu Rusty Robot build R2-D2. Everything is fine, but MySQL driver doesn’t compile because I ran dist-upgrade yesterday, and now everything is jammed. All the tutorials are up to Humpty-dumpty Drake only…).
  • Easier collaboration – sharing Dropbox folders, skitch images, iCal events etc. is very-very common – of course there are other ways of sharing data/notes/collaboratively editing documents, but these Mac tools take it to a whole new level.
  • Growing Mac usage means that more goodness is on the way!

A bit of Mythbusting

  • Macs are crazy expensive
  • You can buy a mac mini starting from $599, or a pre-owned one for $350. Doesn’t sound like bank-breaking. Good PCs are not cheap either – my last DELL was about the same price as my current (almost high-end) MBP. Of course you can buy an Acer for third of the price, but well, the drop in the quality will be proportional.

  • Mac software is expensive, on linux everything is free
  • From the above list, everything essential is free, except TextMate, which is a must, no matter how much it costs. Usually free alternatives exist for almost everything, and the commercial ones are just unbelievably good.

  • You are going to deploy to a linux server, so create your app on linux too
  • While OS X is not linux based, the difference is minimal – Darwin is a POSIX compliant OS so from the Rails development perspective it doesn’t really matter. I do not have accurate data but I don’t think so it’s easier to migrate an app developed on gentoo/fedora/suse/… to an ubuntu box than to do the same for an OS X Rails app. And even deploying from Ubuntu to Ubuntu can be a pain unless the boxes contain the same version of everything etc.

  • I think you just bought a Mac because the “cool kids” did
  • So what? Does this alter the fact that working on a Mac makes you more productive/effective as described above? Not at all.

Use the Best Tool for the Job

Yeah… in other words, seriously, just buy a fucking mac. It’s the best tool when it comes to (not only) Ruby/Rails development.

35 thoughts on “Why Buying a Mac for (Rails) Developers is a Good Idea

  1. I have three macs at home and I use and love TextMate, but when I am at work I have to use Windows. I also prefer to develop on Linux. I also use OS X, Window XP/Vista, and Linux operating systems each day. I can not whole heartedly tie myself down to any major piece of software that is not cross-platform. I hate the feeling of being tied to one manufacture/operating system. My recommendation of editors for those who do not want to or do not have the means to switch to a mac would be Komodo Edit 5 or Netbeans 6 (IDE). Komodo is the cross-platform editor that has most of the features I like about TextMate.

  2. On Debian you can “apt-get install rails” and be done with it. Is Ubuntu really that different?

  3. @Lars: maybe the above works on Ubuntu too – however, what I really meant is getting from clean install to a state where you can run a ‘Hello World’ application. My article about installing Rails on Ubuntu was one of the most popular articles for a long time, and I used similar articles from other people all the time I spent on Ubuntu…

    Anyway, the point of the blog entry is not that it’s harder to install Rails on Ubuntu than OS X, so let’s switch to OS X :-)

  4. Hi, I’m switching to mac today, but I’ve been an Ubuntu user for years and I have to say that it’s a great environment for developing Ruby on Rails. I have to disagree with you about the difficulty of installing the full ruby / rails stack on Ubuntu. I find it’s much easier than on my girlfriends’ macbook: aptitude rocks! port sucks! :)

    My preferred working environment has been gedit tuned up to behave like textmate (although of course textmate), and terminator, a console that will let you open several consoles on one, splitting the window vertically or horizontally, so you can have the script/server, tail -f log/development.log, autotest -rails, script/console and all you need visible at the same time, something you can’t achieve with tabs –is something like terminator available on the mac?

    Anyway, as I said before, I’m switching to mac because I’ve heard so many people state that macs rock for ruby on rails… so I’ll buy it and give it a try…

    Thanks for your post! I’ll install all those apps.

    By the way, cyberduck crashes quite a lot on my girl’s macbook. :) But so does gftp on my ubuntu :P

  5. Hey guys… if I keep on reading the comments, I might end up switching back to Ubuntu.

    Installing: if you use something for years, nothing is complicated. I am not talking about Ubuntu veterans here who know all the tricks (some very basic ones I still remember: you won’t get far without build-essential; mechanize requires libopenssl-ruby1.8 but this is stated nowhere etc.)

    Anyway, I am thinking about removing the installation section alltogether since everybody is attacking through that :-) OK you won, let’s agree for a tie.

    Terminator is available under OS X.

    We can discuss your experience during the next EuRuKo :-)

  6. @Jaime: That’s great… the good news is, everything will be even smoother day by day, and I doubt you’ll agree to the above post, it just a matter of time :-)

  7. Everybody should just use what they are happy with, thats what Rails is all about, isn’t it, happy programmers ;)

    I’m using an old laptop with Ubuntu, and I’m happy, of course I would like a brand new MacBook Pro (or another computer) if I could afford it, but I don’t think I would become a better Rails-programmer just because it is a Mac.

    Btw, Dropbox is a cross platform application, I use it to sync my home Ubuntu-box with my Windows-box at work. If it works on a Mac too it is great, but I don’t think you should use Dropbox as a reason to switch to Mac ;)

  8. @Atle: D’oh! I don’t know why did I think it is a mac only app :-) Well well, so installation debunked, dropbox debunked… if someone comes with textmate + skitch is available for Ubuntu too, I guess I’ll have to remove the article :-)

  9. I thought I’d share my views on the whole matter.

    I cannot honestly see how anyone can use ubuntu as their fulltime desktop environment. Don’t get me wrong, when it comes to servers I’ve always been an Ubuntu guy, hands down. But as a desktop environment, the whole thing just feels like an unfinished product.

    Sure it’s easy to install rails and friends, but I’ve never had a problem installing it on a mac. I just ditch the prepackaged stuff and build everything from source. No problems at all.

    I used Ubuntu for about 3 months, I couldn’t find a decent text editor that fit my needs (Vi? Fuck off). Nothing. I even tried getting a windows text editor to work using wine. Bad times.

    OS X is a nice, simple, clean and intuitive operating system. Windows (Vista especially) is just horrific. Ubuntu feels like a work in progress.

    I’ve not mentioned any other flavour of linux simply because I’ve never really used any besides Ubuntu. So feel free to flame me and call my comments poorly researched and utter toss. :)

  10. @Jim: well said :-) I didn’t want to pick up the gauntlet in the comments of your article (thought there it was hard to resist after reading comments like And where TextMate is better than a good IDE? You don’t use IDE? Lol… :-) )
    so I wrote this one. However, I doubt we affected too much people – it just feels to good in the sour grape camp…

  11. Hey Peter, I saw that other thread but decided not to jump in with my Mac comments. :) Here’s the great place to do, I guess.

    I was using PC all my life and that’s a lot — almost 20 years now since my early childhood of relic 8086′s on and on. After all this time, a year ago when I was making my first steps in Rails cradle I stumbled upon a podcast (one by Peepcode or RailsCasts, doesn’t really matter) and fell in love with the text editor immediately. Back then I grew tired of all these slow and convoluted IDE’s and was coding away in Midnight Commander’s built-in editor having three MC’s open in tabs of gnome-term. Yes, and it was Ubuntu. ;)

    My wife had been using Mac for graphics design for quite some time already and I touched it every now and then to test desktop Java apps or to check web pages in Safari. It felt alien — very GUI’sh and over-user-friendly where you can’t live without a mouse. The moment I saw TextMate (and it was quite some time later that I discovered the name of the miracle) I decided to switch.

    Now my desktop PC is at my dad’s place given as a gift with all those modern ATI Radeon cards, coolers etc etc, my PC laptop is on the shelf collecting dust (sorry, pal), and I’m a happy Mac convert.

    Yes, and a surprising metamorphose has happened — I’m now buying soft and books as naturally as bread and milk. Previously I was looking for free apps, OS analogs, and (admitedly) cracked versions all the time. Now I notice that apps look good, they do what they promise to do, they cost reasonably and what has to be free is free. There are things that simply CAN’T be free, like TextMate, and it’s a pleasure to pay for them. Those who got used to “stealing” really have to try it. Amazing feeling.

    Cheers! :)

  12. @Aleksey:
    Which other thread – you mean the one at jimneath.org? Yeah, as I told there, I didn’t want to continue to fight the ubuntu zealots so I whipped up the above article (though it was hard to resist, esp after reading comments like ‘And where TextMate is better than a good IDE? You don’t use IDE? Lol…’ ROFLPIMP, my eyes filled with tears of joy when I read that :) O sancta simplicitas…

    I came from a Java background so I was pretty heavy on IDEs (JBuilder / Eclipse / NetBeans), but once I got to know ‘Getting Real’, Rails and Ruby, have seen people bragging about TextMate and seen their workflow when coding in Rails, I knew I need a quick job change ;-) So I left Java/PC/Ubuntu/IDE land and I am a happy Mac/Ruby/TM convert! Have no idea how could I do without my mbp?

    I am missing my PC onlybe cause I can’t use my Logitech MOMO wheel any more, but that seemed like a non-adequate justification of keeping it :-) (and for the occasional play I am using wii/PS2 anyway).

    It’s funny you mentioned that “buying soft and books as naturally as bread and milk” – it captures this, yeah, metamorphose pretty well. I talked with a few independent people stating that they would gladly pay for skitch – and so would I. Strange after the piratebay-ish linux/win32 years :-)

  13. @Peter:
    Yeah, Jim’s thread. People seem to become so… intolerant when their preferences are being (rightfully) discussed and questioned. ;)

    The IDE topic is particularly interesting. Previously I followed every innovation in the IDE world and thought that it’s the way to go — IDE has to handle code completion (it’s literally impossible to remember every method of every class), real-time code review and take other complex tasks off the shoulders of the programmer. Over time IDE’s have become more complex and demanding to system resources (to the hilarious extent sometimes). They have simply because the languages they were intended for are far from natural and easy themselves. Instead of solving the root cause of the problem — simplifying the language so that it doesn’t stay in a way of a programmer — people focused (and still do) on building complex tools to deal with the stress of programming on those language. What is fascinating about Ruby is that you don’t need an IDE at all and I proved it to myself working in VI (comfortably) for quite some time. And that’s a sign that something has finally been done right. So, the question you quoted should sound more like “You DO use IDE? Lol…” really. ;)

    I was also coming from the Java world (7+ years before the switch), but in my programming life used about 14 languages for projects of sizes from micro to huge. Ruby is the love of my life. It truly is. Many say that it feels like a rope long enough to hang yourself, so flexible it is, but if you have the coding discipline, value style and consistency, this flexibility is really a blessing!

    Hope I’m not violating any policy of the comment size. :)

    Cheers!

  14. code completion – hm sure, though command-T in textmate as well as some nice bundles can help a lot and so far I didn’t feel an enormous need for this (I could still use NetBeans or something but it didn’t even cross my mind since I got used to TM ;-)

    On a terminal I am using vim, but I am not really proficient with it and would never switch from TextMate (btw wtf http://nubyonrails.com/articles/emacs-emacs)

    Java vs Ruby – it’s not for everyone. For some guys (no offense, but IMO mainly for the mediocre ones) it is more convenient to sit at some big Java shop as one of the x Java devels and code something. Nobody notices if you have no particular result in say a few weeks. In that timeframe in Ruby/Rails you could create a google competitor ;-)

  15. Sorry, but I prefer Ubuntu :)

    And, BTW, there are great Linux alternatives for all the apps you mention.

  16. Oh well… After reading these comments, and feeling some pity.. err, compassion ;) — Allow me to offer this as a Christmas gift… :)

    My recommended applications for those developers wishing to use Ubuntu (or some other Linux distribution):
    FTP Client: FileZilla
    Programming Editor / IDE: GNU Emacs
    Easier (than Emacs) Programming Editor: Geany
    Terminal / Console: rxvt-unicode (and) GNU Screen
    Quicksilver Alternative: Gnome Do (or) Launchy
    RSS Feed Reader: RSSOwl
    File Manager: Midnight Commander
    Outliner / Note-taking App: NoteCase
    IRC Client: WeeChat

    All of these are very powerful apps. Take the time to learn them. You’ll be rewarded.

  17. Ok, I’m the guy from the 3 previous posts… Funnily enough, I’ve switched to a MacBook Pro about one week ago, after one more issue with Ubuntu.

    I’m soooo happy I’ve switched! To the Linux users reading this — Mac OS X is a whole new world, especially in terms of how smoothly things work, how well-integrated Cocoa apps are, and the little details that, compounded, make things much easier.

    I’ve been proven wrong.

    I really echo Peter Cooper’s words: just buy a fucking mac.

    And this comes from a guy using Ubuntu every day since 2006.

  18. Ubuntu->Mac converts? Let me guess: gedit, gnome… of course you switched to a mac! Sheese. Web development is one of those things where a TILING WINDOW MANAGER is absolutely perfect. It’s all text! You design the interface, write code, test code, and it’s all pure fucking text. Your software runs in a browser window so you don’t need the full “well-integrated” desktop environment. It actually just gets in the way.

    A Mac is excellent for authoring graphics considering you use Photoshop so a Mac. Inkscape and Gimp are a total pain in the ass with tiling window managers too. But give me a fucking break. There is no way the mac desktop can beat a good tiling window manager like XMonad or Awesome combined with Vim/Emacs, and urxvt-unicode. I switch to a test workspace and start tests, switch to the browser and Ctrl-R, and flip back to Emacs before you’ve moved your fucking hand to the fucking mouse.

    Most of the tools cited in this article have nothing to do with RoR. Where’s your git gui for example? Oh yea, it’s all text. WTF does MarsEdit have to do with Ror? Gimme a break!

  19. there are no clever people without ignorant ones
    and using a mac is a clear proof of ignorance and lack of competence, in addition to be a pathetic middle-class choice

  20. Pingback: Про линуксы. Необычный максвитч … с линуксов :) | Nexus Notes

  21. There is a reasonable suspicion at this level of 0. But, you owe it to they DUI attorney who could aid people s trouble with the expertise of a conviction can bring down the street sobriety check point near a suspended internet marketing license, the word.
    The single way to protect you from the internet marketing
    Maricopa County from the information obtained during the arrest.
    A internet marketing charge alleging a violation. This charge
    is not your first offense.

    Here is my web-site: dig this

  22. It’s also search engine optimization good practice that students get an attractive
    Dallas web designer is someone who is a business in online.
    Well, definitely not, that’s something you need to build your website is no
    compromise. For small businesses for marketing integration to take advantage of the Internet,
    there is a vast industry and business.

    Feel free to surf to my webpage what is a search engine optimization

  23. Even if you didn’t know how you want to take a long time manager of this, the company has a blog to
    your products or services. Your business website is confusing and web design offer seo solutions.
    Be it photographers, writers, and web design let he other company.

    One can make life easy for people to do. A deposit in advance for all this.

    my page … search engines submission

  24. This is the $ – this is the main purpose of the visitors thus
    increasing the credibility of a business image online among the last step is to read your comments.
    It’s preferable to use them search engine optimization on time, it
    is, therefore when embarking on any web site. More and more
    popular search engines, focusand simplicity gets faster and faster.

    my web page – search engine optimization how to

  25. Companies of different companies for such a way that it works,
    you need to web design be lost in the company. If
    you’d like, there has been studying the others. Generally, these certifications are recognized globally, web design Victoria teams also design your website, it is important for e- commerce.
    Id had about 6 years worth of a company is too large and sprawling websites
    it can also ensure that you hire.

    My web blog; international search engine optimization

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>