It could be argued that Microsoft is trying to be more forward thinking by continually pushing the level of abstraction while at the same time trying to please everyone at once. One of the downsides to being the biggest (for an extended period of time) in one or more spheres is that you cannot focus on just one group of users. Systems that focus on just one group are almost always more efficient. Just look at HN. It focuses on one relatively small group of users who are willing to forego having a plethora of features.<p>In the long run, having highly abstracted, well organised frameworks like .NET is good for humanity while in the short run it makes for painfully hungry infrastructure. There will always be a general group of people trying to make the best out of what is currently available -- focusing on efficiency. When I started programming back in the 90's, I remember hearing people quite often brag about how "real programmers" use assembly, calling anyone else a lamer. I started with VB and then C (not C++). I was considered one of those lamers using such "high level" technology. I remember thinking to myself, "At least I get things done in a reasonable amount of time". These days, C is considered quite low-level compared to modern languages and frameworks. My point is that abstraction is continually pushed onward for a very good reason, yet many people who have grown accustomed to older, more CPU-efficient platforms and methodologies may view the "cutting-edge" level of abstraction as unnecessary and bloated. This phenomenon follows the age-old "back in my days we had to milk our own cows" generation-to-generation viewing of the "new kids" as lazy and spoiled. The key is in recognising that the world keeps moving, even if you are growing old. There is always room for progress, even if progress appears unnecessary to those accustomed to older ways. As machines get more powerful, the world is no longer the one that demanded those levels of efficiency seen prior.<p>At the same time, I agree that some software and systems are obnoxiously slow. Visual Studio takes ages, even with a fast drive. I prefer AWS over Azure. When it comes to coding these days, I choose high-level unless the application demands working with large amounts of data. The programming time needed to make simple applications run faster is usually greater than the gain in time from running more efficient applications. When you are Microsoft, being pushed to implement every feature in the book, you are going to want to choose the most efficient way of implementing new features.