6 ms·
If this slows or stops the use of Docker in local development I’m all for it. Docker for development is a plague on this earth. It burns battery, slows builds,
by andrewguy9 6y ago
If this slows or stops the use of Docker in local development I’m all for it. Docker for development is a plague on this earth. It burns battery, slows builds, makes fan noise, eats huge amounts of bandwidth/HDD space, makes debugging a nightmare. All for what? It’s marginally better at setting up a self contained dev environment. Oh wait, Docker can’t do that; you also need docker compose.
- deleted 6y ago[deleted]
- Jtsummers 6y agoWhat's your preference instead of Docker? Just run everything on the same host OS? Nix? More conventional VMs? Servers with specific configurations?
- vbezhenar 6y agoThe question is, why docker have that overhead. Virtualizing should not be very resource-intensive nowadays, everything is optimized at CPU level.
- soraminazuki 6y agoIt's not that simple as "everything is optimized at CPU level," actually. Virtualization has very different performance impacts on different workloads.
- andrewguy9 6y agoVirtualization has pretty high overhead. 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.
- andrewguy9 6y agoForgot to mention that disk performance on docker on the Mac is a big deal for building software. This article shows overhead for a disk heavy workload: https://vivait.co.uk/labs/docker-for-mac-performance-using-nfs 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.
- andrewguy9 6y agoWhen possible I want to run my apps on OSX. It’s not always possible, but usually works. 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.
- txcwpalpha 6y ago>makes fan noise 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...
- EthanJJackson 6y agoCompletely agree. In case it's helpful, we're working on a cloud dev environment for Docker that addresses the resource issues by running containers in the cloud instead of locally: http://kelda.io/blimp http://kelda.io/blimp Of course, if you can avoid docker for local development, that's definitely easiest in many cases.
- efficax 6y agodocker on mac does indeed suck! but that's because you gotta run linux to run docker. Docker for dev on a linux box? Great stuff!
- dogma1138 6y agoDocker for Windows is pretty sweet WSL2 is even sweeter. Microsoft pretty much killed Linux on desktop for anything other than ideological reasons at this point.
- Fire-Dragon-DoL 6y agoWell, Windows forces you to use vs code remote or pay a huge performance penalty in drive performance in wsl 2,that's no little compromise.
- wayneftw 6y agoMost of the problems you listed are because you want to use a laptop to work for some reason. Ewww. Why anyone would want to optimize for working in trains, planes, automobiles, hotel rooms and meetings - I'll never understand. 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.
- ed25519FUUU 6y agoThat’s actually a good point. I’m not really sure how I’ve come to expect a laptop for development. At home I use a PC and it’s much faster in almost every way, despite being 4 years older than my laptop.
- nojito 6y ago>Why anyone would want to optimize for working in trains, planes, automobiles, hotel rooms and meetings - I'll never understand. 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.
- jen20 6y ago> Why anyone would want to optimize for working in trains, planes, automobiles, hotel rooms and meetings - I'll never understand. 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.
- bromonkey 6y agoCan't take my workstation hiking or traveling.
- pjmlp 6y agoEasy, because when one does consulting for Fortune 500 across the globe, it is expected that we code whenever we are while traveling to the next customer meeting on site. And even when not traveling, we are expected to move across the building and join other teams for collaborative work.
- ed25519FUUU 6y agoDev environments always end up with drift. That’s just the reality. 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.
- rvz 6y agoDon't forget the prospect of Electron Apps on ARM Macs. 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.
- donnacodes 6y ago*extreme nerd voice: "just use Nix"
- seek3r00 6y agoYeah, the thing is that most of us don’t have the patience of figuring out how Nix works , write derivations and stuff. Docker and Compose look pretty straightforward in comparison, at least for local development.
- soraminazuki 6y agoNix may not be straightforward to learn, but Docker isn't straightforward to use. Container orchestration is a pain to deal with, for instance.
- rkangel 6y agoThe Nix package manager solves the 'single docker container to be my build environment' thing well. nix-shell is significantly nicer to use than docker. 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.
- donnacodes 6y agototally that's a fair question. I've only been using it by building x, y, z separately and it does reduce my build times significantly. I also just love to be able to fetch binaries with absolutely no strings attached. But in terms of orchestration Docker has far easier interface with compose etc. As far as I know, Nix doesn't really have this sort of solution built in but I guess you could write a derivation where you orchestrate different binaries yourself, starting them with some sort of task manager. So far I just build the binaries with Nix and orchestrate them myself on the server
- rkangel 6y ago
- owenwil 6y agoThey showed Docker for Mac built for ARM during the keynote, and mentioned that they have been working with Docker for when macOS 11 ships, so I doubt that's going to be the case.