It’s been a long time between drinks on this blog – nearly 3 years since the last post. A lot has happened in that time. I became a dad (hence the absence of activity here). My day job has moved from C++ on Windows to Python on Linux. I’ve also learned a few more programming languages (Rust, D, Elixir), and spent some more time with a few old favourites (Common Lisp, Racket, F# and Go).
Yes, Go. Even after what I said here. Reading Rob Pike’s blog post Errors Are Values was a real eye-opener, and it answered a lot of my issues in the last post. So, just to see if a couple of years’ worth of day-to-day work in Python had changed my view, I started working through the Rosalind exercises in Go. And was pleasantly surprised by the experience.
Using the techniques in that post (and a few others like using a channel to implement a generator) made the language just get out of the way, and let me just get on with figuring out how to solve the exercises. As much as I love Rust (and, boy, do I really love Rust…) Go let me just bang out code to explore the problem space without fighting the compiler, which is a totally different experience to solving problems In Rust.
I do still have issues with the lack of generics, the lack of immutability and a few other things, but on reflection (ha!) I think the balance in Go is pretty well drawn.
So, yeah. The more you know…
And, if anyone is interested at all, here is the Repo with my Rosalind answers.