CSci 4409 - Questions for Rich Hickey's talk "Are we there yet?"

Some background material and questions for Rich Hickey's keynote address Are We There Yet? at JVM Languages Summit 2009.

Viewing of this talk (free, open to the public, and providing cookies and pop/water) will take place in Sci 2200 on Wedn. Sept. 22 at 7:30pm.

Background and references

Questions on the material in the article

These questions will be used in an in-class assignment to summarize the talk.

  1. What is "incidental complexity"? Give two examples: one from the talk and another from your own programming experience.
  2. "Pure functions don't have a notion of time" -- what does Rich Hickey mean by this statement? What does it imply in the context of the talk?
  3. Describe a concept of an object as a series of immutable values. How does it reflect real-world changing objects? What are advantages (if any) and disadvantages (if any) of using this concept in a program?
  4. Explain the meaning of a statement "Perception is massively parallel" and its implications for programming.
  5. What are some problems with representing time in programs? How are they related to synchronization and locking?
  6. What is the proposed way of representing time? Why does Rich Hickey considers this way to be easier for a programmer and accurate?
  7. Why does a naive implementation of the proposed approach create performance problems? How can these problems be remedied?
  8. What does the statement "Perception doesn't impede process" refer to? List some ways in which this can be achieved.
  9. What does Rich Hickey see as future work in the proposed approach?

(Not quite) discussion questions for Thursday class

I could put the standard "what do you agree/disagree with?" questions here, but I feel that these questions may lead to a discussion of details, rather than the big picture. I am more interested in what changed in your way of thinking about software development, programming languages, or perhaps even more general things, such as design and engineering, after listening to the talk. If you would like to share something along these lines, you are very welcome to do so.


CSci 4409 course web site.