Skip to content

Instantly share code, notes, and snippets.

@jesperfj
Created September 13, 2012 15:46
Show Gist options
  • Save jesperfj/3715223 to your computer and use it in GitHub Desktop.
Save jesperfj/3715223 to your computer and use it in GitHub Desktop.
Go

Gigaom picked up Derek Collison's tweet about Go. The article singles out static typing as a reason why Go will become a popular systems language.

I will add another reason: It is not an object oriented language.

In the 15 years I have spent designing, building and marketing what is essentially networked services (web apps), object orientation has always feel like a poor fit. Object orientation is simply not a universally applicable modeling principle. Going further, I will argue that, in most cases, it is a poor modeling principle. Objects rarely exhibit behavior. More often, objects are subjected to behavior by some external force (functions operating on data structures).

I find that keeping functions and data structures separate yield the most well structured programs. Best practices for writing web apps follow the same pattern: Use data transfer objects, use composition instead of inheritance, etc.

There are more reasons why Go will ascend. For example, it has been tailored to write programs that process streams of data efficiently with native constructs for lightweight processes and message channels a la Erlang and actor models in other languages.

Finally, it benefits from being a newly created language. It has dependency management built right in and incorporates the latest best practices for code repositories.

@jamesward
Copy link

Have you seen Revel, a "web framework for the Go language, modeled on Play"? Definitely looks interesting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment