Abstractions and metadata are the future of architecture in systems engineering, as they were before in software engineering. In many languages, there are abstractions and metadata; however, systems engineering has never adopted this view. Systems were always thought of as too unique for any standard abstractions. Now that we’ve standardized the lower-level abstractions, we’re ready to build new system-level abstractions.
There be dragons
When discussing abstractions, starting with a healthy dose of skepticism is important. Andrew Koenig stated, “Abstraction is selective ignorance.” And Joel Spolsky coined the term “Law of Leaky Abstractions” when he described how all abstractions leak that which they abstract.
Know that you’re choosing to be ignorant of a system when you abstract it. This doesn’t mean everyone is ignorant of the underlying system, but it does mean you’ll have less insight into the system.
Read more at OpenSource.com