It's been a couple days since I created a project on Google Code, so here's another one. Seriously though, Google released the Go programming language yesterday. It's intended as a systems programming language for projects that could be done in C or C++. All I saw was a short video showing off the quick compile time. I like compiled code for serious applications and I truly believe that fast compile times make a big difference in programmer satisfaction (which varies directly with productivity). If you more convincing on why fast builds are important have a listen to the Stack Overflow podcast #47 (the bit about SSDs - solid state hard drives).
Anyhow, back to my project. I installed Go on an Ubuntu VM and ran through some demos. I like a lot of what I've seen so far. The language encourages error-checking. Unreferenced variables are considered an error. Pointers are there but pointer arithmetic is out. It seems like the language does things that are meant to keep you from hurting yourself (like bounds-checking) but the rules are done in a way that doesn't take away from your ability to get work done. I have yet to get in to any of the concurrent code features of Go, but there are some applications I have in mind.
After trying out the examples, I wrote a simple program in Go to plot some data points supplied in a file. The plotting is really done by SVG. In my very primitive code, all I do is read in data points, one x & y per line, and use them to create a single SVG path element. You can see the sample input & output files, along with all the rest of my code, in the GoPlot project. Fork and enjoy :)