Developing Frogtek

El blog del Departamento de Tecnología

Cambiar de entorno de programación

Es común encontrarse con equipos “Java”, “.Net” o “Cobol”, los cuales trabajan solo y para un entorno. Está claro que si te sientes cómodo programando en Java, te dará algo de respeto meterte a programar en .Net, o lo mismo el jefe no quiere que pierdas tu tiempo programando en Java, si ya lo haces bien en .Net.

“Es una pérdida de tiempo y el cliente quiere el proyecto para ayer”.

Como programador, valoro mucho el poder trabajar en diferentes entornos de desarrollo, por varios motivos:

  • A veces trabajar sobre una tecnología demasiado tiempo (en mi caso, Android) me ofusca sobremanera. Hacer alguna Historia de Usuario en Python me relaja y ayuda a recuperarme un poco de la ofuscación.
  • Sacarme de la comodidad habitual de un entorno muy conocido puede ayudar a la motivación, a pensar nuevas estrategias y nuevas formas de desarrollar. Llevando esta analogía al mundo friki… ¿Es lo mismo jugar con los Marines Espaciales que con los Eldar en el Warhammer 40.000? Seguro que no, cada uno tiene sus estrategias, sus ventajas e inconvenientes.
  • Aprender nuevas tecnologías. ¿Hay algo más hermoso para un developer?

– “Hala, venga, trabajad en Python,”

– “¡Pero si no tengo ni idea!”

Esto pasa, si no tienes ni idea de un lenguaje, como decía antes,  te da algo de respeto cambiarte. Es posible que la primera vez no seas 100% productivo (siéntete afortunado si lo eres un 20%)  y no hagas las cosas bien del todo, pero lo mismo la segunda ya lo haces mejor y a la tercera vez que te cambias ya lo dominas mucho más. Es recomendable que las primeras veces haya algún “experto” en la materia que pueda guiarte por esos momentos de incertidumbre y confusión.

“¿Qué carajo es jQuery?”

¿Merece la pena bajar un poco la productividad por que haya más gente que sepa un poco de todo? Si tienes en tu equipo a un hacker en Cobol y solo él sabe del proyecto… ¿Qué probabilidad hay de que se vaya todo al carajo si a este hacker se lo lleva un autobús por delante? Bueno, quien dice un autobús….  dice que se va de vacaciones y se jode algo del proyecto… o algo más dramático (pero no tanto como lo del bus), que se vaya a otra empresa. Reducir ese factor de riesgo es positivo para la empresa (para una empresa que se preocupe de sus proyectos, la calidad de los mismos y la salud mental de los developers).

“No estoy programando en Python, sino que estoy programando en Python como si fuera Java”

Esto pasa… Cuando no conoces un lenguaje, sueles agarrarte a lo que conoces, si conoces Java tenderás a desarrollar código Python como si fuese Java… Luego, cuando vayas cogiendo más experiencia, conociendo la API y la sintaxis te darás cuenta de la diferencia, del cambio de chip y de crear código Python en sintonía con Python (luego corres el riesgo de volver a Java y escribir código Java como si fuera Python….).

A pesar de las pequeñas incomodidades (que en el fondo deberían ser alicientes para romperse la cabeza), recomiendo cambiar de entorno de vez en cuando y siempre y cuando la empresa te lo permita, claro.

De hecho, estoy bastante cansado de Android… me voy a poner a hacer algo en Python.

PD. Donde pone “Python” en este artículo, cambiar por el lenguaje que os gustaría aprender/practicar. He personalizado el post a mi caso, podría haber puesto “.NET”… pero entonces no habría sido yo el que hubiese escrito el artículo. 😛

