GoalsThe goals we have for Go today are the same as in 2007. We want to
make programmers more effective at managing two kinds of scale:
production scale, especially concurrent systems interacting with many
other servers, exemplified today b...
The goals we have for Go today are the same as in 2007. We want to
make programmers more effective at managing two kinds of scale:
production scale, especially concurrent systems interacting with many
other servers, exemplified today by cloud software; and development
scale, especially large codebases worked on by many engineers
coordinating only loosely, exemplified today by modern open-source
development
The goals for Go have not changed since the beginning, but the
constraints on Go certainly have. The most important constraint is
existing Go usage. We estimate that there are at least
half a million Go developers worldwide,
which means there are millions of Go source files and at
least a billion of lines of Go code. Those programmers and that source
code represent Go's success, but they are also the main constraint on
Go 2.
In the early days of Go, when there were just five of us, we worked in
a pair of adjacent shared offices separated by a glass wall. It was
easy to pull everyone into one office to discuss some problem and then
go back to our desks to implement a solution. When some wrinkle arose
during the implementation, it was easy to gather everyone again. Rob
and Robert's office had a small couch and a whiteboard, so typically
one of us went in and started writing an example on the board. Usually
by the time the example was up, everyone else had reached a good
stopping point in their own work and was ready to sit down and discuss
it. That informality obviously doesn't scale to the global Go
community of today.
more details - https://blog.golang.org/toward-go2