Comparing programming languages has been a popular sport for many years.
I love the quote from Antoine de Saint-Exupery who once said “If you want to build a ship, don’t tell people to collect wood, or assign them tasks, but rather teach them to long for the endless immensity of the sea“.
In the days when processing power was expensive, writing assembler code was the benchmark, and high level languages were seen as an extravagance, C was a revelation. Near-assembler fast, bit-level operations, but still an expressive 3GL.
Wait, that’s only the beginning of the story.
I started out in my software engineering life writing software for embedded real-time systems and communication stacks, so I often think of myself as an async native. I’ve written a lot of code in various languages, mostly not using event-driven programming models and design patterns, but hardware interrupts, callback functions, event loops and finite state machines – I still see these as reassuringly familiar features of my original habitat. Call it the baby duck syndrome.
Who is this post for?