5 Comentarios

  1. Muy buen post. Casualmente este tema de la especialización frente a la generalidad está muy presente en mi realidad actual. No sólo se puede decir que es conveniente para la evolución de los grupos de desarrollo, sino más en general para la higiene mental de sus miembros. Lo segundo debería importar tanto o más que lo primero.
    El problema viene cuando todo esto tiene que entenderse como una inversión a medio plazo. Como muchas de esas herramientas y metodologías que precisamente vosotros usáis. Hay que “creer” en las bondades que tienen profesional y personalmente.

    Saludos…

  2. Jose Cortés

    30 mayo, 2011 at 15:12

    Buenas Eduardo.

    Está claro que la empresa juega un papel importante en todo esto. Tal y como dices, ha de verse como una inversión, si se piensa que la “multidisciplina” (por llamarlo de alguna forma) es una pérdida de tiempo, mal vamos. Como desarrollador agradezco enormemente la posibilidad de cambiar regularmente de entorno, es algo de lo que no todo el mundo puede disfrutar…

    • No es el cambiar de entorno es el cambiar de rutina.

      Yo trabajo en Java y no quiero cambiar de lenguaje.

      Pero lo que si que quiero, es cambiar de entorno de trabajo.

      Pasar de un desarrollo para web con un framework, a desarrollar una aplicación para android y más tarde tener que entrar en un desarrollo de web services e igual tener que hacer un cliente de escritorio, y mas tarde una aplicación web para moviles con HTML5.

      Tener que aprender algún nuevo frameworks o profundizar en los frameworks utilizando partes que no habia usado. Usar Java en otros entornos. Profundizar en el lenguaje usando Generics, reflexión, patrones, ….

      La cuestión no es cambiar de lenguaje, insisto, es cambiar la rutina de todos los dias.

      Y para las personas inquietas en su “saber” y “conocimiento” esta rutina MATA, y se puede aplacar aprendiendo otros lenguajes de programación o sin salir del habitual tocar otras cosas y otros ambitos.

      • Jose Cortés

        31 mayo, 2011 at 17:32

        Si, también es interesante. Algunos tendréis más facilidades para cambiar esa rutina. En mi caso, tengo la “limitación” de que sólo puedo cambiar de lenguaje. 😉

  3. He aterrizado en este artículo precisamente buscando gente que se encontrara en esta situación de cambio de entorno de programación o framework o directamente del lenguaje.

    Coincido con casi todo lo que expones en el artículo Jose, de hecho yo empecé programando en Basic y de ahí pasé a PHP y SQL. Cuanto más aprendía de PHP, más pereza me daba meterme con Perl o con Python, pero estoy totalmente de acuerdo en que hacerlo te abre la mente, al principio vas a piñon fijo pero luego empiezas a plantear los problemas y sus soluciones con otros puntos de vista, adaptándote a las ventajas del nuevo idioma .

    Además, de esta manera, comienzas a descubrir porque existen diferentes lenguajes y diferentes plataformas. ¿Hay unos mejores que otros? sí, en algunos casos así podría decirse, pero, ¿es esto una máxima, existe una “clasificación” de lenguajes de programación por eficiencia?, no, de ninguna manera y esto se debe a que cada lenguaje y cada plataforma se adapta mejor a determinados entornos y es mucho más ágil para determinados desarrollos en contraprestación a otros.

    Evidentemente con C++ en Eclipse podrías desarrollar cualquier tipo de software, aplicación, driver o videojuego, sin embargo su enorme complejidad hace que no sea la mejor solución para todas las necesidades. ¿Es la mejor alternativa para desarrollar una pequeña app para iPhone o un software de gestión empresarial como un ERP?, on, desde luego que no, pues hoy en día se pueden encontrar en el mercado muchas plataformas especializadas que precisamente ahondan en su nicho.

    Plataformas especializadas en desarrollo de software de gestión como Velneo (http://velneo.es/) y OpenBravo (http://www.openbravo.com/) ambas ¡ESPAÑOLAS! y con recursos open source. Unity y Gamemaker para el desarrollod e videojuegos, Objetive C y PhoneGap especializados en implementar en plataformas móviles…

    Gracias a la diversidad de plataformas, lenguajes y recursos que tenemos disponibles unido a la eterna curiosidad y ganas de aprender que tenemos los programadores hacen que cada vez, determinados desarrollos más estándar sean cada vez más relativamente sencillos de ejecutar, en periodos de tiempo impensables hace años.

    Un abrazo encantado de “conoceros”! 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada.

*