2 ms·
This is a great question. I think the answer is, you, as a creative person, need to come up with good abstractions that let you present your idea well-enough wi
by js8 9y ago
This is a great question. I think the answer is, you, as a creative person, need to come up with good abstractions that let you present your idea well-enough without having to do too much work.
I have been thinking about abstraction recently (for other reasons, related to learning). To me, abstraction is transformation of the space with the problem to a space where you can easier manipulate the objects the way the problem requires it. For example, we can have image represented as pixels, and we can abstract it into lines and geometric shapes. So the operation, such as moving this triangle from here to there, that would be complicated in pixel representation becomes trivial in the more abstracted, geometric shape representation.
Back to the original point. Here are some examples of people invoking abstraction in order to solve some problem:
E.F.Codd invented relational model (abstraction) for databases. It let him solve some issues that people struggled with before (how to organize data and build queries) more efficiently.
Jeff Dean invented the map-reduce paradigm of distributed computation. The original map-reduce implementation was only about 1000 lines of code.
You can also see that abstraction has a cost - it doesn't let you do all possible operations more efficiently, just some that you might be interested in. It's a trade off that you have to make in order to present your idea to the world, to make it work. However, the point is to solve enough with the new abstraction that other people take notice and will naturally help dealing with the complexity of the edge cases.
There are many other examples of abstraction from computer science (for example, high-level languages), and even more examples in mathematics. It's how many mathematicians conduct their business - trying to come up with new abstractions (new definitions) that let you handle complicated proofs in a more straightforward way.