- Goals
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
- Constraints
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.
- Process
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
What do you think about ERLANG? or SCALA?