Mac als Developer Workstation

Een ontwikkelaar op een Mac, dat heb ik nog nooit gezien.

Steeds die verbaasde gezichten en misschien wel tijd om een keer voor eens en voor altijd uit te leggen waarom ik op een Mac werk. Ik ben in elk geval niet de enige.

Wat heb ik aan een Mac als software developer? In de eerste plaats heb ik een waslijst aan programmeertalen en tools waaronder:

  • C/C++: hierin worden besturingssystemen als Windows, Linux en OS X geschreven
  • Java: momenteel de meest populaire programmeertaal en de taal die men op school onderwijst
  • Python: programmeertaal met roots in Amsterdam, wordt heel veel door Google gebruikt
  • PHP: de huistaal van Yahoo en nog steeds de belangrijkste taal op het web
  • Perl: een andere veel gebruikte taal op het web
  • Ruby/Ruby on Rails: is nog upcoming, maar is wat je een disruptive technology zou kunnen noemen in de Java wereld
  • Objective C: de taal waarin Mac desktop en iPhone applicaties gebouwd worden
  • CVS en Subversion: versiebeheer tools voor je projecten
  • Apache httpd: nog steeds de meest gebruikte webserver op het internet
  • XCode: een ontwikkelomgeving te vergelijken met Visual Studio Professional

Deze worden zonder extra kosten meegeleverd en ondersteund, dus ook met patches en security updates. Geen serieuze database, maar ik kan nog wel Oracle, PostgreSQL of Mysql downloaden en installeren. Dit is vooral mogelijk omdat het OS X besturingssysteem gebaseerd is op een Unix kernel.

Wel leuk al die tools die ik tot mij beschikking hebt, maar voor wie ontwikkel ik dan mijn software? Hoe krijg ik brood op de plank?
In de eerste plaats zijn er de bedrijven met Java server applicaties op zware Unix omgevingen als Solaris, AIX en HP/UX. Denk aan banken, telecom bedrijven, e.d. Maar ook overheidsorganen die tegenwoordig veel met Open Source en dus Linux doen. OS X is Certified Unix en ik hoef als ontwikkelaar geen rekening te houden met verschillen tussen Windows en Unix. Met XWindows kan ik zo met een GUI op de Unix omgevingen inloggen zonder speciale Windows/Unix integratie software. Dit doe ik nu dagelijks op mijn Macbook, Java server software schrijven voor Solaris machines.

Maar de Mac is ook geschikt voor het bouwen van innovatieve web toepassingen, lees: 'the next web 2.0 social network thingy'. Denk aan Digg, Twitter, Wakoopa, Netlog, enz. Linux/BSD is meestal het hosting platform en de mac sluit daar goed op aan. Zelf werk ik aan Ruby on Rails web applicaties voor o.a. webshops en startups. De applicaties hosten we dan op een Linux Debian omgeving.

Ik kan natuurlijk ook gewoon software voor het mac platform zelf schrijven. Dit is een kleinere markt, maar het groeit wel gestaag en een niche markt kan ook winstgevend zijn. Heb er nog geen ervaring mee, maar met XCode schijnt het vrij makkelijk te zijn om een goed uitziende applicatie te bouwen.

And last but not least: de iPhone en de iPod Touch. Dit is een totaal nieuwe markt waar we nog veel innovatie kunnen verwachten. Heb me al aangemeld voor de iPhone Developers Program en ben benieuwd wat allemaal mogelijk is straks.

Maar software ontwikkeling op de mac mag dan hel leuk zijn en niet veel kosten, overstappen heeft wel een prijs:

  • Je kunt geen .Net applicaties meer ontwikkelen. Als je web applicaties bouwt heb je de reeds genoemde alternatieven, voor Windows desktop applicaties wordt het moeilijker.
  • The cost of change. Als je vooral Windows gewend bent is zowel de GUI van OS X, als de Unix shell een drempel.
  • Het is moeilijker bij te blijven. Er zijn geen cursussen, er is geen roadmap, je moet allemaal zelf de communities in de gaten houden.
Moet je investeren in zo een overstap of blijf je bij Windows? Windows blijft voorlopig wel pre-installed op nieuwe pc's en blijft het grootst. Maar laat je geen mooie kansen liggen als je je alleen op windows blijft focussen? Voor mij is in elk geval een heel nieuwe wereld geopend sinds ik ben overgestapt.