Pages

Wednesday, September 30, 2015

Go the Language

I've been playing with Go recently. Front-end, I'm an iOS dev. Back-end, I'm usually Python. A few thoughts on Go.

  • Types are nice. One reason I'm looking beyond Python is because I like a type system. Go is statically typed.
  • Compiled is nice. Performance is only part of it. Being able to statically link into one library solves deployment problems of a dynamic language. In interpreted languages, it can be a mystery where you're importing from, and leads to solutions like virtualenv or Bundler.
  • Go is lean. Google has mentioned that they want to keep the language minimal, and it shows. The core language is much simpler than Swift.
  • With such a minimal language, it really shows Google's priorities when the stdlib comes with a web server and HTML templating package.
  • Very useful to have a method of automatically pulling dependencies from github and elsewhere. I'm less sure of the philosophy of "All Go development in one directory."
  • Not everything needs to have objects. I though Django's class-based view system was over-engineered. It's actually refreshing that functions are emphasized over classes
I haven't even begun to dig into the concurrency features, which is supposed to be a big highlight. Overall, an interesting language, and one pretty fun to develop in. It's different enough that I need to spend some time developing in it to really understand it. Syntactically it's probably easier than Python, but it clearly requires patterns I'm not yet familiar with. I was going to write a simple blog engine in Go, but it became evident that would be a distraction. Maybe soon though.