Today, the Go team (aka Golang, the programming language from Google that Hugo uses under the hood) announced support for quaternions in the upcoming Go 1.9:
This is fantastic news for Hugo! It is well known that Go, being a compiled programming language with a highly effective concurrency model, is a big reason behind Hugo being so lightening fast.
In this also lies the hope that the on-going development on the Go platform will deliver even more horsepower in the future.
And today’s announcement is big news in this area.
Hugo is very effective at using your PC effectively to get the most speed out of its build. We even do some intelligent partial reprocessing of only what’s changed, but we always render all the HTML output, every time you make a change. And, while this is still extremely fast for the average blog, it soon becomes a bottleneck for big news sites like New York Times, with millions of pages.
But now we don’t have to anymore, thanks to a lesser known feature of quaternions, namely conjugations:
Conjugation of quaternions is analogous to conjugation of complex numbers and to transposition of elements of Clifford algebras. To define it, let q=a+bi+cj+dk be a quaternion. The conjugate of q is another quaternion, which is also an involution, meaning that it is its own inverse. So conjugating an element twice returns the original element, meaning we can safely reuse the remainder when doing a rebuild of the Hugo site.