Maksym Prokopov personal blog
Idea is a something worth sharing

Digitalisation in action

06.12.2024

Reading time: 1 min.

Jokes aside, how to properly deprecate a technology?

One of the greatest talks from Rich Hickey was about making changes to software systems. Search for it with “Spec-ulation” keyword in Youtube.

Long story short, you may break or not break the system by removing something like class or function or by changing a function signature (read: parameters), changing in this context means you remove the old function with the same name and add a new one with different parameters.

The problem here, you don’t know what may call your functions. If you find the way to do this analysis, it reveals a way to safely drop unneeded parts of the code without risk of breaking the system. Which is typically very hard to achieve.

Another way to completely avoid this problem, is to accrete the code instead of removing, i.e. only by adding a new stuff without removing old. For example, you have function with the name callApi, just add a new function callApi2.

The world is little bit more complicated, and we face exactly this problem in different contexts all the time. What you see in the pic is just yet another example, in reality it’s still a problem with no simple solution.