User Extensible Software

This is a space to explore some concepts behind software that can be extended and modified by the user.

Roughly speaking, this is my working definition of “User Extensible Software” or UES:

Software that a non-developer can make function differently and extend in ways not planned for by the original developers, without access to nor modification of the source code or anything else that runs in the main execution process.

Or, more plainly, user extensibility seeks to answer the common question:

How much can we do without a developer?

First, it’s key to understand this point:

What is "Root Access"?

Now, knowing that, let’s talk about how UES is different than “normal” extensibility, then some definitions that make it easier to discuss.

"Extensibility" vs. "User Extensibility"

Definitions

Examples of methods and features that vendors might use to make their software user extensible, in loose order of frequency:

Unintegrated Notes

Random notes and links that I haven’t integrated into any other content in this section. I’ll might remove some of these as I evaluate them and move them into other resources.

Experiments