Mac OS por años, ha sido el sistema operativo más utilizado por los que yo denomino: desarrolladores de la nueva generación.

Personalmente este dato me perturba ya que esperaría que Linux o inclusive Windows sean los ganadores en esta categoría, sin embargo hice un poco de investigación y creo que logré entender el por qué.

No todos los desarrolladores prefieren Mac, de hecho, la mayor parte de desarrolladores trabaja en Windows. Pero existe un grupo, un club, una secta de programadores que prefieren que sus aplicaciones funcionen en más plataformas.

Ok, entendemos el concepto verdad? pero… por qué Mac? Es decir, desde mi perspectiva, Mac no es si no Unix caro. ¿No somos los desarrolladores lo suficientemente entrenados como para “domar la bestia” que un SO Linux representa?

La respuesta puede que te deje asombrado: No es que los desarrolladores no estén entrenados, o le tengan miedo al gigante Linux. La verdadera razón es la siguiente:

Si tu cliente final ejecutará tu software en Windows, probablemente la opción más inteligente será usar el sistema operativo de Bill Gates.

Pero… y este pero debería estar escrito en mayúsculas y en negrilla (cosa que haré para dejar constancia de la importancia de esta conjunción)

PERO si tu aplicación no está destinada a ejecutarse en Windows, lo que te queda realmente son 2 opciones:

  1. Que tu app corra en iOS
  2. Que tu app corra en un sistema Unix

Y es en el primer punto en donde la Mac cobra un papel importante (y de hecho exclusivo) y tú mi querido lector, me dirás: “este blog no tiene idea, ¿Acaso el autor no conoce de las aplicaciones híbridas?”

Tranquilo, las conozco. Pero en muchas ocasiones, el cliente final desea (y debería optar) por una aplicación nativa. En el segundo caso, el desarrollador tiende a elegir un Unix certificado que evita mucho trabajo en configuraciones innecesarias y con una comunidad de developers activa y masiva, es decir: MacOSx.

En resumen, si tienes una Mac:

  • Puedes desarrollar en lenguajes de alto nivel (Java, Go, Javascript, Python, lo que sea).
  • Puedes desarrollar en lenguajes de sistemas (C, C++, Rust, lo que sea) y tu código generalmente podrá compilarse sin cambios, o con cambios mínimos, en Linux, cualquiera de los BSDs, AIX, Solaris, HP-UX, y cualquier cantidad de otros sistemas exóticos; posiblemente incluso funcione en Windows bajo MinGW.
  • Puedes desarrollar para Android (en Java, con Android Studio, o en un lenguaje de sistemas, con un cross-compiler que genere binarios para Android, que no es más que otro Linux).
  • Puedes desarrollar para iOS.
  • En un caso desesperado, puedes ejecutar Windows en tu Mac y probar tu software en Windows, o desarrollar cosas específicas para Windows con herramientas de Windows.

Si tienes Windows:

  • Puedes desarrollar en lenguajes de alto nivel.
  • Puedes desarrollar en lenguajes de sistemas software para Windows. Portar a otra plataforma puede ser un dolor de cabeza. Incluso si usas bibliotecas portables, necesitarás una Mac u otro Unix para probar.
  • Puedes desarrollar para Android (en Java, con Android Studio).

Y ya, eso es todo. (un poco corto de opciones no?)

Quizá lo que agregaría aquí es que una gran cantidad de programadores, tal vez la mayoría, pueden vivir perfectamente cómodos en uno de esos tres puntos de Windows.

Y tú. ¿A qué “team” perteneces? Windows, Linux o Mac. Déjame tu comentario.