3 ms·
> The biggest piece is minimizing your dependencies, and limiting them to ones that value backwards compatibility Three.js, one of the most popular JS librari
by gfxgirl 5y ago
> The biggest piece is minimizing your dependencies, and limiting them to ones that value backwards compatibility
Three.js, one of the most popular JS libraries, has the explicit policy of ignoring backward compatibility.
https://github.com/mrdoob/three.js/wiki/Migration-Guide https://github.com/mrdoob/three.js/wiki/Migration-Guide
I find it not only irresponsible but arguably mean to other devs time and lives but apparently I'm in the minority.
Every time I have to spend an afternoon or evening updating stuff instead of doing something new or visiting friends etc I silently curse the devs
- jefftk 5y agoYou curse the devs who build excellent libraries and give them away for free, because they do not accept the additional burden of never making changes that would require you to adjust your usage? You could choose not to use such libraries, but as long as they're up front about it I don't see how you can hold it against them.
- gfxgirl 5y agoit upsets me because they are the only library of 100s I use that do this. They consciously break things every month. they don't give a fuck how many man hours it burns of other people's time. No other project I know of does this. It's not just time using the library. Every volunteer that wrote docs or a tutorial their work is now out of date. every answer on S.O. is more than 3-4 months old is wrong. Every new user now has the burden of trying to learn where any content they find is practically guaranteed not to work correctlt with the current version. it's mean in the extreme to piss on so many people
- fulafel 5y agoI'm sure you know this but for the record, they don't actually ignore backward compatibility, it features often as a concern in the dev discussions and they're conscious of when they break it, and there can be deprecations[1].. it's a conscious tradeoff allowing development to go faster. I'd argue Three.js beats native to make low upkeep & long lived end user (=portable) 3D apps, given all the churn, constant driver breakages necessitating new workarounds, proprietary-ness and fragmentation in 3D APIs. With Three you update to newer versions on your own time (if ever) and stuff doesn't break from under you. And in the decades long view WebGL 1 / WebGL 2 / WebGPU is used behind the scenes. [1] example: https://github.com/mrdoob/three.js/pull/21777 https://github.com/mrdoob/three.js/pull/21777