# Go Wins 2010 Bossie Award
6 Sep 2010
Summary: Go wins a 2010 Bossie Award for “best open source application development software.” 

Andrew Gerrand

##

The Go project has been awarded a [Bossie Award](http://www.infoworld.com/d/open-source/bossie-awards-2010-the-best-open-source-application-development-software-140&current=2&last=1)
for "best open source application development software." The [Bossie Awards](http://www.infoworld.com/d/open-source/bossie-awards-2010-the-best-open-source-software-the-year-115)
have been given each year since 2007 by [InfoWorld](http://infoworld.com/)
to recognize the best Open Source projects.
Their citation reads:

Google's Go language tries to restore simplicity to programming.
It does away with numerous constructs that have crept into all OO languages
by re-imagining how to simplify and improve the conversation between a developer and the code.
Go provides garbage collection, type safety,
memory safety, and built-in support for concurrency and for Unicode characters.
In addition, it compiles (fast!) to binaries for multiple platforms.
Go is still in development (new features are being added) and it has limitations,
notably poor support for Windows.
But it shows a new, exciting direction in programming languages.

The Go team are pleased to accept this award.
It reflects not only our hard work, but also the efforts of the growing
community of Go developers to whom we must extend our sincere thanks.
