4 ms·
Absolutely this. Even the base dev environment is often an exercise in madness. I loathe every new iOS version because Xcode will break my code in new and inter
by kstenerud 9y ago
Absolutely this. Even the base dev environment is often an exercise in madness. I loathe every new iOS version because Xcode will break my code in new and interesting ways, requiring me to recheck every single library I've developed to make sure they still compile (often they don't) and run (almost always they don't).
And then, once I've got that headache handled, I update the version number, type 'pod lib lint', and watch all the new and interesting ways that cocoapods has broken things since I last used it.
Every 3rd party component you rely on is something that WILL break as soon as you need to rebuild your project.
- oblio 9y agoNot necessarily. People make fun of Java, but any half decent Java place, especially the ones using Maven, won't have this problem. Maven is quite verbose and it forces you to pin a lot of things down. Where it doesn't outright force you, the general practices are to pin them regardless. All the dependencies are in the same immutable Maven repo (or your own proxy/cache), all the build tool extensions/plugins/etc. are there as well. Java is generally very good at backwards compatibility, as is Maven itself. So you can come back a few years later and do a : mvn clean install and things will work. Of course, humans are fallible and things could still break due to various factors, but in this sense the ecosystem helps you and either offers stability already bundled it or guides you towards achieving it. The downside: Maven is boring. Developers don't like boring :)
- zamber 9y agoIn JS world we got a package lockfile fairly recently. Locking your own package.json version wasn't enough because packages have deps too. Beforehand running npm install on newly checked out repos was a gamble, especially given that we have packages for every minute "feature" like leftpad (which is a horror story of its own).