| > My worst experiences universally have always been python projects. I don't think I've had a single time where I cloned a python project and had it just work. I'm curios if you can spot a pattern in the platform (win/osx/linux), type of project, or is it all over the place? My own experience with Python boils down to creating a virtualenv, installing the deps, setting up configuration (or just copying it from somewhere) and creating a database, and I'm off to the races. The only exception in recent memory was when a project had two dozen microservices, half of the codebase was on private package repository, and we used Poetry. The combo required somewhat more involved setup. That said, IIRC all the projects had fully pinned package versions (package==x.y.z). In contrast, every time I touch something in JS land I get the same experience you described for Python. On one project we literally copied node_modules across machines (including servers), because it was unbounded amount of time trying to do a full reinstall. Anecdotally, amount of churn in JS is much higher, and the maintenance load increases proportionally. Usually it's something like: - have a project in JS with some dependency X that's no longer on the bleeding edge, but works nice - want to depend on a new package Y for some new feature - the new package Y depends on a library Z that's higher than what the other dependency (X) can work with - try to update the original dependency (X) - wailing, gnashing of teeth, and considering the switch to agriculture instead In my experience, if you're not closely tracking the bleeding edge, upgrading packages and updating your code accordingly, your JS developer experience will be abysmal. Agree on the CD part, especially the fragility and more manual work than if the deploy is some manually driven (semi-)automated process. |