Programming: Past and Future

Published on Oct 31, 2020

I stumbled upon an old Github repository of mine yesterday. A machine learning research project written in C that classifies time series. As I was going through the dusty code, I was reminded of my beginnings as a programmer, learning C in middle school.

C is still taught in college since it powers the majority of the tech world, but it's not considered as cool as it used to be. Modern developers learn Python, Javascript, or Ruby, because that's what modern companies code in. 

The development time is much lower, because you don't have to do low-level things like defining variable types or allocating memory usage. And since developers are more expensive than less efficient code, we prefer sacrificing performance for readability, speed, and maintenance. It's understandable: software development is already hard as it is, so why bother introducing more bugs and more complexity?

But if we look at it in terms of performance, strongly-typed programming languages have a few non-negligible advantages. Compared to C, Python is a huge gas plant. When you look at it in terms of accessibility, energy consumption, and cost savings, low-level languages are much more resilient.

C is probably not going to make a comeback as a mainstream enterprise programming language, but I'm very excited about the new generation of low-level web technologies like Go, Web Assembly, and Web Components. Frameworks like React or Vue are great, but what if we didn't have to spend time and energy downloading and executing heavy Javascript code to run rich websites? We could greatly expand the possibilities offered by the Internet.

For now, the technology isn't ready to disrupt the last decades of web development, but there are hybrid solutions. Technologies like Google's Accelerated Mobile Pages, Svelte 3, or this list of opensource Wasm projects, are good examples. Exciting times to be a developer!