I think the Go programming language follows these principles:
- declarations start with a keyword, so that the parser can be implemented with a single token look-ahead (like in Pascal)
- the rest of the declaration follows the English grammar, with every redundant word left out (also like in Pascal, but with fewer keywords)
Examples:
- The type
Frequency
is a map
indexed by string
, mapping to int
type Frequency map[string]int
- The type
Point
is a struct
with two fields, x
and y
of type int
type Point struct { x, y int }
The above sentences focus more on the names than on the types, which makes sense since the names convey more meaning.
If I had to explain to novice programmers how to write declarations in Go, I would let them first describe it in plain English and then remove every word that might even seem redundant.
Up to now, I didn't find any contradictions to these rules.