I published this article on my blog.
TLDR: Dear framework developer, please consider us, the framework users, as the unofficial maintainer of your framework. When you change things, think about the wider cost.
Warning: This is going to be a short gibberish, brain-fart and/or rant.
Recently I was migrating a project from a framework v385 to v366 and felt the pain wasting time to apply some internal refactoring the framework team did to my own project.
Imagine if I had the following functions in my code and I wanted to refactor.
const isUnicorn = (animal) => {
return hornCheck(animal)
&& !isThisCodeImaginary(animal)
&& areWeInMysticalLand();
}
const hornCheck = (animal) => animal.horns.length == 1;
const isThisCodeImaginary = (animal) => 1/0;
const areWeInMysticalLand = () => true;
Renaming any of those functions would cost me nothing. Now, if the same code was a framework, and your users defined the areWeInMysticalLand function, then changing it would be easy for you. For the users, you would leave an entry in the migration notes.
As a developer and user of the before-mentioned imaginary framework, you literally are changing your code to satisfy the refactoring the framework developers did.
Obviously this is a made up example and I don’t want to point the fingers to the poor maintainers. I just want to give you a different perspective on how to think about small changes.
With each new version of frameworks, languages, and tools around us, I wonder, when do we stop doing stuff in the name of better and improvements.
That’s it?
Yep, I don’t want to waste your and my time.
Let me go back searching the internet for why v366 gives me an error.
See ya later.
Top comments (1)
This kind of makes me think about the V2 vs v3 debate that was going on in Python land where there is a whole community of devs refusing to upgrade to version 3.
I had to migrate a project from TS 3.x to TS 5. Wasn't fun. But do we dare stand in the way of progress?