Designing extensible, interactive systems

Posted by vemv on Programmers See other posts from Programmers or by vemv
Published on 2012-11-19T18:09:55Z Indexed on 2012/11/19 23:22 UTC
Read the original article Hit count: 244

Filed under:
|

Steve Yegge's The Pinoccio Problem describes a very special type of program: one that not only fulfills the original purpose of its creators, but also is capable of performing arbitrary, user-defined computations.

They typically also host a console, by which one can reprogram the software on runtime, maybe persisting the modifications.

I find this problem very hard to reason about - there seems to be a conflict between implementing the 'core modules' of a program, and making the system really implementation-agnostic (i.e. no functionality is hard-coded).

So, how to architecture such a program - what techniques can help? Is it a well-studied topic?

© Programmers or respective owner

Related posts about architecture

Related posts about Extensibility