An Introduction to Google's Go Programming Language
thebitsource.com
thebitsource.com
So far, the language feels great. After a week of regular use, it feels very natural. Error reporting is wonderful. As mentioned elsewhere, library support is lacking, but it's been a good experience for us to build a lot of that stuff ourselves. The interface and package systems feel just right. We will likely try to contribute to the standard library in the future.
The only thing we're really missing is generics. We are having trouble generalizing some data structures and ended up duplicating some for multiple data types. I hear that those issues will go away this year, though.
Python for UI and non-perf sensitive stuff and Go for the under-the-hood stuff seems like the perfect mix for my future pet projects(having not used Go yet; perhaps that will change).
I haven't had any issues myself, but they don't recommend using it for production systems yet.
I believe goroutines are the "killer feature", they beat alternatives like Java threads and multiple Ruby processes hands down. Among the languages I know, Go and Erlang are the primary contenders for the "most convenient multithreading" prize.
Go aims to have the "simplicity of a dynamic language with the performance of a static language", I'd say they are reasonably close to that goal.
For my purposes, Go doesn't replace Ruby/Python for shell scripts and quick prototyping, but it is a much nicer alternative to Java and C for performance.
This didn't really work. I found their template language to be clunkier than what I am used to in PHP. Also, I like having my hosting software (Apache) separate from my script (PHP), though I suppose that is a matter of taste.
In all, I would say that the language of go is superb, but it still needs some development in it's libraries. Once it picks up a little more I will probably use Go for most of my projects. I haven't used another language I like more.
- what does it do? Serve HTTP requests? Does it persist state in a database? If so, what kind?
- how is it deployed? Running on a VPS somewhere?
Code: http://github.com/ajstarks/svgo Examples: http://www.flickr.com/photos/ajstarks/sets/72157623441699483...
It's basically using the Go's own libraries to parse the given .go file, and detect what additional files needed to be compiled.
http://github.com/malkia/go-runner
But that won't compile with latest Go. I've stopped using Go, as I got busy with other things, but might come back at it.
type FloatArray []float
type StringArray []string
type Interface interface {