Latest News & Trends in Short Form

When computing was first being developed, it was essential for software engineers to place a strong emphasis on efficiency. Every byte and every cycle of the central processing unit (CPU) counted because there was so little memory, computational power, and storage space available. By manually optimizing the code in assembly language, developers went to considerable efforts to reduce the amount of resources that were allocated. It was tough to design and maintain the software that they produced, despite the fact that it was extremely efficient and lightning quick.

Moore's Law has led to an exponential growth in hardware capabilities over the course of several decades, which has resulted in a shift in the incentives and objectives for software development. The average smartphone of today is orders of magnitude more powerful than the computers that were used in the Apollo missions, which were responsible for sending humans to the moon.[1] This has made it possible to develop software that is extraordinarily rich in features and adaptability, which would have been impossible in the past given the capabilities that are now available. In addition to this, it has alleviated the burden that was previously placed on optimizing for performance and resource utilization.

Take, for example, the story that Rufat Mammadli told about his attempt to modify a Microsoft Word document that was approximately thirty megabytes in size.[2] My attempt to accomplish this in Google Docs resulted in a delay of several seconds in typing, which rendered the web application inaccessible. Installing LibreOffice, which is a desktop application, was the only way to ensure that the document could be edited without any problems. For example, according to Mammadli, "It appears that the hardware specifications have been increased to handle these kinds of web applications; browsers were unnecessary." Assuming that we only have native applications."

In no way does this imply that web applications are intrinsically undesirable. They are extremely valuable because of the benefits they offer, which include independence from platforms, simplicity of implementation, and the ability to facilitate real-time communication. When opposed to native programming, which is of a lesser level, web technology is also more accessible to a wider spectrum of developers. The user experience, on the other hand, might suffer significantly when online applications begin to compete with native applications in terms of complexity without the same attention being paid to performance.

The idea that software efficiency has decreased has been challenged by a few commenters, who argued that modern software is able to solve more difficult issues with more sophisticated capabilities.[3] In spite of the fact that this is undeniably true, it does not diminish the significance of achieving efficiency. Performance does not necessarily have to be sacrificed in order to achieve abstractions and complex functionality. With the vast resources that are at the disposal of businesses such as Google and Microsoft, it ought to be possible to ensure that even the most complicated web applications, such as Google Docs, operate without any hiccups.

When it comes down to it, we need to discover a way to build software that strikes a better balance. While it is essential to have a developer with knowledge and the capacity to swiftly construct extensive features, this should not be done at the expense of the end-user experience being negatively impacted by bad performance. Due to the massive hardware resources that are currently available, we are not in such a position where we are required to make sacrifices in terms of efficiency. We may attempt to deliver all of the power and flexibility of modern software development methodologies by giving more care to our choice of abstractions, design patterns, and technologies. This will allow us to respect the time of our users as well as the very real limits that their devices impose on them. Let's take some of that unrelenting emphasis on optimization that we had in the early days of computers and combine it with the great tools that we have available to us today. Our customers will be grateful to us.


  1. https://youtu.be/lKXe3HUG2l4?si=nMkDTMfvBK1AKCYI, Joe Armstrong - The Mess We're In, July 2014 ↩︎

  2. https://rufatmammadli.medium.com/did-we-lose-our-way-in-making-efficient-software-30-mb-doc-file-vs-browser-fed12dd866a4, Rufat Mammadli, Did we lose our way in making efficient software? — ~30 MB doc file vs browser, April 2023 ↩︎

  3. https://news.ycombinator.com/item?id=40189682, Hacker News comment thread, April 2023 ↩︎

You’ve successfully subscribed to Lesser News
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.