Go Version 1 Released 186
New submitter smwny writes "Google's system programming language, Go, has just reached the 1.0 milestone. From the announcement: 'Go 1 is the first release of Go that is available in supported binary distributions. They are available for Linux, FreeBSD, Mac OS X and, we are thrilled to announce, Windows. ... Go 1 introduces changes to the language (such as new types for Unicode characters and errors) and the standard library (such as the new time package and renamings in the strconv package). Also, the package hierarchy has been rearranged to group related items together, such as moving the networking facilities, for instance the rpc package, into subdirectories of net. A complete list of changes is documented in the Go 1 release notes. That document is an essential reference for programmers migrating code from earlier versions of Go. ... A similar process of revision and stabilization has been applied to the App Engine libraries, providing a base for developers to build programs for App Engine that will run for years.'"
Go is already being used (Score:5, Interesting)
The amazing thing is that even before the first stable release is out quite a few organizations are using Go in production to run real systems. Very impressive:
http://go-lang.cat-v.org/organizations-using-go [cat-v.org]
Added value of Go? (Score:5, Interesting)
Re:Added value of Go? (Score:5, Interesting)
Maybe I'm too old-school, but when I think "systems language", I think about something that would be good for embedded devices or kernel device drivers, stuff that's pretty close to the metal. I wouldn't use Go for that, garbage-collection and concurrency mean there's heap traffic and IPC signaling under the hood that I probably want to control.
I agree with the "C but better" characterization, but the ways in which it's better disqualify it from being a good systems tool, I think.
Re:Pi is wrong on the main site (Score:4, Interesting)
This is interesting... If you run the Concurrent Pi example program on the Go website.. it prints:
3.1417926135957908
But it should be [uiuc.edu]:
3.1415926535897932
It's wrong starting with the 5th digit...
What kind of language is that inaccurate? And why would they use it as an example program?!
Possible replacement for Dalvik into the future? (Score:4, Interesting)
Does anyone know if this is an R&D project that could be poking at the idea of a litigation free runtime for Android away from Dalvik?
I'm curious to see how this language evolves and its internal adoption inside of google.
Regardless of the language taking off or not, it's a great to see a new language enter the ecosystem, and no doubt we'll learn things from it that can be brought back into main-stream languages or interesting innovation that could open the doors for new (pray disruptive) development in new areas.
Re:Added value of Go? (Score:3, Interesting)
This is obviously not a very scientific comparison, but the takeaways are that the go executable was 1.3M compared to the C executables 6.6K and the go compile took over 2 seconds whereas the C compile took less than 0.05 seconds.
Re:Rube Googleberg Machines? (Score:5, Interesting)
I write both Go and C++ at google. Sadly, Rob Pike's joke has a definite core of truth: writing C++ code at google is extremely time-consuming and difficult to get right because it has to be multi-threaded and asynchronous.
Long compile times is more of a build system problem than a compiler problem, IME. Of course, lots of people have broken build systems, and compile the same things over and over again
Well, our in-house developed build system is the best I've ever seen, and probably the best in the industry. Read more about it here [blogspot.com]. Even with all the niftyness of a thoroughly correct build system and a data-center sized ccache, it still sucks.
Go is definitely awesome, and I recommend everyone to set aside the gripes with the syntax and learn it. I guarantee you that you'll be pleasantly surprised.