As I’ve been playing with Go, I see the incredible productivity benefits it gives me. So many times it has caught errors that would have been left were I writing in Ruby or JavaScript. I would have written tests to catch these, when I got around to it…

But, there are still things about Go that I wish it did. I love the idea of Clojure and immuatable data because then this would not happen.

I was refactoring some code, and pasted in the following snippet. Without the first fmt.Println(...) call, Go does catch the fact that I am declaring a new variable inside the if scope, but if I add this fmt.Println(...) call, then it does not know that I really wanted to assign a new value to the existing variable, and not create a new one. I really wanted to write delimiter = ',' instead of delimiter := ',' but Go did not know that.

Oh well. Go seems so powerful in almost every other way.