How to Study Programming Languages

You don’t want to study them the wrong way, do you?

Two Dimensions of Language Study

An effective study of programming languages works in both of the following directions:

  1. Look at a bunch of existing languages, and see how each expresses and implements various concepts.
  2. Look at a bunch of programming language concepts, and see how each is expressed in a variety of languages.
JavaScriptHaskellPythonLuaRubyC#Swift.  .  .
Binding
Expressions
Control Flow
Types
Subroutines
Modules
Concurrency
Metaprogramming
.
.
.
 .
  .
    .

Languages

When studying actual languages, you should learn:

Some significant languages

Here are a few languages that for some reason or another rate as significant:

Motivation

Here are some languages and their motivations for being created. In some cases, the language found a niche quite outside the purpose for which it was designed. But the point is that some problem was seen as significant enough to warrant a new language.

Exercise: Java is an example of a language whose primary use turned out to be completely different from its original design purpose. What are Java’s niches today?

Where to learn more

Language lists, comparisons, and taxonomies:

As you learn more languages, you will start to enjoy Rosetta Code, and hopefully contribute!

Concepts

Topics that you come across in the study of languages: