|In any software system of significant size, it is
always possible to add extra features. Any programmer
worth his salt can always add extra bells and whistles to
his implementation. Large scale commercial companies,
which depend on selling new releases, use bells and
whistles to counteract the stagnating effects of market
saturation. Microsoft's Word is an example of this
Language design is different. In language design, adding extra features takes very little effort when the basis is firmly established. However we clutter the design when we add extra features which can already be easily implemented in the standard itself. This decision is the beginning of a move from functional efficiency, and cleanness of form to something complex and eventually overburdened.
Perlis observed this: he remarked that languages begin simply, become baroque, then rococco and eventually collapse into dust when they become overburdened with the complexities of their creators. Such a progression can be seen in martial arts, and in the art of war; where styles that were minimal and efficient become ornamented with showy detail which eventually undermine the efficacy of the fighting form.
In language design we are aiming to achieve power in economy. Adding already implementable features is not correct. It is akin to adding as an axiom, something that can already be proved as a theorem. It is not nothing, but less than nothing, to do this inside the language standard. That is, it is best avoided. Such work belongs in the library.
To take away something that already exists in the standard, withut losing any of the power of the system, is much more difficult and worthy of admiration. It is the paring away of the non-essential to reveal the underlying idea. The highest skill is to change the standard, to simplify and yet increase the power. This is true action in inaction.