Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
G
golang
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
golang
Commits
cdcb0413
Commit
cdcb0413
authored
Nov 08, 2009
by
Russ Cox
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
language design FAQ edits
R=r
http://go/go-review/1026019
parent
213bd39a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
8 deletions
+12
-8
go_lang_faq.html
doc/go_lang_faq.html
+12
-8
No files found.
doc/go_lang_faq.html
View file @
cdcb0413
...
@@ -9,15 +9,19 @@ Robert Griesemer, Rob Pike and Ken Thompson started sketching the
...
@@ -9,15 +9,19 @@ Robert Griesemer, Rob Pike and Ken Thompson started sketching the
goals for a new language on the white board on September 21, 2007.
goals for a new language on the white board on September 21, 2007.
Within a few days the goals had settled into a plan to do something
Within a few days the goals had settled into a plan to do something
and a fair idea of what it would be. Design continued part-time in
and a fair idea of what it would be. Design continued part-time in
parallel with unrelated
activities
. By January 2008, Ken had started work
parallel with unrelated
work
. By January 2008, Ken had started work
on a compiler with which to explore ideas; it generated C code as its
on a compiler with which to explore ideas; it generated C code as its
output. By mid-year the language had become a full-time project and
output. By mid-year the language had become a full-time project and
had settled enough to attempt a production compiler.
Meanwhile, Ian
had settled enough to attempt a production compiler.
In May 2008,
Taylor had read the draft specification and written an independent GCC
Ian Taylor independently started on a GCC front end for Go using the
front end
. Russ Cox joined in late 2008 and helped move the language
draft specification
. Russ Cox joined in late 2008 and helped move the language
and libraries from prototype to reality.
and libraries from prototype to reality.
</p>
</p>
<p>
Many others have contributed ideas, discussions, and code.
</p>
<h3
id=
"creating_a_new_language"
>
<h3
id=
"creating_a_new_language"
>
Why are you creating a new language?
</h3>
Why are you creating a new language?
</h3>
<p>
<p>
...
@@ -189,7 +193,7 @@ as objects get passed among threads it becomes cumbersome
...
@@ -189,7 +193,7 @@ as objects get passed among threads it becomes cumbersome
to guarantee they become freed safely.
to guarantee they become freed safely.
Automatic garbage collection makes concurrent code far easier to write.
Automatic garbage collection makes concurrent code far easier to write.
Of course, implementing garbage collection in a concurrent environment is
Of course, implementing garbage collection in a concurrent environment is
itself a challenge but meeting it once rather than in every
itself a challenge
,
but meeting it once rather than in every
program helps everyone.
program helps everyone.
</p>
</p>
<p>
<p>
...
@@ -230,7 +234,7 @@ libraries. They are, by definition, exceptional yet experience with
...
@@ -230,7 +234,7 @@ libraries. They are, by definition, exceptional yet experience with
other languages that support them show they have profound effect on
other languages that support them show they have profound effect on
library and interface specification. It would be nice to find a design
library and interface specification. It would be nice to find a design
that allows them to be truly exceptional without encouraging common
that allows them to be truly exceptional without encouraging common
errors to turn into special control flow
requiring
every programmer to
errors to turn into special control flow
that requires
every programmer to
compensate.
compensate.
</p>
</p>
<p>
<p>
...
@@ -265,7 +269,7 @@ in an interface can express useful concepts.
...
@@ -265,7 +269,7 @@ in an interface can express useful concepts.
Interfaces can be added after the fact if a new idea comes along
Interfaces can be added after the fact if a new idea comes along
or for testing
—
without annotating the original types.
or for testing
—
without annotating the original types.
Because there are no explicit relationships between types
Because there are no explicit relationships between types
and interfaces, there is no type hierarchy to manage.
and interfaces, there is no type hierarchy to manage
or discuss
.
</p>
</p>
<p>
<p>
It's possible to use these ideas to construct something analogous to
It's possible to use these ideas to construct something analogous to
...
@@ -338,7 +342,7 @@ structure that providing one excellent implementation with syntactic support
...
@@ -338,7 +342,7 @@ structure that providing one excellent implementation with syntactic support
makes programming more pleasant. We believe that Go's implementation of maps
makes programming more pleasant. We believe that Go's implementation of maps
is strong enough that it will serve for the vast majority of uses.
is strong enough that it will serve for the vast majority of uses.
If a specific application can benefit from a custom implementation, it's possible
If a specific application can benefit from a custom implementation, it's possible
to write one but it will not be as convenient
to use
; this seems a reasonable tradeoff.
to write one but it will not be as convenient
syntactically
; this seems a reasonable tradeoff.
</p>
</p>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment