¿por que tantos lenguajes y frameworks diferentes?

Todos conocemos a ese típico programador con 2 años de experiencia y super orgulloso que dice “yo programo en lo que sea, el lenguaje es un medio y todos son buenos y yo soy bien pinche chido”

Si conocen a un programador así, aléjese con calma y nunca lo contrate. La realidad es que los lenguajes son diferentes, y los frameworks también. Si… comparten las mismas bases logico-matematicas, pero la similitud entre lenguajes se suele quedar en la forma casi estándar de plasmar un for y un while. los lenguajes no son iguales y los frameworks aun lo son menos.

Para empezar, debemos comprender una razón tan simple del por que los lenguajes son diferentes y por que algunos son mejores, otros son peores  para resolver  determinado problema.  Los lenguajes son diferentes por que quienes los escribieron son diferentes  y cuando lo escribieron estas personas creyeron que podían hacer las cosas mas eficientes que el lenguaje/framework popular de turno para resolver el problema que en su momento tenian.

Un lenguaje tiene su filosofía, reflejo de su creador… algunos tienen una filosofía académica como Java, otros empresarial como .net,  otros de sacar la chamba como PHP, algunos mas de simplicidad como Python y algunos locos quieren que las cosas ocurran mágicamente como Ruby.

Todo el mundo odia los geters y los seters de la orientación a objetos; los programadores de java queriendo hacer mas fácil su trabajo hicieron que su entorno de desarrollo los generara a partir de una combinación de teclas. Los programadores python decidieron no usarlos

El lenguaje/framework que usamos es en realidad un reflejo de nuestra personalidad; por ejemplo yo no puedo programar en java. no por que no lo conozca, lo conozco y me causa dolor de cabeza cuando para hacer algo tengo que respetar reglas que un académico decidió que eran buenas sin  a verlas creado en razón a la experiencia de usarlo. También me es difícil aceptar usar nodejs (aunque me es mucho mas fácil que java) la falta de herencia e importaciones me parece que generan código sucio cuando el sistema que se realiza es grande.

Teniendo como ejemplo ambos lenguajes. uno se pregunta ¿por que uno si y otro no? se programar en ambos. Pero no somos maquinas, tenemos personalidad definida por una filosofia… por ejemplo algunas de ellas:

  • java tiene una filosofía de estructura rígida.
  • .net tiene una filosofía de atarte a comprar (en mayor o menos medida) productos de microsoft
  • nodejs tiene una filosofía de al diablo todas las reglas si hacemos esto así es mas fácil de programar.
  • python tiene una filosofía de al diablo las reglas, pero mantengamos las cosas limpias y estructuradas.

incluso dentro de un mismo lenguaje  nos topamos con que los frameworks son realmente diferentes.

En php por ejemplo, algunos pensaron que era mejor hacer un sistema de plantillas que simulara una herencia.. otros pensaron que mejor tener una plantilla principal con includes, algunos mas creyeron conveniente que el programador final no debía tocar para nada el controlador. otros hicieron un envoltorio para que pudiera tocarse el controlador. algunos creyeron buena idea hacer un ORM, otros solo manejar DAOs…  no hay forma de elegir que es correcto… y menos de saber si lo que crearemos es correcto antes de empezarlo.

Si vamos a trabajar de esto… Al menos vamos a hacerlos siendo nosotros mismos, elijamos lo que mas se apegue a quienes somos y volvámonos los mejores en ello. Ser fieles a nosotros es mejor que ser infelices programando en algo que no queremos por mero capricho de la gerencia de turno.

Martin Quinta

Crecí con una computadora desde el kinder. Empece a programar a los 14 y hoy, mas de una década después… realmente odio estar frente a una computadora. Pero programar es en lo que soy bueno, por lo tanto me desahogo en este blog mientras bebo cerveza artesanal y pienso en un mundo bonito donde Java no existe.

Facebook Twitter LinkedIn  

Entradas relacionadas:

Leave a Reply

Your email address will not be published. Required fields are marked *