/ Concurrency

Walking Far From Home

If you know me or have read my posts here before you undoubtably know that I work in Javascript. In fact you might be aware that I really LOVE Javascript. It may not be the fastest language and it may be missing some features from other environments but I truly enjoy it. However, just as there is no perfect library or framework for every project neither is Javascript well suited for all tasks.(Though it has a marvelous way of getting into new environments all the time)

One thing that Javascript does relatively poorly (in fact it's not built into the language at all) is concurrency. If you don't already know about web workers you can learn the basics right here. The long and short is that you can make Javascript perform some operations concurrently but it is not particularly well suited to the task.

This brings me to Go, as well as a small collection of other languages. I have been poking around curiously reading about some modern languages that have robust language support for concurrency and have finally come to the point that I can read no longer. I must code! So I am embarking on a little journey to sample the basics of concurrency in a selection of different languages.

My goal is not to declare one language the ultimate work horse for highly concurrent applications. Rather I am aiming to have some understanding of the differences in working with each and for what type of work I might want to use one or another. If I am lucky I may come away with a new language love that I can dive into for the joy and productivity of it. But, I will settle for the familiarity and a few more tools in my belt, even if I won't have sharpened them yet.

It's going to be an exciting journey :D

Note: Right now the languages on my list are Go, Clojure, Elixir and Rust. If you know why I should add a leg onto my journey through another language please let me know!