El aprendizaje de un nuevo lenguaje

Están convencidos de que el aprendizaje de un nuevo lenguaje de programación aporta al aprendizaje de nuevos paradigmas?

Siempre entendí que un paradigma va más allá de un lenguaje en particular; es una representación que encierra problemas y soluciones con un enfoque particular.

Entiendo la necesidad de los programadores de aprender más lenguajes de programación y es válido si lo vemos como proponentes de soluciones técnicas útiles en los proyectos.
Entiendo que un arquitecto de sistemas debe poder comprender muy bien estos lenguajes que su equipo de desarrollo opera, sin embargo deberán darse cuenta que en otras capas de las organizaciones, otros analistas tienen otro dinamismo con la lingüística relativa a los ámbitos que les competen y también debe existir un nexo con estas personas que administran otros paradigmas.

El lenguaje de los negocios tiene su propia lingüística y así ocurre con cada capa que se presenta donde deba ser gestionada la transformación de las ideas.

Por lo tanto, pienso que los lenguajes de programación son solo los medios para hacer tangible lo abstracto de las ideas analizadas y puestas en un plano distinto al de su origen, de las cuales se espera un resultado utilizable. Sostengo también, que el aprendizaje de nuevos lenguajes no tienen relación con herramienta alguna, sino con la “lingüística conductiva” que trasciende a través de todo un equipo concluyendo en soluciones óptimas.

Advertisements

Como codificar Software que sea fácil de mantener?

Hay que diferenciar entre software fácil de mantener (mantenibilidad) y fácilidad en la codificación del software.
La facilidad para la codificación de software hoy en día son bien sostenidas por los nuevos IDEs y herramientas existentes y mucho más si se considera la relativa facilidad de obtención, aprendizaje e implementación de tales herramientas.
A su vez cada lenguaje tiene su particularidad y cada programador es particular en su forma de codificar y tal vez ese sea el motivo por el cual las organizaciones podrían necesitar establecer estándares de codificación y patrones de soluciones, proponiendo un método de trabajo homogéneo para toda la empresa. Esto sin lugar a dudas (de mi parte) ahorra muchos problemas y mejora la productividad.
Por cierto que tiene costos iniciales y me atrevo a decir que tienen más que ver con el cambio que implica en la metodología de trabajo que con el costo monetario.
Ahora bien, tener todas estas facilidades de ninguna manera garantiza que logremos genera software fácil de mantener ya que este aspecto de mantenibilidad, tiene que ver con la concepción misma del sistema.
Muchos dicen que es competencia exclusiva del Diseño y Arquitectura del software, pero yo me atrevo a decir que esto se trata mucho antes, cuando se plantean los alcances y se reconocen las limitaciones a nivel de herramientas tecnológicas, conocimientos del equipo del proyecto, cuestiones políticas, legales y hasta culturales.
La arquitectura y el diseño del sistema brindarán las propiedades de mantenibilidad necesarias y atributos como  testeabilidad, flexibilidad, escalabilidad, fiabilidad entre otros, pero siempre tendrán de limitantes los ítemes que antes mencioné.

Sin embargo, para no dejar colgado a aquellos que quieren alguna respuesta relacionada a la codificación y tanto a otros aspectos, comparto con ustedes este artículo de Martín Fowler “Código como documentación”