I believe that there is an argument to introduce “modes” to programming languages.

  • Read mode #1 (review mode): Code in review mode is precise and verbose. It is easy for a review to identify bugs and performance issues.
  • Write mode: Code in write mode is concise and imprecise. It is easy for a user to turn thoughts in their head into runnable code.
  • Read mode #2 (learn mode): Code in learn mode is heavily duplicated. Functions are inlined and comments are duplicated. The duplication naturally allows the user to familiarize themselves with the new abstractions in the codebase.

Reads and writes are handled differently by databases and storage systems, for good performance reasons. So, why shouldn’t reading code and writing code be handled differently too? Perhaps the efficiency gains from having separate modes is not worth it.

I will keep this idea in the back of my head.