Go: What's New in March 2010
18 Mar 2010

Andrew Gerrand

* Introduction

Welcome to the official Go Blog. We, the Go team,
hope to use this blog to keep the world up-to-date on the development of
the Go programming language and the growing ecosystem of libraries and applications surrounding it.

It's been a few months since we launched (November last year),
so let's talk about what's been happening in Go World since then.

The core team at Google has continued to develop the language,
compilers, packages, tools, and documentation.
The compilers now produce code that is in some cases between 2x and an order
of magnitude faster than at release.
We have put together some graphs of a selection of [[http://godashboard.appspot.com/benchmarks][Benchmarks]],
and the [[http://godashboard.appspot.com/][Build Status]] page tracks the
reliability of each changeset submitted to the repository.

We have made syntax changes to make the language more concise,
regular, and flexible.
Semicolons have been [[http://groups.google.com/group/golang-nuts/t/5ee32b588d10f2e9][almost entirely removed]] from the language.
The [[https://golang.org/doc/go_spec.html#Function_types][...T syntax]]
makes it simpler to handle an arbitrary number of typed function parameters.
The syntax x[lo:] is now shorthand for x[lo:len(x)].
Go also now natively supports complex numbers.
See the [[https://golang.org/doc/devel/release.html][release notes]] for more.

[[https://golang.org/cmd/godoc/][Godoc]] now provides better support for
third-party libraries,
and a new tool - [[https://golang.org/cmd/goinstall][goinstall]] - has been
released to make it easy to install them.
Additionally, we've started working on a package tracking system to make
it easier to find what you need.
You can view the beginnings of this on the [[http://godashboard.appspot.com/package][Packages page]].

More than 40,000 lines of code have been added to [[https://golang.org/pkg/][the standard library]],
including many entirely new packages, a sizable portion written by external contributors.

Speaking of third parties, since launch a vibrant community has flourished
on our [[http://groups.google.com/group/golang-nuts/][mailing list]] and
irc channel (#go-nuts on freenode).
We have officially added [[https://golang.org/CONTRIBUTORS][more than 50 people]] to the project.
Their contributions range from bug fixes and documentation corrections to
core packages and support for additional operating systems (Go is now supported under FreeBSD,
and a [[http://code.google.com/p/go/wiki/WindowsPort][Windows port]] is underway).
We regard these community contributions our greatest success so far.

We've received some good reviews, too.  This [[http://www.pcworld.idg.com.au/article/337773/google_go_captures_developers_imaginations/][recent article in PC World]]
summarized the enthusiasm surrounding the project.
Several bloggers have begun documenting their experiences in the language
(see [[http://golang.tumblr.com/][here]],
[[http://www.infi.nl/blog/view/id/47][here]],
and [[http://freecella.blogspot.com/2010/01/gospecify-basic-setup-of-projects.html][here]]
for example)  The general reaction of our users has been very positive;
one first-timer remarked [[https://groups.google.com/group/golang-nuts/browse_thread/thread/5fabdd59f8562ed2]["I came away extremely impressed. Go walks an elegant line between simplicity and power."]]

As to the future: we have listened to the myriad voices telling us what they need,
and are now focused on getting Go ready for the prime time.
We are improving the garbage collector, runtime scheduler,
tools, and standard libraries, as well as exploring new language features.
2010 will be an exciting year for Go, and we look forward to collaborating
with the community to make it a successful one.
