Hoare’s famous paper “Hints on Programming Language Design” distinguishes two main aspects of language design:
- Part of language design consists of innovation. This activity leads to new language features in isolation.
- The most difficult part of language design lies in integration: selecting a limited set of language features and polishing them until the result is a consistent simple framework that has no more rough edges.
I will try to keep here a list of inspiring articles that illustrate this two parts, especially edge cases in integration of individiual features.You can also follow Shoot Yourself In The Foot for examples of unexpected problems resulting from the language design rationale.
- Constructors Considered Harmful
- Tennent’s Correspondence Principle and Returning From a Closure
- Extension methods to emulate mixin
- Why Lisp Did Not and Never Will Gain More Traction
- An argument against call/cc
- A Statically Safe Alternative to Virtual Types
- Explicit Namespaces
- Scalable Component Abstraction
- to be continued (need to go through my bookmark)