How Moore's Law Applies To Software Development

How Moore's Law Applies To Software Development

ยท

4 min read

The day before yesterday I wrote about Murphy's law as it applies to tech, yesterday I was in the thick of a battle with my code as such I couldn't write (it happens to the best of us... I think ๐Ÿ˜‚). Today I'll write about how code is affected by another law, Moore's law. Moore's law isn't considered law by many people, however, it has been holding true for quite some time. Moore's law posits that the number of transistors in a dense integrated circuit (IC) doubles about every two years. It's more of a rational observation-based prediction.

flyboard-3593272_1280.jpg

INTEGRATED CIRCUITS IS THE SPRINGBOARD OF SOFTWARE DEVELOPMENT

While a lot of developers don't know is that a lot of the programming stunts we're able to pull is because Moore's law has maintained its validity. Integrated circuits are what differentiates a screwdriver from a machine. As developers, a lot of the work we do is very demanding on the machine, the more powerful a machine is, the more burden it can handle, compare the performance of a Pentium laptop with a Core i7 9th generation laptop and you'll understand performance.

hourglass-1703349_1280.jpg

MONEY CAN BUY TIME BECAUSE OF INTEGRATED CIRCUITS

If someone tells you money can't buy time, install a 1 Terabyte SSD (Solid State Drive) ๐Ÿ˜‚. SSDs are much faster than HDD (Hard Disk Drives) that we find in older computers, the performance difference are lightyears apart and is literally worth its weight in gold. Powerful processors and state of the art storage devices are some of the benefits that come with Moore's law's observation and sustained trajectory. Give me a couple of seconds, I'll tie it back to software development soon ๐Ÿ˜.

main-board-89050_1280.jpg

INTEGRATED CIRCUIT POWER IS ONE OF THE REASONS SOFTWARE IS GROWING FASTER THAN HARDWARE

As software engineers, we're able to build more powerful features into software programmes because of increased computing power that is able to carry out our instructions. Imagine a horse and a cart, the content of the cart depends on the power of the horse(s). Though your smartphone devices look more or less the same (save for a change in the position and/or a number of cameras on them ๐Ÿคฃ), under the hood, we software engineers have packed more performance enhancements and optimizations into the device.

smartphone-2493419_1280.jpg

MOORE'S LAW AND THE FACILITATION OF WEB ASSEMBLY

Another thing that you may not have noticed is clientside software development. Before every information you accessed on your device had to be fetched from the internet because browsers (and apps) weren't able to store so many features, contents and functionalities. With the increased power, we now have technologies we call "web assembly" which is just a fancy way of saying that your browsers are now powerful enough to handle the bulk of the logic of software solutions so we now keep software solutions in browsers.

justice-2060093_1280.jpg

THERE'S A PRICE TO PAY FOR EVERYTHING

Yes, the browsers will still interact with the internet to update or manipulate a couple of things, however, the benefit of web assembly is a faster performance with or without an internet connection. It would be too good to be true if there are no drawbacks, there are. A lot of developers from the generations before claim that developers have become lazy with best practices and as such produce applications that consume more memory and device power than needed (๐Ÿคงeg. Google Chrome). Developers of previous generations couldn't get away with half the things we developers get away with, if their applications weren't properly optimized, they wouldn't run.

relatable explanation.jfif

A RELATABLE EXPLANATION

For example, have you noticed that despite RAM and ROM (storage space) increasing on all devices, we're still running out of space on our devices and having to rely on cloud computing to backup excess data? have you also noticed that some devices hang and apps crash unexpectedly despite increased power on devices? well, these are some of the fallout of developers not trying to manage how much resources their software solution consumes simply because devices have more power. Developers back in the good old days were pinching pennies with device storage and power and had to get the most out of the little they had.

outdoors-3290142_1280.jpg

MEMORY LEAKS ARE A HUGE CULPRIT

There are things like memory leaks and multithreading issues that are majorly the culprit for this excess burden on consumer devices. Remember how we used to download games on our non-smartphone devices back in the good old days, those games were in kilobytes then and they didn't have performance issues. Now games are gigabytes and we have performance issues. It's like the more power we get, the less we have. This is why best practices are advised because if nobody follows best practices we'll all suffer.

finally.jfif

FINALLY

We have so many applications on our devices that if they aren't optimized for performance they'll keep running in the background using up device power, burning down our batteries and being a pain on end-users, we've all been there, we're still there ๐Ÿ˜‚. The key takeaway is that we have calculators that are more powerful than the computers that took Apollo 11 to the moon. As developers, we need to do more to optimize the way we use memory.