Elección de Lenguajes

El programador solitario que ama su trabajo (un hacker) puede elegir el mejor lenguaje para la tarea. La mayoría de los programadores que trabajan tienen muy poco control sobre el lenguaje que usarán. Generalmente, este tema lo dictan jefes de cabello puntiagudo que toman decisiones políticas en lugar de decisiones tecnológicas y carecen del valor para promover una herramienta no convencional incluso cuando saben, a menudo con conocimiento de primera mano, que la herramienta menos aceptada es la mejor. En otros casos, el beneficio muy real de la unidad entre el equipo, y en cierta medida con una comunidad más amplia, excluye la elección por parte del individuo. A menudo, los gerentes se ven impulsados por la necesidad de poder contratar programadores con experiencia en un determinado lenguaje. Sin duda, están sirviendo lo que perciben como los mejores intereses del proyecto o la empresa, y deben ser respetados por eso. Sin embargo, personalmente creo que esta es la práctica común más derrochadora y errónea que es probable que encuentres.

Pero, por supuesto, las cosas nunca son unidimensionales. Incluso si se impone un lenguaje central y está fuera de tu control, a menudo ocurre que las herramientas y otros programas se pueden y deben escribir en un lenguaje diferente. Si se va a incrustar un lenguaje (¡y siempre debes considerarlo!), la elección del lenguaje dependerá en gran medida de la cultura de los usuarios. Uno debería aprovechar esto para servir a su empresa o proyecto utilizando el mejor lenguaje para el trabajo, y al hacerlo, hacer que el trabajo sea más interesante.

Los lenguajes de programación realmente deberían llamarse notaciones, ya que aprender uno no es tan difícil como aprender un lenguaje natural. Para principiantes y algunos externos, 'aprender un nuevo lenguaje' parece una tarea desalentadora; pero después de tener tres bajo el cinturón, realmente es solo cuestión de familiarizarse con las bibliotecas disponibles. Uno tiende a pensar en un sistema grande que tiene componentes en tres o cuatro lenguajes como una mezcla desordenada; pero sostengo que dicho sistema es en muchos casos más fuerte que un sistema de un solo lenguaje en varios aspectos:

  • Necesariamente hay un acoplamiento débil entre los componentes escritos en diferentes notaciones (aunque quizás no interfaces limpias).

  • Puedes evolucionar a un nuevo lenguaje/plataforma fácilmente reescribiendo cada componente individualmente.

  • Un lenguaje puede no ser adecuado para el sistema en general; tener varios lenguajes para tus módulos te permite elegir la herramienta adecuada para el trabajo.

Algunos de estos efectos pueden ser solo psicológicos, pero la psicología importa. Al final, los costos de la tiranía del lenguaje superan cualquier ventaja que pueda proporcionar.

Siguiente Comprometerse Sabiamente - ¿Cómo Combatir la Presión del Cronograma?

Last updated