Con Alan Kay inicié una serie de entradas sobre pioneros de la informática. Referentes de los que uno lee o descubre algo. Hoy continúo con Kent Beck y Ward Cunningham.
Kent y Ward crecieron con el SmallTalk de Ingalls y Kay. Me aventuro a pensar que su temprano contacto con este lenguaje pionero influyó en cómo se aproximaron después a la programación. De algún modo son sus discípulos y representan la segunda generación de ingenieros informáticos de la historia. Ambos han tenido un papel relevante en los principales temas de los 90 en el desarrollo de software: los patrones de diseño, la orientación a objetos y la emergencia de las metodologías agile en la gestión de proyectos.
Por todo ello, a pesar del pesimismo de Kay, yo creo que esta generación sí tomó su relevo:
I think one of the things we liked the most about Smalltalk was not what it could do, but the fact that it was such a good vehicle for bootstrapping the next set of ideas we had about how to do systems building.
— Alan Kay
La génesis de los patrones de diseño
La referencia al término patrones de diseño en programación más antigua se le atribuye a Ward y Kent, que la presentaron en OOPSLA 87: Using pattern languages for Object-Oriented programs. El concepto de patrón lo toman prestado del mundo de la arquitectura:
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.
— ChristopherAlexander
Una vez planteado el problema en la OOPSLA, los siguientes años son frenéticos. Mucha gente trabaja en los patrones. Las siguientes conferencias tienen multitud de referencias a ellos. La idea flota en el ambiente. Uno tras otro van acumulando conocimiento, a hombros de gigantes. Su extensión fue meteórica, apenas 7 años después de que Beck y Cunnigham lanzasen el guante, la GoF (Gang of Four) tenía publicado su libro canónico. Estábamos en el peak del movimiento:
- 1989: Ward y Beck, luego de su trabajo conjunto en Tek Labs, siguen colaborando y describen el hoy famoso método de tarjetas CRC para el diseño de sistemas orientados a objetos en un paper en OOPSLA 89: A laboratory for teaching object-oriented thinking.
- 1991: Bruce Anderson lleva a cabo el taller Towards an Architecture Handbook. En él, la GoF se junta por vez primera y se inician proyectos como el posterior paper de Ralph Jonhson sobre HotDraw: Documenting framewors using patterns. Es sin duda el punto de inflexión. «It’s hot, it’s hot!»
- 1993: Kent Beck y Graddy Booch (miembro de GoF) promueven un fin de semana de retiro en las montañas de colorado con varias personas interesadas en los patrones de diseño: lo que luego se dió en llamar el Hillside Group.
- 1994: se publica el libro canónico de la GoF: Design patterns.
- 1995: Ward pone en marcha un proyecto para compartir información sobre los patrones e invita a la comunidad a participar. Nace el primer wiki.
- 1996: Kent Beck escribe un libro menor -aunque muy influyente en la comunidad Smalltalk- sobre los patrones: Smalltalk Best Practice Patterns. De algún modo, este libro cierra una época.
En paralelo a todo ello, Ward y Beck se convierten en una referencia en el mundo Smalltalk que inaugura la moderna orientación a objetos. Para aquellos que deseéis apenas catar lo que fueron esos años, ese maravilloso caldo de cultivo de las ideas, os recomiendo que leáis este artículo: History of patterns.
Leave a Reply