Abstraction is mostly destructive, try to create diverse views instead!

As pointed out by Andrew Koenig, “abstraction is selective ignorance”; Suddenly, abstraction feels like bad thing. Probably Andrew is right: abstraction is a very limited mean to reduce complexity. But reducing complexity at all is not a bad thing, so where is the difference?

Abstraction provides a simplified view to an initially more complex concept. Purposely ignoring some features that may avoid overwhelming clients. Not essentially bad, or?

The problems begin when clients start living in the abstraction world. That is, like living in a world without telescopes, microscopes and most doors closed, feeling like in a computer game where the movement space is limited to the paths the inventors created.

In the context of software development we are the inventors. So to provide more space we may provide more diverse views instead. But as you surely imagine, this is a process which is very costly and so we stall and provide merely the interfaces that are actually required by our clients.

So, abstraction is not productive at all! It is probably a crucial and a mostly passive evolutionary concept to save energy and to provide a good solution at a reasonable cost.

Going with my feelings again, this is basically fulfilling the requirements of our destiny. And so I think creativity – remember the state of flow we all look for – is different. Abstraction is destructive, creativity is constructive.

But why must creativity be so hard?

I think it is not, but we have to rethink some doctrines, probably avoiding abstraction at all by inverting our software construction principles.

Genetic algorithms already moved in that direction, sadly they are not usable when deterministic interfaces are required.

Hopefully, we will soon be able to use an inverted software construction process that allows us to express formalisms and visualizations of diverse views inside a central creativity environment powerful enough to create provable and deterministic software at instant and implicitly!

Free the concepts…