iOS and iPadOS never had the chance to run Electron-apps given they would be killed by the OS as it would eat up the RAM sideways. 16GB of RAM will still not be enough for it. Maybe it will run just fine, but hardly usable or "Desktop performance" like.
This makes me appreciate the iOS/iPad app compatibility on ARM Macs as a way to escape some apps that don't need to use Electron.
Docker is here to stay because it simplifies too many painful things, and now it has industry momentum behind it. Even our mostly non-software-engineer data scientist are shipping their own containers to prod with ease.
Besides, there’s nothing to say you can use both if that’s your preference.
The scripting environment managers have made big improvements in the past few years. Nvm/virtualenv/rvm give me 90% of the docker value prop with none of the performance impact or debug hassle.
Haskell/clojure/java all seem platform agnostic out of the box.
C/C++ is probably still a hassle with libs being platform specific.
But on the Mac you have to pay the virtualization overhead to run Linux in a VM, then compound the docker overhead on top of that.
On MacBook Pro this is problematic because it eats battery and contributes to thermal problems.
This article shows overhead for a disk heavy workload: https://vivait.co.uk/labs/docker-for-mac-performance-using-n...
He gets 7 second load time natively, but a 56 second load on docker with inconsistent drive link.
Microsoft pretty much killed Linux on desktop for anything other than ideological reasons at this point.
I couldn't help but chuckle at including this particular gripe in a list of otherwise very impactful downsides of docker. I mean, I hate it when my laptop starts sounding like a jet engine too, but...
Of course, if you can avoid docker for local development, that's definitely easiest in many cases.
How is it for the docker-compose 'I need x, y, z running' use case? It's not something I need that much, there are various shell.nix hacks I've seen to (e.g.) get Postgres running for Elixir development. They work, but it's not as rich an approach as the rest of Nix.
Docker and Compose look pretty straightforward in comparison, at least for local development.
I've never had any of these problems with my very inexpensive tower computer, which I upgraded to 32gb of RAM and terabytes of disk space, that was probably a third of the cost of your laptop.
It shouldn't take much understanding - many people work almost exclusively in those environments. Consultants, customer engineers, 'digital nomads'.
Then there's the group of us who would rather the (frankly epic) advances in hardware went towards actual visible software performance improvements instead of more layers of waste.
I know most devs are hesitant to try anything that's "always online", but remote development apps have really gotten better recently. VSCode with the Remote extension makes doing development on a VPS a breeze, and unless you have a really bad internet connection, you probably won't even notice it's remote. And then you also get the benefits of the VPS having a faster internet connection (faster package downloads, etc), most likely better specs than your laptop for only $10-15/mo, more resiliency, and better security. It also completely solves the whole "my laptop is ARM but my servers are x86" problem that keeps getting talked about.
Because a lot of development requires only a couple cores, maybe 8GB of RAM, and a few free GB for the database or dataset (at most, probably a few hundred free MB). If you aren't simulating large networks, doing serious number crunching (HPC-styled or ML), or into graphics heavy development, a laptop is more than enough for most work.
I want to say most, but that's an assumption on my part, but a lot of computing is about encoding business rules that could be done by passing paper around an office or larger complex and making it digital (though obviously not with the speed and reliability that's often wanted or needed). Message passing, filtering, connecting to databases, verifying data integrity, connecting multiple DBs and auto populating them, etc. None of that requires a powerful computer to develop.
Even the embedded work I've done is really just business rules for safety critical systems: If this reaches some temp, send a signal to the pilot, pilot can optionally release halon. If pilot sends "release halon", then release the halon. Nothing about that or the target platform (16MHz processor with memory measured in KB, maybe double-digit MB) required a powerful computer for development considering that the earlier versions were written on, maybe, 386s.
Just because you do things that require lots of RAM, disk space, and fast cores don't assume everyone else needs that. I used to do a lot of graphics work, and the laptop barely did the job. A full tower was what I needed (especially as I wanted to use CUDA and/or OpenCL and move a lot of numeric work associated with it to the GPU). If I were doing machine learning I'd be in that same boat. But I'm not, most of us aren't.
Because being stationary isn't that great for creativity and problem solving.
Additionally, there are whole careers being made on the ability to work while on the move.
And even when not traveling, we are expected to move across the building and join other teams for collaborative work.