Was Software Engineering Harder In The 90's Than It Is Now?
This YouTube transcript discusses whether coding is getting harder. The key points are:
-
Contradictory Trends: While abstraction layers (like not needing assembler) simplify some aspects, the overall breadth of knowledge required is expanding drastically. This includes:
- Massive Landscape: The sheer number of technologies (cloud services like CNCF, AI/ML tools, programming languages, libraries like npm’s 2 million packages) is overwhelming.
- Abandonware: Many open-source libraries become unmaintained, leading to security vulnerabilities (CVEs) and necessitating rewrites.
-
Modern vs. Older Code: An experiment showed that a simple web app written using modern frameworks (JavaScript, Angular, etc.) required significantly more code than an equivalent 1990s version. This suggests that while modern tools offer advantages (better security, browser compatibility), they don’t always simplify the development process. The increased complexity might be hidden within the frameworks.
-
Complexity in Open Source: The pressure to constantly release new features in open-source projects often leads to bloated and overly complex systems (e.g., Spring), making them harder to learn and use.
-
Simplicity is Hard: Achieving and maintaining simplicity is extremely challenging. There’s a tension between superficial simplicity (a naive reimplementation) and genuine elegance that reduces underlying complexity and pitfalls. The pursuit of new features often undermines simplicity.
-
Complex Adaptive Systems: Software development is likened to a complex adaptive system where changes in one area unexpectedly affect others, making it difficult to predict the overall impact of improvements or simplifications.