Code in a good programming language does not reveal its author

A good programming language limits choices, and provides a One True Way. In a good programming language, two pieces of code written by two developers should look alike.


A good programming language should either be strict in the syntax it accepts, or provide a built-in source code formatter (with little or no configuration options).

Go has a built-in source code formatter, and all Go source code looks alike.

Ruby has Rubocop, which has created a great deal of consistency in modern Ruby projects. Even though it is an unofficial tool, it has become a de-facto standard.


A good programming language should either provide no aliases for functions and methods, or make it clear which variant is the canonical one.

A source code formatter could help to ensure source code only uses the canonical names, though this might only be realistic in a statically-typed language.

Ruby fails at this. Many methods have alternative names. For example, there are the identical methods #select, #find_all, and #filter, and there is no canonical one. The unofficial Ruby style guide has guidance on the canonical name for the map/find/select/reduce/include?/size methods , but it remains an unofficial style guide.


Batsov, Bozhidar. (2011) 2021. “Ruby Style Guide.”

Note last edited November 2023.