My decisions to learn different technologies have, up until very recently, been fairly ad-hoc. I’d hear about some interesting or novel technology and bookmark it to come back to later. Unsurprisingly this approach is not without its flaws. The main one being that it lacks a clear strategy or structure, making it difficult assess successes and shortcomings in any larger context.
I’ve decided to steal Neal Ford’s idea of building a technology radar in order to better structure my learning in the next six months. Without further ado here are the technologies that are currently on my radar.
I’ve used Chef and found the experience frustrating. I’m trialling Ansible to see if turns out to be a smaller and simpler automation solution by writing a playbook to manage deployment and provisioning of a small Haskell web service that I wrote at work.
Kafka is publish-subscribe messaging rethought as a distributed commit log. It looks like a mature and well-designed project and I hope to pilot it at work by designing and implementing a real-time notification engine.
I’m already totally sold on Haskell. The type system offers a powerful way to capture invariants and explore solution space in a very abstract way, whilst the type checker provides fast feedback about whether our programs adhere to these invariants. I hope to write a lot more Haskell this year.
Rust’s type system provides hope that someone like me could do systems programming without shooting themselves in the foot. I suspect it’s a language worth learning before it hits version
1.0 in a few months’ time.
Snap is web development framework written in Haskell. It occupies an exciting position in relation to other Haskell web frameworks in that it’s larger than Scotty but smaller than Yesod. It has a few interesting ideas, including an abstraction called snaplets that enable self-contained pieces of functionality to be easily composed.
I’m planning to use Socket.IO as part of the real-time notification engine at work. It looks like a mature project that has traction in the
js community and there’s already a Haskell implementation of the protocol available on Hackage.