9 ms·
My preferred fix: don't develop in Docker.
by EdwardDiego 4y ago
My preferred fix: don't develop in Docker.
- sieabahlpark 4y agoHave fun managing osx and Linux dependencies then when you could just maintain one.
- notwokeno 4y agoWhen I used to use a mac I just put all my "Linux" (GNU really) dependencies in a prefix and that worked pretty well. Docker is kind of overkill for what people use it for IMO.
- deleted 4y ago[deleted]
- dhritzkiv 4y agoI used to be on the side of relying on native tools/libs, and managing them in a similar way to what you to describe, but it all became too much to handle, with dependencies across projects breaking with regularity. Maybe I wasn't doing it right, but switching to Docker to sequester my projects and their dependencies has saved me so much time and hassle, especially with the amount of repos I work on throughout the year. My biggest weakness today is that I still don't reach for Docker right away when starting work on a new project or when evaluating a new tool. Old habits…
- notwokeno 4y agoMy point was that you can do this without docker. On Linux you can use separate chroots for each project, on OSX you could probably do that too but since prebuilt tools for generating a darwin rootfs are rarer prefixes are easier.
- rablackburn 4y agoI knows it’s becoming a bit of a meme now that modern software development is just rediscovering approaches from the 70s… but it has really hit me recently how so many “indispensable” projects are just something that’s existed for decades re-written at a higher abstraction-level with a nicer UX. I wish I had more classic Unix sysadmin experience. But unfortunately the gains are real, and I can’t justify investing time into learning the older tech (let’s say, using chroot instead of docker), when the newer is so much faster to learn, and has (comparative to modern hardware) such small overhead (if you’re not on MacOS :P) I am excited about the rust-rewrite movement for shell though - precisely because it’s a chance to bring all the ux lessons we’ve learned in the last decades to cli-tools. Stuff like charm.sh is super exciting.
- princevegeta89 4y agoAnd also there is some additional fun dealing with broken or incompatible packages whenever you upgrade OSX
- pjmlp 4y agoIndeed, one can maintain only a macOS application.
- nicoburns 4y agoIn the languages I work with (primarily JavaScript and Rust), cross-platform compatibility tends to be pretty much a non-issue. I develop on macOS, deploy on Linux, and it Just Works. No extra work required.
- sieabahlpark 4y ago[dead]
- nsonha 4y agoYou forget to mention all backend services (db, redis etc are managed and you need internet connection and cloud credentials for even a development workflow.
- nicoburns 4y agoI certainly do not use backend services that need to be hosted (if I can at all help it, which I usually can). Open source databases like Postgres and Redis are easy to install on macOS with homebrew. You can even have multiple versions install simultaneously, although I've found that Postgres tends to be backwards compatible enough that I just run everything on the latest version.
- acdha 4y agoThat really hasn’t been an issue for me since Homebrew came out a decade ago - using Python, Rust, Node, Java, etc., all of which have mature stories for cross-platform development. The main area I’ve run into problems are legacy projects where it’s not “Linux” but more like “one old Linux distribution with a 32-but binary nobody can reproduce” and Docker is really the least troublesome part of those projects.
- Spivak 4y agoIf you're not IT, god speed y'all, then it's not all that bad honestly. I set up my stuff with Ansible and 90% of the "porting" work was the mapping between rpms and brew packages. The only headache I get sometimes is because I have the GNU utils first in the path which makes compilation scripts mad sometimes.
- sieabahlpark 4y ago[dead]
- thunky 4y agoMy preferred fix: don't develop in Mac.
- princevegeta89 4y agoUnfortunately Mac is the best in terms of hardware and portability and for compliance stuff
- jrib 4y agoyeah, I really wanted to buy a Linux laptop. I highly value battery life though and the m1 chip doesn't really have a competitor in that department.
- devmunchies 4y ago> the m1 chip doesn't really have a competitor in that department the m2 chip :)
- vforvendettador 4y agoFor many Mac is the only sensible option. There's one developer in our company that uses Linux and it's a lot of pain to setup. Mac has the best balance between coding, utility tools and "other work stuff". Windows probably on par if not more for "work stuff" but falls badly in the coding & tooling department. Linux is OK ish for coding and utility but falls behind for "other work stuff" and certainly a pain to just keep it updated. So in our company, everyone in the development & support team uses Mac (except this one guy who insisted in Linux), most in the sales & marketing team use Windows.
- zamalek 4y ago> everyone in the development & support team uses Mac (except this one guy who insisted in Linux), > certainly a pain to just keep it updated. > Linux and it's a lot of pain to setup. If you're not using Linux, how are you justifying these claims? > certainly a pain to just keep it updated. Excluding the boot time for both, MacOS takes between 15 and 45min to update. Linux is a few seconds. I suspect that the only OS that has a more ridiculous update process than MacOS is Gentoo.
- RockRobotRock 4y agoThis is an unhelpful and useless comment
- mdavidn 4y agoAnd so is yours? I do often find myself wondering whether Docker saved developers or system administrators any time. Is Docker really better than building an AMI and provisioning EC2 instances on-demand?
- nsonha 4y agoYou provide multiple cloud environments for every dev?
- RockRobotRock 4y agoYes, I'm sure my wallet would be very happy with me running 20 different EC2 instances for small apps and databases.
- jeppester 4y agoAs a developer I can say that docker is saving me a lot of time that I would have otherwise spent on setting up different versions of postgres, redis, elastic search, etc. For the variety of client solutions we are building. With a docker compose file in place, all I need to do is run "docker-compose" and everything is up and running. It's such an upgrade over what we had before.