React of the package manager world
Originally written by Andrey Popp with Jordan Walke
… just like React re-invented UI development.
I'm really upset about the state of developer tooling - it's 2019 and it's ending already! I think how we approach installing tools on our machine is fundamentally broken. (A thread/rant)
— Manas (@ManasJayanth) December 12, 2019
(1/)
Tools are globally installed and updated in-place
Everyone thinks the best way to get someone to install their tool is npm i -g <your_cli_tool>. Replace npm with your favourite system wide package manager (apt? brew? choco? Oh wait, install the tool via npm but expect one of the deps to be installed by brew?)
— Manas (@ManasJayanth) December 12, 2019
(2/)
We forget that we do not control the state of our target machine - neither the PATH, nor the LD_LIBRARY_PATH or basically any environment variable that our cli binary needs.
— Manas (@ManasJayanth) December 12, 2019
(3/)
What did React (and the other UI libs/frameworks that followed) teach us? Why not make dependency world of our system a pure function of a manifest file (package.json) and a set of lock files?
— Manas (@ManasJayanth) December 12, 2019
(6/)
Packages written in one language dont install with another
Remember node-sass? If only the maintainers received a cent for every time someone complained why it wouldn't install on their system. Developers of native software are not at fault for not being able to guess the system state of your machine.
— Manas (@ManasJayanth) December 12, 2019
(7/)
See https://t.co/6zQOzuzQDj
jordwalke (@jordwalke) December 17, 2019
It doesn t have to be this way!
I'm @ManasJayanth on twitter.
You can email me at hello [at] manas-jayanth [dot] com
These slides can be found at slides.manas-jayanth.com