From 5ec55c5134402bfc8cb797b87f7937031f670da4 Mon Sep 17 00:00:00 2001 From: Andrew Gerrand Date: Thu, 30 Sep 2010 11:23:39 +1000 Subject: [PATCH] doc: faq updates part one R=r, r2 CC=golang-dev https://golang.org/cl/2301041 --- doc/go_faq.html | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/doc/go_faq.html b/doc/go_faq.html index 3f4e214b11b..3c6850c92ec 100644 --- a/doc/go_faq.html +++ b/doc/go_faq.html @@ -191,37 +191,31 @@ if they enjoy it. Not every programmer will, but we hope enough will find satisfaction in the approach it offers to justify further development. -

Is Google using Go -internally?

+

Is Google using Go internally?

-

The Go project was conceived to make it easier to write the kind -of servers and other software Google uses internally, but the -implementation isn't quite mature enough yet for large-scale -production use. While we continue development we are also doing -experiments with the language as a candidate server environment. It's -getting there. For instance, the server behind http://golang.org is a Go program; in -fact it's just the godoc document server running in a -production configuration. +

Yes. There are now several Go programs deployed in +production inside Google. For instance, the server behind +http://golang.org is a Go program; +in fact it's just the godoc +document server running in a production configuration.

-There are two Go compiler implementations, 6g and friends, generically called -gc, and gccgo. +There are two Go compiler implementations, 6g and friends, +generically called gc, and gccgo. Gc uses a different calling convention and linker and can therefore only be linked with C programs using the same convention. -There is such a C compiler but no C++ compiler. Gccgo is a -GCC front-end that can, with care, be linked with GCC-compiled -C or C++ programs. However, because Go is garbage-collected it will be -unwise to do so, at least naively. +There is such a C compiler but no C++ compiler. +Gccgo is a GCC front-end that can, with care, be linked with +GCC-compiled C or C++ programs.

-There is a “foreign function interface” to allow safe calling of C-written -libraries from Go code. We expect to use SWIG to extend this capability -to C++ libraries. There is no safe way to call Go code from C or C++ yet. +The cgo program provides the mechanism for a +“foreign function interface” to allow safe calling of +C libraries from Go code. SWIG extends this capability to C++ libraries.

Does Go support Google's protocol buffers?

@@ -325,6 +319,9 @@ function's state being torn down after an error, which is sufficient to handle catastrophe but requires no extra control structures and, when used well, can result in clean error-handling code.

+

+See the Defer, Panic, and Recover article for details. +

@@ -697,6 +694,10 @@ responsible for a particular piece of data. Do not communicate by sharing memory. Instead, share memory by communicating.

+

+See the Share Memory By Communicating code walk and its associated article for a detailed discussion of this concept. +

+

Why doesn't my multi-goroutine program use multiple CPUs?

@@ -885,6 +886,8 @@ That script finds the Test functions, builds a test binary, and runs it.

+

See the How to Write Go Code document for more details.

+

Implementation

@@ -1013,6 +1016,10 @@ is not just the expression grammar; keywords such as func and chan keep things clear.

+

+See the Go's Declaration Syntax article for more details. +

+

Why is there no pointer arithmetic?