Thinking about Programming Languages, CSC430, Spring 2023
We’re halfway through the course. Let’s take a second step back to think about programming languages more broadly.
This assignment requires you to read two short essays by Paul Graham and reflect on what you see in them. It should not take very long.
This is an individual assignment, not a team assignment; everyone submits their own work.
1 "Beating the Averages"
Paul Graham wrote the original software for setting up on-line stores that Yahoo! currently uses, and beat many competitors to the finish line. He wrote it in Lisp, which is closely related to Scheme and, of course, Racket. Graham’s article Beating the Averages discusses why he believes Lisp gave his million-dollar startup a competitive advantage. Read the article, maybe twice; it isn’t very long.
Question 1: Identify three features of the Lisp language that Graham believes gave his company a competitive advantage. At least two should be technical features of the language rather than social. Describe each feature (in one or two sentences) and explain how it provided an advantage. Be sure to distinguish between features of the language and the effects of using it.
Question 2: Graham’s article makes several observations about programming and programming languages. Identify and state two of those observations that you find most significant. Then explain (in one or two sentences each) why you find it significant.
2 "Java’s Cover"
In another article Graham provides a surface-level critique of Java. Read the article, maybe twice; it isn’t very long.
Question 3:In your own words, state three questions that Graham’s article teaches you to ask when approaching a new programmibg language.
3 Writing it up
Write plain text, clearly identifying your answers to each of the three questions.
Keep your answer short and direct: three sentences would be ok, two would be very much better, one would be brilliant.
Writing matters: spelling and grammar errors and sloppy writing (such as sentence fragments) will cost you points.
4 Handing it in
#lang scribble/manual |
Use ESC-q in DrRacket to automatically insert newlines and simplify formatting. If pasting from another editor, be sure to use ESC-q to reformat the text (the handin server will reject lines that are too long).
Let us know if you have any questions!
5 Acknowledgements
Thanks to Kathi Fisler for large portions of this exercise. She also writes "if you enjoy Graham’s writing, his article Taste for Makers is a lovely piece on the role of taste in design" [not required for this assignment].