A lo largo de mis años de experiencia:
- Los idiomas han cambiado (generalmente relativamente lento).
- La gama de problemas que pueden resolverse prácticamente ha crecido (algo más rápido);
- El tamaño y la complejidad de las soluciones ha aumentado (relativamente rápido);
- Ha habido algo que es
flavor of the day
(a veces bueno, a menudo malo).
Como se señaló en una discusión sobre patrones, la pandilla de cuatro no inventó patrones. Se les ocurrió terminología y plantillas para soluciones que ya se estaban aplicando.
A diferencia de muchos otros campos, todavía hay muchos que no son una práctica común. He visto muchas cosas de vanguardia ir y venir. Muchos de estos fueron reformulaciones de técnicas que ya están en práctica, y esas generalmente tuvieron éxito hasta cierto punto. Otros se han ido más o menos, y la mayoría ha tenido nuevos enfoques. (¿Alguien ha visto un lenguaje de quinta generación últimamente?)
Los programadores que he visto que son más efectivos pueden seleccionar y ensamblar componentes probados en una solución de trabajo. Esto rara vez implica algo de vanguardia, lo que generalmente aumentaría el riesgo del proyecto. La capacidad de construir sobre el trabajo que ya se ha realizado nos permite aumentar el alcance de lo que es posible.
Los lenguajes de programación tienden a caer en relativamente pocas familias. La familiaridad con un idioma en una familia facilita el trabajo con idiomas similares. Comprender las bibliotecas disponibles en el idioma y aprovecharlas puede aumentar considerablemente la productividad y la confiabilidad. En general, elegiría un idioma más antiguo con las bibliotecas apropiadas en lugar de un idioma más nuevo sin las bibliotecas apropiadas.
Al aplicar nuevas tecnologías es importante evitar el Because We Can
síndrome. Agregar una nueva tecnología porque es el sabor del año, tiende a causar más problemas de los que resuelve. Saber cuándo la tecnología resolverá un problema real y cuándo agregará complejidad es una habilidad útil.
Un programador realmente bueno resolverá los nuevos problemas y utilizará las soluciones existentes para el resto. Pocas empresas necesitan tecnología de punta, todas necesitan soluciones sólidas.
Normalmente lamento deslizarme por la cuchilla de afeitar. No recuerdo haber lamentado haber usado una tecnología probada. Sin embargo, mucho de lo que se describe new
es el reempaque de algo existente. Por lo general, este reenvasado hace que las cosas sean más fáciles de entender y aplicar adecuadamente.