My dream is the opposite. Constrain programmers to hardware that's 2 generations old. That will force us to make our programs run fast in this environment which is much closer to what actual users will use to running it.
I do understand the implication that lowering the need for always faster hardware for end users will slow down the pace of development of new hardware. But with the end of Moore's law upon us, that's inevitable anyway.
Our computers are plenty fast today, beyond what we could imagine when each of us started programming. Let's cut down on abstractions. Let's profile, optimize.
After being stuck with a really, really bad laptop for the past 4 years, I can't disagree more whole-heartedly. I wouldn't wish that experience on my worst enemy, heh.
Though I wish more time was spent on some tools to make them more memory efficient(I'm looking at you, scala and friends), that's just not how it is today. I just bought a new laptop with 32 gigs of ram, and hopefully that is future-proof for the next few years.
A bit late reply.. but the laptop was just the cheapest laptop I could buy before starting Uni, roughly 4 years ago. I just got my new laptop a couple of days ago, and the difference is incredible.
The other guy that replied to your comment is basically right. My old laptop had a measly 4GB of RAM, and opening multiple tabs in Chrome for documentation, running an editor, some development tools like REPLs etc, and I'd basically be out of RAM. I would literally listen to music on my phone because spotify consumed too much of my precious RAM, and I had to kill off tabs that I hadn't used for a while like it was Survivor, in order to keep my laptop from start swapping(which means everything grinds to a halt).
I even run a very minimalistic window manager and don't use IDEs like IntelliJ or anything.
Not OP, but I had a similar experience. Low end development machines suck because they put the developer in a worse position than the end-user, not an equal one. Modern dev tools, plus common side-utilities like slack/spotify/skype, and accessories like Insomnia, tend to use a lot of memory and cpu. It makes the development experience terrible, and that affects your output. Developing and designing is going to be ~90% of your time spent on a dev box, actually running the dang thing won't take long at all.
A better solution would be for testing, particularly UAT, to be done inside resource-constrained VM's, instead.
You can have it both ways: power the IDE with a futuristic power hungry beefy machine, and run the programs it produces on a throttled sandbox that match the slower target machines.
I fear cheating would be too easy, though —just lift the restrictions.
I do understand the implication that lowering the need for always faster hardware for end users will slow down the pace of development of new hardware. But with the end of Moore's law upon us, that's inevitable anyway.
Our computers are plenty fast today, beyond what we could imagine when each of us started programming. Let's cut down on abstractions. Let's profile, optimize.