Google decided that the world needs another C-type programming language when they officially started the GO open source project in the year 2009’s. But the sketching of this new language started in September 2007.
According to golang.org , no major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously.
Go language is based on C family with a significant input from the Pascal/Modula/Oberon family. However it was said in their FAQ, that Go should be taken as a complete new language. It was designed by thinking about what programmers do and how to make programming, more effective, hence more fun.
To be in line with major trends,
- It is possible to compile a large Go program in a few seconds on a single computer.
- Go provides a model for software construction that makes dependency analysis easy and avoids much of the overhead of C-style include files and libraries.
- Go’s type system has no hierarchy, so no time is spent defining the relationships between types. Also, although Go has static types the language attempts to make types feel lighter weight than in typical OO languages.
- Go is fully garbage-collected and provides fundamental support for concurrent execution and communication.
- By its design, Go proposes an approach for the construction of system software on multicore machines.
With these goals, it is clear that Go is intended for big software. Rob Pike, a member of the original Bell Labs Unix team and one of the co-designer of the Go programming language says, it is good for:
“Large programs written by many developers, growing over time to support networked services in the cloud: in short, server software. Go enables programmers to develop software quickly and maintain and adapt it easily as it grows. It combines the efficiency of traditional compiled languages with the ease of use and expressiveness of scripting languages.”
Wednesday 28th march, they released stable version 1 of Go called Go 1. It is available for Linux, FreeBSD, Mac OS X and Windows.
You could try compiling on-line and testing this new code at http://golang.org/