Prompts for “Growing a Language”
Due on Monday, November 12 by 10pm
Watch “Growing a Language” by Guy Steele.
Commit your response as a PDF to your short responses repository. You are encouraged (but not required) to use LaTeX to typeset your response.
- Java added generic data types to the language in 2004, 6 years after Steele advocated for them. “Generics” are a form of parametric polymorphism. In other words, functions can be written in a type safe manner that allows a single implementation to work for multiple data types. You might be surprised to learn that ML added parametric polymorphism to its set of features in 1975, 29 years before Java! Was it a mistake for Java to wait so long?
- In one sense, developing a college class is like programming. A professor writes a syllabus (a program), advertises it to students (users), and then he or she teaches (executes) the syllabus (program) over the course of the semester (runtime). More often than we’d care to admit, classes have flaws (bugs), and sometimes even the curriculum (specification) is flawed. Therefore, a good professor tries to build in feedback (println) and other consistency checks (assert statements) that indicate when the students (the users) think the course (the program) veers off course (has bugs). But these things are not enough. As Steele points out in his talk, successful programming communities are built around the idea that their feedback matters. I think that this is an idea that should also be adopted in college classes. Do you feel like your ideas and observations matter in this course? If not, why not?