Hace unos meses hice finalmente mi transición a MacOSX luego de haber sido un asiduo usuario de Windows por casi catorce años (empecé con esto de la computación a los cuatro, cuando DOS ya se posicionaba en el mercado :P) y un eventual usuario de Linux por unos tres o cuatro años. Como un buen comprador responsable, la transición fue precedida por varios meses de investigación, revisando videos, listas, reviews y otros.
Tuve una agradable conclusión, la mudanza no sería para nada fuerte. Todo programa que utilizaba en Windows y en cierta medida Linux tenía un equivalente, e incluso muchos (todos ellos Open Source) eran multiplataforma, o tenían una versión propia para Mac o basada en su código (como Adium, basado en el backend de Gaim/Pidgin).
Y esto fue un buen punto a tomar en cuenta sobre la dependencia tecnológica. Antes había escrito sobre como el profesional debe situar sus habilidades por sobre las herramientas que usa, y no verse limitado a éstas. Si sabes desarrollar en Java (por tomar un ejemplo) deberías poder hacerlo en practicamente cualquier plataforma y con cualquier IDE, e incluso sin éste. Tomaría algo de esfuerzo, pero no es imposible e incluso debería ser una práctica normal de todo desarrollador para ver como se comporta una herramienta o lenguaje "al otro lado de la cerca".
¿Pero qué pasa cuando no tienes una alternativa?
Sólo había una cosa que me obligaba a regresar a Windows. Olvidemos por unos momentos el tema de los juegos (de los cuales, aquellos que juego, tienen su correspondiente versión en Mac como Starcraft, WarcraftIII, WoW y similares), ya que el equipo con el que trabajaba estaba orientado al trabajo.
Había antes ya mencionado mi predilección por .NET, aquella ahora tan conocida y famosa (para bien o para mal, y beneplácito de muchos y desdén de otro tanto), y en particular por su lenguaje C#. Me gusta mucho la arquitectura que posee, el impulso que la misma Microsoft le da en sus variantes (desde el continuo desarrollo hasta la implementación de frameworks adicionales como el XNA Studio) y los conceptos que podemos encontrar en sus últimas versiones (WPF todavía me gusta mucho y sigo aprendiendo más de ésta).
Sin embargo, no todo era perfecto. Visual Studio 2005, el IDE predilecto para desarrollo en .NET (y en mi opinión, uno de los mejores donde he trabajado) no tenía ninguna versión para otras plataformas. Existían, claro, proyectos como Mono y el IDE libre MonoDevelop (que también es bastante bueno) pero que todavía no han logrado al nivel completo que tiene .NET en su versión para Windows. Incluso, probablemente por mucho tiempo sufrirán el fenómeno de estar siempre atrás de la versión principal (aunque Moonlight, el desarrollo libre de Silverlight para Linux es bastante sorprendente, tanto en la velocidad de implementación como en la validez que le ha dado al proyecto en general).
Pero si tenemos ya proyectos que entregar e implementar, no podía sacrificar los requerimientos del cliente usando otras versiones. Estaba prácticamente obligado a reiniciar en Windows, o emular una partición de ésta en algún programa respectivo; atado, peor aún, a un Sistema Operativo.
Limitar una tecnología o framework a un sólo Sistema Operativo, independiente de las estrategias detrás de la decisión, es un caso que, espero, sea dejado de lado poco a poco. Gracias al crecimiento del desarrollo de aplicaciones web, vemos que mantener versiones multiplataforma permite que equipos multidisciplinarios y trabajando en distintas plataforms, puedan colaborar, programar, analizar y completar entregables sin ningún problemas.
¿Cuál es la alternativa que tienes entonces? Realmente son pocas. Es la triste conclusión de la dependencia tecnológica. No debería existir. Definitivamente, si las necesidades del cliente lo demandan, no habrá ninguna discusión al caso. Pero si hay otros lenguajes y tecnologías que brinden los mismos resultados, tendré que pensar dos veces antes de sugerir implementarlo en .NET. La dependencia tecnológica te limita a explorar nuevos territorios, tiene el mismo efecto de elegir un sólo lenguaje o tecnología a implementar en todos los proyectos, de provocar ceguera hacia los desarrollos que otras personas están haciendo en otras plataformas y tener que esperar a que se implementen también en la tuya.
Al menos hasta que los esfuerzos de proyectos como Mono reciban el suficiente apoyo y crezca su desarrollo. Probablemente esto no esté muy lejos de suceder. He regresado también a otros lenguajes como Java y los siguientes sistemas que están en cola serán desarrollados con ese lenguaje. Incluso he conocido -y fue una feliz sorpresa- a Ruby on Rails, lenguaje y framework que ha despertado de nuevo esa sensación de un "juguete nuevo" y que espero poder implementar en algún proyecto.
Una conclusión un poco triste y difícil, pero de nuevo, las consecuencias de evitar la dependencia tecnológica. Somos nosotros los que utilizamos las herramientas y no a la inversa, y debemos dejar claro eso. Como algunos dicen, no es una despedida, es un hasta luego.
Apuntes similares
- ¿es la programación un arte perdido? II (0): Freddie exponía en un comentario de mis pos
- La guerra santa en el desarrollo (9): Lo vemos diariamente en diversos sitios web y el p
- Viaje multiplataforma (4): Las fronteras digitales en términos de qué Siste
- Prueba tus sitios web en IE con netrenderer (4): No cabe duda alguna que probar tu sitio web con IE
- Hi, I’m Ruby on Rails (2): Geek Alert! Geek Alert! Acabo de ver unos excelent

Sólo diré algo a tu extenso post…PTJ, el mando es asin U_U
No es largo ¬¬. Justamenta para evitar el “PTJ” que nos puede dar una empresa controladora de un software o framework o tecnología es que debemos buscar la independencia tecnológica en todos los sentidos.
El movimiento OpenSource hace un trabajo excelente en este punto, pero no es el único. Hay muchos sistemas que funcionan en varias plataformas y nos brindan la misma independencia. Como dije en el artículo, como profesionales, debemos situarnos sobre la tecnología y utilizarla nosotros, no a la inversa.
[...] aunque no lo pienses ahora, el futuro de las aplicaciones se orienta a tener versiones para todo y no limitarse a una sóla. Salvo que desees perder a clientes potenciales que decidieron saltar al [...]
cuales son, que es y cuanto es las dependencias de la tecnologica a nivel profesional y personal