The Law of Leaky Abstractions

Abstraction is hiding infomation to simplify a task. In most cases, abstraction is doing well. But in some cases, something inside abstraction layer can go wrong and make the abstraction fail, user have no ideas what is going on as the detail is hidden. The only way to fix it is to check the implementation of the abstracted layer. Therefore, abstraction fail to save us from complexity.

Paradox

Programmers want to make programming easier by providing abstraction, but become a proficient programmer is getting harder. Programmer have to understand all related abstraction layer to solve bugs caused by leaky abstraction. At the end, programmer cannot escape from understand the detail of abstraction layer.

Next Action

Need to have broaden our knowledge in different abstraction layer, otherwise, we will get stuck when there is leaky abstraction.

Reinvent the wheel is not encouraged, but understand why and how a wheel is invented is useful. To understand that, reinvent the wheel is a efficient way. Bare in mind everytime we going to reinvent the wheel: focus on learning, not building.