Thoughts on Go after writing 3 websites

“It’s easy to get excited about new technology like Go. The question is: how does it stand up to scrutiny after daily use?

I’ve written 3 web applications in Go, they’ve been running in production for over a month so I feel justified in publishing my opinion.

In the past I wrote web applications in Perl, PHP, Python (, Tornado, App Engine) so those are the technologies I campare Go to.

Of the 3 websites, AppTranslator, is web service for crowd-sourcing translation for software and was written completely from scratch.

Fofou is a simple forum and is a port of an earlier version I did for App Engine. Finally, this web site is a blog engine (also a port of an earlier App Engine version).

One reason to migrate from App Engine to my own server was to save money. At my levels of traffic (~3 requests per second) I was paying ~$80/month, mostly for the frontend instance hours.

Another reason was to do more complex processing (App Engine is great as long as you don’t have to do something that App Engine doesn’t support).

Finally, I wanted to see how Go will handle a real life project. The best way to test a new technology is on a project with a predictable (and relatively small) scope.

All websites run on the same Kimsufi 24 dedicated server (which is pretty beefy for its $60/month price). I’m using latest Ubuntu for the OS…”

Lessons learning Haskell

“It’s often claimed that learning Haskell will make you a better programmer in other languages. I like the idea that there’s no such thing as a good programmer, just a programmer who follows good practices. As soon as we stop following good practices  we suck again. So, Haskell must introduce and indoctrinate better practices that we carry back to our other languages. Right? I think it’s true but it’s not obvious, so I’ve written this article to outline some of the habits and practices that I think changed after I used Haskell for a while…”