San Francisco, Ca. – Borrowing the best of programming languages such as C and C++ and scripting languages such as Python, Google has just taken the wraps off Go, a programming language optimized for concurrency, simplicity and performance.
Go is open source and uses expressive language constructs such as pointers (but no pointer arithmetic0. It is type safe and memory safe. One of the main goals of its designers is to offer the speed and safety of a static language but with the advantages of modern dynamic languages
Go offers methods for any type, closures and run-time reflection. Similar to Java, it uses garbage collection and is designed to compete with C and C++ as a systems programming language.
With reference to multicore programming, Go promotes lightweight concurrency allowing developers to create sets of lightweight communicating processes. In Go terminology, these are called goroutines and are designed to allow a programmer to run many concurrent goroutines without worrying about stack overflows.
Also important in multicore programming, Go promotes sharing memory by communicating. Goroutines aren't threads, they are functions running in parallel with other goroutines in the same address space.
It has been designed to make it easy to launch parallel functions using the goroutines, greatly simplifying concurrency for systems programming. In addition to goroutines, other concurrency related features include the use of channels, channels of channels and leaky buffers.
To learn more about this new language, go (no pun intended! ) to http://golang.org/.