ir al contenido

Dependencia tecnológica

Publicado hoy

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

Comentarios

4 comentarios. Deja el tuyo

  1. XKlibur dijo el el 16 de July a las 9:42 am

    Sólo diré algo a tu extenso post…PTJ, el mando es asin U_U

  2. Alvaro Pereyra dijo el el 16 de July a las 1:14 pm

    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.

  3. Viaje multiplataforma at Developer At Work dijo el el 8 de October a las 11:29 am

    [...] 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 [...]

  4. olguer dijo el el 5 de July a las 4:06 pm

    cuales son, que es y cuanto es las dependencias de la tecnologica a nivel profesional y personal

Comentar

(*)

(*)


* (obligatorio)



developer-at-work

Developer At Work es un blog de Alvaro Pereyra Rabanal

Puedes contactarme a mi dirección electrónica alvaro.pereyra@srdperu.com, agregame a twitter o visitar el sitio de mi empresa srdperu.

Algunos derechos reservados, 2009. Un proyecto SRDPERU