If you look at the modern-day software development industry from outside, everything, especially development on windows, looks like it couldn’t have been better. Virtually every technology field that requires programming, from websites and consumer services to enterprise IT systems and hardware solutions, has evolved tremendously over the last couple decades. Users in 2022 have access to a previously unparalleled choice of software solutions and devices with technical capabilities that would have seemed inconceivable for most people just 30 years ago.
If you’d judge by the mainstream media reports praising the digital transformation and new technologies that are part of a fourth Industrial Revolution, such as AI, ML (machine learning), robotics, and Big Data the near future promises even more tech advancements and opportunities.
Table of Contents
What is the imminent menace?
If you look at this from the perspective of an industry professional with many years of experience, however, the current situation in software development may look far from an unambiguously positive picture painted by the media. It is increasingly hard to ignore problematic tendencies and patterns that are affecting all the fields and branches of the software industry, including web development, mobile apps, desktop software and other niches. The backstage of software development is getting caught up in unsustainable bloat and growing complexity.
Here are several striking examples of problematic trends that are putting the future of software performance at risk.
Are websites and apps getting slower?
Have you noticed that despite the Internet connection speed around the world growing steadily year after year— just over the last decade the average Internet connection speed increased more than 20-fold — the majority of websites and apps are actually loading more slowly than before? According to a 2019 study based on the analysis of five million desktop and mobile pages, an average webpage was taking 10.3 seconds to load on desktop and a whopping 27.3 seconds on mobile. This is considering that recommended webpage load time is up to 3 seconds. Websites that take longer than the magic 3 second to load rule typically experience greatly increased user bounce rates.
Is software performance really in decline, despite powerful hardware?
The same problem can be observed in software across fields and industries. Even though hardware is gaining more and more computational power, it seems to have no effect on the speed and performance of software. We can hardly see any real software productivity gains these days because additional resources of new hardware are mostly wasted on increasingly resource-hungry software products developed with poorly chosen tools.
Why are apps built with slow and memory-devouring frameworks?
Another concerning trend is the already widespread and growing popularity of frameworks and tools, which are used to speed up the development process at the cost of creating apps that are memory-devouring and extremely demanding to hardware resources. The most egregious example of such a tendency is probably Electron, a popular framework that allows developers to create native apps with web technologies to deploy on multiple platforms at once. Every application made with Electron framework is in fact a standalone browser using Node.js server to power the backend. This approach makes Electron-made apps notoriously hungry for device memory, which is well-known to users of Slack, Skype, Visual Studio Code, WordPress Desktop, and other highly popular apps built with this framework.
Doesn’t software have to support all major platforms?
Finally, today it is commonly required for the developers of a major software solution to provide versions of their product for all major platforms, both desktop and mobile. Building and updating the same application multiple times for Windows, macOS, Linux, Android and iOS is expensive, difficult to coordinate, and developers often simply don’t have time for code optimization or choosing better and more efficient development tools.
What is the alternative to overcomplexity and tech stack bloat?
Is there a way to reverse this troubling trend before the crisis has gone from bad to worse? I believe there is. The key to address the problem of overcomplexity and bloating in software development is a conscious approach to this process with specific focus on the selection of development tools that were specifically designed to address the issue and enable an optimized and high performance solution.
When it comes to the creation of apps, both desktop and mobile, Embarcadero’s RAD Studio, a rapid application development package based on “write once, compile everywhere” approach, is such a tool.
RAD Studio approaches the productivity issue from multiple angles, supercharging developer productivity by reducing code complexity, fulfilling business requirements, providing application flexibility, and solidifying product performance. The “less code” idea is one of the fundamental principles of this platform. It aims to equip developers with a combination of a language that is easy to learn, write and read; integrated toolchains; low-code technologies; and multi-platform deployment, ultimately being able to fuel a developer productivity boost of up to five hundred percent.
The battle for the future of software performance begins now. Which side are you on?
As the above-described tendencies continue to unfold, we will most likely see other signs of this problem in the complaining years. In order not to fall in this trap of growing complexity and decreasing developer productivity, companies need to adopt a new smart approach to the development and maintenance of software solutions.