Language Shield

A Language Shield is some feature of a programming language put in to hide what you are doing, to give you protection, something to hide behind to give you room to change your mind, perhaps. As opposed to Design Shield, which serves the same purpose, but is not provided by the language but by program design.

Could it be that most Language Shields were Design Shields before they migrated into the language? See Design Shield for a discussion.

See also Shield Pattern by Alistair Cockburn, where I first read the term "shield". -- Falk Bruegmann


Some examples would be helpful. Perhaps ...

automatic register allocation

floating point representation

parameter binding

method dispatch

In C++,

private members

the mutable keyword (enables Conceptual Constness)

More?

Deep orthogonality and consistency in the language. For example:

In Small Talk, everything's a message.

In the Lisp Language, everything's a list or a function.

When all implementation strategies look the same, you don't need to worry about which one an object uses.

See original on c2.com