Growing a Language
Por César Ballardini
- Lectura en 3 minutos - 485 palabrasSeguramente has visto presentaciones muy importantes, o interesantes, entretenidas. La presentación de Guy Steele que te propongo, es una como nunca has visto antes. Una presentación que tiene un mensaje importante para transmitir, pero que además usa el propio mensaje como mecanismo para desarrollar la presentación. Tal vez algún detalle no tan relevante esté desactualizado, como las referencias a ciertas características de Java, pero si consideras Java en 1998 y lo analizas desde allí,este material es alimento para la mente.
La presentación principal de Guy Steele1 en la 13.a conferencia ACM OOPSLA sobre Object Oriented Programming Systems, Languages and Applications de 1998 llamada Growing a Language discute la importancia del diseño de un lenguaje de programación cuyos usuarios puedan expandir.
El comentario en el canal de YouTube del Computer History Museum:
Over the last quarter-century Guy Steele has been convinced that trying to design a complete and perfect programming language is the worst thing you can do. A programming language (including its associated libraries) must grow over time as its user community and its development community grow. This is a different situation from 25 years ago, when all such communities were relatively small. The difference is a problem of scale. As a result, programming language design now and in the future is necessarily as much a matter of social engineering as technical engineering and must rely more on a set of general principles than on a set of specific technical decisions.
Puedes ver la presentación, usando transparencias, con la tecnología de 1998, en la referencia al pie de esta entrada2,3, y la discusión en la referencia4.
Un pequeño avance para que te pique la curiosidad:
My point is that a good programmer in these times does not just write programs. A good programmer builds a working vocabulary.
If you give a person a fish, he can eat for a day.
If you teach a person to fish, he can eat his whole life long.
If you give a person tools, he can make a fishing pole—and lots of other tools! He can build a machine to crank out fishing poles. In this way he can help other persons to catch fish.
¡Que lo disfrutes!
Referencias citadas en la presentación:
- Lisp: Good News, Bad News, How to Win Big, Richard P. Gabriel, Lucid, Inc.
- The Cathedral and the Bazaar, Eric S. Raymond.
- La Catedral y el Bazar, Eric S. Raymond.
- The Oregon Experiment, Christopher Alexander, entrada en Wikipedia.
- The Oregon experiment, libro para leer online en Internet Archive.
- The Evolution of Numerical Computing in Java, James Gosling, en Wayback Machine.
- On Numbers and Games, John Horton Conway, entrada en Wikipedia.
- On Numbers and Games, John Horton Conway, opción para leer offline.
- The Elements of Style, Strunk & White, en Wikipedia.
- The Elements of Style, Strunk & White, para leer offline.
-
Guy L. Steele Jr. en Wikipedia ↩︎