7 Languages and Purposes
7.1 What Is This Assignment’s Purpose?
Programming languages are often used for a wide variety of tasks and in many different ways. However, these languages aren’t always designed for use in these ways. This assignment introduces a paper with an example of this in the context of concurrent programming. We want you to read this and think about how it connects to the rest of the programming world.
7.2 Reading
Read Joe Armstrong’s article about concurrency-oriented programming. In it, he makes a strong case for how the cost of operations affects our usage patterns, and hence how we think about organizing our programs.
7.3 Tasks
Armstrong’s paper talks about how Erlang was built with the specific goal of being well-suited to concurrent programming. Similar to this, write about a different programming language that was built to support a specific use-case (this use-case should be something other than concurrency). Name the language, provide a pointer to it (if it’s obscure), describe the task, and describe what makes the language particularly well-suited to it.
From your own programming experience, think of a purpose or task for which no mainstream languages provide good support. Briefly describe the task, and what you wish languages provided (or didn’t provide).