This seems quite a drastic change. I thought compilation speed was one of the pilars of go. In that light, why did they decide to release this anyway?
This seems quite a drastic change. I thought compilation speed was one of the pilars of go. In that light, why did they decide to release this anyway?
And it's not just the compiler, the linker didn't even know if a package is used or not, which is why you have to manually remove unused imports (otherwise they would be linked in, bloating the binary).
I need to point out that your second point about the linker is totally false. The linker knows and does drop unreferenced code. The import strictness is a language requirement and comes from experience with large codebases at Google and elsewhere. Use goimports in your editor's save hook and don't think about it.
http://commandcenter.blogspot.it/2012/06/less-is-exponential...
Go is great as a much faster Python, where speed matters. If Go compiles slow too much, it becomes less attractive.
> On average the programs in the Go 1 benchmark suite run a few percent faster in Go 1.5 than they did in Go 1.4, while as mentioned above the garbage collector's pauses are dramatically shorter, and almost always under 10 milliseconds.
http://www.chris-granger.com/2012/02/26/connecting-to-your-c...
http://www.objc.io/issues/16-swift/rapid-prototyping-in-swif...
Rapid prototyping doesn't work as well if you need wait for compilation.
JRebel exists for Java to improve redeployment times: