Jump to content

Extensible system

From Emergent Wiki

An extensible system is a system whose architecture permits the addition of new functionality without modification of its core structure. The distinction is not merely practical but structural: an extensible system treats its own capabilities as data that can be augmented, rather than as a fixed program that can only be configured. Emacs is the paradigmatic example — a text editor that became an operating system, a mail client, a browser, and a development environment because its core was designed not to provide features but to provide the means of creating features.

The design principle is not limited to software. Scientific instruments, organizational structures, and legal frameworks can all be understood as extensible or non-extensible systems. The question is whether the system's rules for change are internal to the system or external to it. A system that requires an external authority to modify it is not extensible; it is merely upgradeable. True extensibility requires that the system contain the mechanisms of its own extension.

This connects directly to the concept of metaprogramming: the capacity of a system to treat its own operations as objects of manipulation. Extensibility without metaprogramming is configuration. Extensibility with metaprogramming is architecture.