From 2b1dbe8a4f9f214d7164abd18d99e2451efc5cdb Mon Sep 17 00:00:00 2001
From: Rob Pike
-In the last few months of 2008, Russ Cox joined the team and Go had -reached the point where it was usable as the main programming language -for the team's own work. +front end. Russ Cox joined in late 2008 and helped move the language +and libraries from prototype to reality.
-Robert Griesemer, Rob Pike and Ken Thompson laid out the goals and
-original specification of the language. Ian Taylor read the draft
-specification and decided to write gccgo
. Russ
-Cox joined later and helped move the language and libraries from
-prototype to reality.
-
@@ -99,6 +84,13 @@ is no type hierarchy: types just are, they don't have to announce their relationships. These simplifications allow Go to be expressive yet comprehensible without sacrificing, well, sophistication.
++Another important principle is to keep the concepts orthogonal. +Methods can be implemented for any type; structures represent data; +interfaces represent abstraction; and so on. Orthogonality makes it +easier to understand what happens when things combine. +
+-Object-oriented programming, at least in the languages we've used, +Object-oriented programming, at least in the best-known languages, involves too much discussion of the relationships between types, relationships that often could be derived automatically. Go takes a -different approach that we're still learning about but that feels -useful and powerful. +different approach.
Rather than requiring the programmer to declare ahead of time that two @@ -295,10 +285,10 @@ dependency is one of the most exciting things about Go.
len
a function and not a method?
-To be blunt, Go isn't that kind of language. We debated this issue but decided
+We debated this issue but decided
implementing len
and friends as functions was fine in practice and
didn't complicate questions about the interface (in the Go type sense)
-of basic types. The issue didn't seem important enough to resolve that way.
+of basic types.