zcore is a utility/library/programming paradigm where applications are designed via small utility modules, and are tied together with one central "core" module. Each one of these modules represents a specific operational function (possibly using one C function, or a small library of C functions that performs one given task). Because these modules are loaded into memory at run time, and can also be removed from memory at any time, they are similar to "hot-swapable" devices in a laptop or desktop computer. During a program's operation, a new version of the program (or perhaps just certain modules within that program) might be released. Traditionally, this would entail shutting down that program, performing the upgrade, and then starting it back up--that is, starting the new version up in place of the old. With hot-swapable modules, all that would need to be done would have the old modules removed from memory and the new ones loaded into memory. Please read a simple explanation as a metaphor for a simplified view of what zcore is attempting to do.
What can zcore do for me?
If you're an end-user, zcore can provide the ability to have the software
you use automatically upgrade itself when a new version is released,
while the current version is still running. Any zcore-enabled program
will be able to make use of the zcore component map
to locate and install newly released versions of its components,
automatically!
If you're a software developer, zcore provides you with the ability to
widely distribute important bug fixes, functionality enhancements, or any
other product upgrade passively. By using the zcore component map, your
software could be coded to automatically contact your component
distribution server every hour, every day, every week, or however often
you want. Once connected, the software would look for newer versions of
the components it uses and, if it finds any, automatically download and
install them.
Another option would be to simply distribute the core module for your
application, and have zcore search out and locate the newest versions of
the components it requires, saving you from distribution costs.
An exciting possibility zcore provides is the ability for programs to modify their own operation. Proprietary information about the operation of certain aspects of the program could be recorded, and later used to customize the behaviour of a specific module or group of modules. This automatic customization could result in quicker response times, faster computation rates, automatic enhancement that could take advantage of new system parameters, or perhaps even automatic bug fixes. "Smart" programs might "learn" how to perform a given operation more efficiently than was originally coded, and thus rewrite and install code to take advantage of this knowledge.