The Discontent of a Seasoned Programmer, A Simpler Take on Modern Software Woes
cover image

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.

Screen shot of an android device system storage space showcasing that System takes upto 27.26 GB Space without any apps

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.

illustration demonstrating that too many dependencies make software complex

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.

The industry seems stuck in a cycle of creating temporary solutions to underlying issues.

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.

Biren Parikh

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

要查看或添加评论,请登录

社区洞察

其他会员也浏览了