1
0
mirror of https://github.com/golang/go synced 2024-11-22 07:14:40 -07:00

a few tweaks to the language design faq

R=rsc
CC=go-dev
http://go/go-review/1017007
This commit is contained in:
Rob Pike 2009-11-01 20:51:42 -08:00
parent 0c2a479a39
commit a411cea124

View File

@ -9,7 +9,7 @@ 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 started work parallel with unrelated activities. 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. Meanwhile, Ian
@ -25,15 +25,15 @@ Go was born out of frustration with existing languages and
environments for systems programming. Programming had become too environments for systems programming. Programming had become too
difficult and the choice of languages was partly to blame. One had to difficult and the choice of languages was partly to blame. One had to
choose either efficient compilation, efficient execution, or ease of choose either efficient compilation, efficient execution, or ease of
programming; all three were not available in the same commonly programming; all three were not available in the same mainstream
available language. Programmers who could were choosing ease over language. Programmers who could were choosing ease over
safety and efficiency by moving to dynamically typed languages such as safety and efficiency by moving to dynamically typed languages such as
Python and JavaScript rather than C++ or, to a lesser extent, Java. Python and JavaScript rather than C++ or, to a lesser extent, Java.
</p> </p>
<p> <p>
Go is an attempt to combine the ease of programming of an interpreted, Go is an attempt to combine the ease of programming of an interpreted,
dynamically typed dynamically typed
language with the efficiency and type safety of a compiled language. language with the efficiency and safety of a statically typed, compiled language.
It also aims to be modern, with support for networked and multicore It also aims to be modern, with support for networked and multicore
computing. Finally, it is intended to be <i>fast</i>: it should take computing. Finally, it is intended to be <i>fast</i>: it should take
at most a few seconds to build a large executable on a single computer. at most a few seconds to build a large executable on a single computer.
@ -86,7 +86,7 @@ expressive yet comprehensible without sacrificing, well, sophistication.
</p> </p>
<p> <p>
Another important principle is to keep the concepts orthogonal. Another important principle is to keep the concepts orthogonal.
Methods can be implemented for any type; structures represent data; Methods can be implemented for any type; structures represent data while
interfaces represent abstraction; and so on. Orthogonality makes it interfaces represent abstraction; and so on. Orthogonality makes it
easier to understand what happens when things combine. easier to understand what happens when things combine.
</p> </p>