What does the term "forward compatibility" and "backward compatibility" mean?

9

I have seen these two terms in English, being used to refer to the compatibility of some language, library, and related functionality.

What does backward compatibility really mean forward compatibility ?

Is this related to software development, library and the like, or is it also used in other situations?

    
asked by anonymous 06.04.2017 / 18:17

1 answer

7

Backward compatibility is something that is compatible with previous versions of that component or with other components already in existence, so this new component can perfectly converse or replace existing components. In general we are talking about something that continues to be able to do the same things you did before, invoking the same way, even if you change the implementation or add something new. If this compatibility is broken you will probably need maintenance or behavior change. This is considered loss of functionality that may displease the user.

Forward compatibility is the component's ability to communicate with other components that are yet to come. Usually it is a preparation so that the exact form of the data that he will receive does not have to be in such a specific way, only obeys certain contracts. One of the most commonly used techniques is " programming interface-oriented rather than implementation ." Some design patterns are useful for forward compatibility.

You've probably seen this about browser compatibility. In general web technologies are made so that novelties in them do not cause problems in old renderers, they are only ignored.

This works great for software development, but can also be used for hardware or other fields.

    
06.04.2017 / 18:34