4 ms·
Sometimes in my career I wonder: Is this finally it? Have we finally hit the point where software will stop getting slower and chonkier every year? I can’t thin
by josephg 4y ago
Sometimes in my career I wonder: Is this finally it? Have we finally hit the point where software will stop getting slower and chonkier every year? I can’t think of sensible sounding ways to justify making software run orders of magnitude slower than it does now. And yet, I don’t know how but every time … it happens.
Java came out when I was young, with a huge JRE installation, slow startup times, GC pauses and Java Swing.
Then Electron came out, making a “hello world” gui app need 800mb of RAM. Electron makes Java feel light and nimble.
Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason.
Recently, despite the tireless work of photoanalysisd on my Mac, and Microsoft teams on windows, things were starting to get faster again. Thank goodness for you, parent commenter. I can worry no longer. I was starting to wonder if the curse might be lifted.
I can see it now. It’s 2026. My fans spin up as a 8gb neural net live-translates the UI of notepad.exe for the modern age. My $4000 graphics card is showing its age. My mouse lags while I try and click on the menu. The UI is rerendered because Microsoft couldn’t be bothered porting the windows 11 UI code to the new windows 13 UI look and feel. Windows 13 looks different yet again for no reason. So they do the translation live on my GPU instead because it’s cheaper (for them). Programmer time is still expensive. In the background ChatGPT quietly makes web requests to live-translate all the menu items into the new social media acceptable language. The start menu is now on the right.
What a time to be alive.
- avx56 4y agoI would "happily" use Windows again if every menu bar item was a very low-res AI-generated meme
- mynameisvlad 4y ago> Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason. There's plenty of reasons; it's a compromise like everything else. You trade away some performance for portability; the ability to run the same code and know your environment is identical each run is a significant pro. Docker wouldn't have gotten to where it is for no reason.
- josephg 4y agoI don’t buy the portability argument. If you want to write native io_uring code from windows, sure. But as far as I can tell, most people using docker are using it to deploy cloud services. And guess what? Nodejs, Python, Java, golang, Ruby - they all work fine natively on every platform. I suspect the popularity of docker as a local developer tool comes from convenience. It feels easier to install docker than fix your homebrew permissions, install anaconda or install a recent version of nodejs on ubuntu. And if you’re already using docker in production, you need a workflow to make docker images anyway. That and it’s trendy. Never mind that using docker makes macos sometimes not sleep properly. That it makes your program much more difficult to debug. Or that you’re throwing away 2/3rds of the performance and 1/2 of the RAM of your expensive computer in the process. Everyone else is using it. We can’t all be wrong, can we?
- mynameisvlad 4y ago> But as far as I can tell, most people using docker are using it to deploy cloud services People use docker and containers for multiple reasons. Reproducible dev environments, Unix development on Windows, etc. The biggest benefit is that your image is fully reproducible; you won't have random issues pop up because of edge cases being hit on dependency updates, you don't have to make sure your new devs install version X of tool Y for development, and you know your code will work identically each time you run `docker start`. Like all other things, it has pros and cons. You may not value reproducibility, but your assessment is just that: yours. It's ok to have, but you need to realize others value things differently. As a reminder, your argument is: > Honorable mention for docker convincing windows and macos developers to write software inside slow virtual machines for no reason. To say there's no benefit to Docker whatsoever is blatantly false. > Everyone else is using it. We can’t all be wrong, can we? If one person around you is wrong, then they might just be wrong. If everyone around you is wrong, then maybe it's you that's wrong.
- kingboss 4y agoDocker got popular because of lazy incompetent devs. Since they are the vast majority it got popular. Yes, a lot of times everybody is wrong. That shouldn't surprise you. Larry Ellison put it best: software industry is more fashion driven than the fashion industry.
- oalae5niMiel7qu 4y agoIt never stops, and it's because new guys can't understand (or are too lazy to try to understand) old code. So instead of changing it, they wrap it in new code and change the old code as little as possible. Several generations of new guys later, we arrive at present day. And that ChatGPT future you described will come to pass, unless we stop using computers first.
- mwcampbell 4y ago> Then Electron came out, making a “hello world” gui app need 800mb of RAM. By my measurement, that's an order of magnitude too high. My real-world Electron app uses ~77 MB on startup on Windows, across the private working sets of all four processes. Granted, my JS code is relatively lean, but still, we should be charitable, if only because Electron hate is so rampant here. > Electron makes Java feel light and nimble. Total rose-colored glasses. Early in my career, in late 2001, I inherited a Java-based desktop app that took so long to start that we made it start looping background music part way through the startup process (it was an audio-based app for blind people, so that was our equivalent of a splash screen). I'm confident that if we developed the same app in Electron today, it would start an order of magnitude faster on today's typical end-user hardware. Some things do get better over time. In this case, bundling of both native and JS code in Electron apps is way ahead of what we had for the JVM in 2002, basically loading lots of little .class files from several .jar files, not to mention multiple native code DLLs as opposed to the Chromium mega-binary. Of course, the JVM world now has NativeImage which is even better, but I don't think anything like that was practically available back then.