Wordpress To Golang

2017-09-24

Less tech is better, so when reaching for a blog I skipped wordpress and picked up golang. A couple years ago Ruby on Rails was a consideration but using that would push me to use a larger more expensive virtual machine compared to using golang.

Wordpress runs the internet, at least a significant share of it. The wiki page mentions 27.5% of the top 10 million websites as of February 2017 which is impressive. My biggest gripe with Wordpress is it runs on php, which puts me off significantly. I've not used it much but it doesn't have a good reputation, at least, not in the Ruby community. I want my blog to be a reflection of me and my interest in software, so the tech which runs it should echo that.

Ruby is a great technology, it makes for happier devs just like its creator Yukihiro Matsumoto wanted.

I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language.

Yukihiro Matsumoto 2008 Google Tech Talk 'Ruby 1.9'

Ruby can scale, I'm not going to say otherwise. However it is at the expense of increasing infrastructure complexity. If your app is big and complex then it is worth using ruby and making the effort to scale it. If your app is simple then the complexity cost of the infrastructure will outweigh the benefit of using Ruby. Your developers will spend most of the time conforming to the infrastructure, the happiness they get from using Ruby will be shadowed.

Another strike against Ruby is that I know Ruby. I won't be learning anything by using it to run my blog. If you are new to web development and want to create your own personal brand then perhaps using Ruby to build your own blog would make sense. It depends what you want out of it.

I could have chosen Elixir, or Rust or Node.js. I chose golang. I read about the creation of golang and it's authors pain points for existing languages. What really stood out to me was the focus on simplicity. I've only been in software for nearing 10 years at this point but one thing I notice a lot and I was guilty of early on is ego. That is, writing complicated code to show off and prove oneself. It's not necessarily from a bad place, imposter syndrome is rife in the tech industry, I certainly feel it most of the time. Whatever the cause, complicated code for complicated sake doesn't help anyone. Golang was created to minimise the ability to write clever code, opting for clear and simple syntax with few options to do something in more than one way. This sometimes means you end up writing more code, but I strongly believe it is worth it.

Here is my blog. It's running golang 1.9. It's paired with Postgresql 9.6. It's run on $5 vultr.com VM's located in 4 different data centres around the world. To find the reader's closest server I use ns1.com's free DNS hosting. SSL certs are issued for free by letsencrypt.org.