but they are miserable to program with
but they're beautiful and easy to use
SO WHERE DOES GO COME IN?
- UNIX
- B Programming Language
- UTF-8
- Plan9
- Inferno
- Limbo
and some other stuff...
yeah but what is it?
go is compiled
go is small
go is for writing quick software fast
go is targeted at multicore programming
but you don't *need* to worry about multiple cores
IT HAS
~ a nice package manager (with http://godoc.org/)
~ docs that are pretty decent (> godoc 'package')
~ garbage collection (eat your heart out C folks)
~ concurrency built-in
~ structs/interfaces instead of classes
~ a lack of flow-based exceptions (but should compiled things except?)
~ a "dynamic feel" (kill me now)
package main
import (
"fmt"
"net/http"
)
type Bikeshed struct{}
func (b Bikeshed) ServeHTTP(
w http.ResponseWriter,
r *http.Request) {
fmt.Fprint(w,
"the bikeshed should clearly be "+
r.FormValue("color"))
}
func main() {
var b Bikeshed
http.ListenAndServe("localhost:4000", b)
}
GO HERE:
http://tour.golang.org/