Go 1.6 is available

Google has released the new version of Golang: 1.6. Here are the major updates:

  • Support of HTTP/2 (https://http2.github.io)
  • Enhancements on the template packages
  • The Experimental support of the vendor directory in 1.5 is now enabled by default. Check this document for more details: https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit
  • The runtime detects and reports concurrent misuse of maps. Don’t forget the prebuilt race detector.
  • Major changes to the rules for sharing pointers between Go and C code (if you’re using cgo).
  • Debugging multiple goroutines is way better (the stack backtrace is more human-friendly now)
  • The sorting algorithm has been optimized to run 10% faster.

For more details, check the golang blog : https://blog.golang.org/go1.6

 

Go Vs Rust

The two hype and hot computer languages today are Go (Golang) and Rust. I’ve been discussing their pros and cons for many times with my colleagues but we finally agreed that they simply are not comparable (at least for now). Here are some of the interesting links I’ve found on this subject:

http://dave.cheney.net/2015/07/02/why-go-and-rust-are-not-competitors

https://jaredforsyth.com/2014/03/22/rust-vs-go/

I’m not a big fan of benchmark, as I know how such tests are biased by design but I’m putting it in anyway:

https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=go

In simple words:

Go: mature, concurrency, simple language, libraries, networking

Rust: low level control, safety, speed, functional features

Personally, I love Python for a simple reason: when I have an idea, I can program it easily test it, and optimize it later (sometimes switch to another language if nice GUIs / high performances are required). On Go, I have the same ease with a great bonus: compiled language, more efficient and with built-in concurrency features.

That’s why I’m betting on Go. Because of with these capabilities, the languages/tools can evolve later, offer a better optimization, even an easier way for a full static linking, maybe support generics (if you’re into such things) while offering a simple and efficient language. For Rust, all-tough I like its concept of safety, I don’t think it can go the other way around.