Its been almost a month since Google Go was officially out for public use. I have been trying to write about it but was having problem with my hosting so now I am finally giving my review on it.
Google announced the release of a new, open sourced programming language called Go. The company says that Go is experimental, and that it combines the performance and security benefits associated with using a compiled language like C++ with the speed of a dynamic language like Python.
Despite the large amount of enthusiasm for language design, modern mainstream programming languages don’t fall far from the C tree. The best that Microsoft, Sun, and Apple have to offer are just variations on that theme, with the addition of predictable object models and conveniences like garbage collection. The slim minority of language geeks who have rebelled against bracist tyranny and stumbled over to innovative languages like Haskell and Erlang are doomed to toil in relative obscurity.
Are there any influential software vendors who have the vision and leverage to liberate the programming masses from the tiresome anachronisms of C’s long legacy? When I learned that Google was going to announce a new programming language, I was hopeful that the search giant would bring something truly novel to the table. They haven’t, but the result isn’t bad. Although Google’s new Go programming language is yet another take on object-oriented C, it’s got some nice features.
Go offers an expressive type system, fast compilation, good performance, and built-in language features that simplify threaded programming and concurrency. The language has been under development for roughly two years. It started out as a 20 percent project—time that Google’s engineers are given to use as they choose for undirected experimentation—and evolved into a serious full-time undertaking. Google is releasing the source code under the BSD license with the hope that a community will emerge around the new programming language and participate in the effort to make it a compelling choice for software development.