The Discontent of a Seasoned Programmer, A Simpler Take on Modern Software Woes
Once a passionate programmer with 15 years of experience started feeling down about the current state of the IT industry, troubled by its disregard for efficiency, simplicity, and quality.
He observes that unlike other fields where achieving optimal efficiency is a goal, in software development, there's a prevailing acceptance for low performance. He mentions an example where someone took 6 hours to rewrite a program to improve its run time, but the time saved is negligible compared to the effort.
The phrase,
"Programmer time is more expensive than computer time,"
seems to justify the wasteful use of computational resources. In other industries, such inefficiency would be unacceptable.
Imagine a car guzzling 100 or 1000 liters of fuel per 100 kilometers. That’s what we do with our computers, he argues.
Despite having powerful computers, we face lag in basic operations like scrolling web pages. Opening a simple email could take way longer than it should. Even operating systems, which should be optimized, take ages to update. The lack of optimization extends to text editors, which, despite their simplicity, can't render text as fast as they should.
Software bloat is another concern. Apps and systems are growing larger without significant improvements in functionality. He points out how an Android system takes up nearly 27.26GB without any apps, which is mind-boggling. Even simple applications like a keyboard app consume a large amount of memory, which doesn’t make sense.
领英推荐
The growth in software size over time, without added value, is alarming. Devices that were efficient years ago now struggle to run modern software despite the software not offering anything substantially new.
He also mentions the issues with dependency in programming. Adding one function or feature could bring along a cascade of dependencies, making the system more complex and harder to manage.
He discusses the need for reevaluating and revisiting the code to improve it, but the rapid pace of development leaves no time for that. As a result, we stack new code on top of old, flawed code, leading to a pile of barely working programs.
He criticizes the modern trend of throwing more and more resources to solve problems, rather than addressing the root cause.
He emphasises that it’s the duty of engineers to push for better, more efficient, and reliable systems. By doing so, they can show the world what’s possible with today’s technology.
He acknowledges a few individuals and projects that are striving for excellence and efficiency, showing that improvement is possible. They demonstrate that with the right principles, creating fast, efficient, and reliable software is within reach.
In conclusion, he calls for a change in the mindset of the software community. He urges engineers to strive for progress, quality, and efficiency, to break free from the current stagnation, and to take pride in delivering well-engineered software.
Senior Python Developer @ logicbric | FastAPI, Django, jQuery
1 年haha this is soo true, the size of dependencies just keep on increasing, i think its high time we need to think about optimising software's