Core User Manual
This manual documents the CC core software. The core is a multi-language library and framework used to build advanced applications. It is composed of language-specific collections of interconnected libraries providing an exceptionally powerful development ecosystem.
1. Introduction
Welcome to the core, the software development ecosystem of CC.
The idea of a core
is one that is quite common in software
design. It implies something that is fundamental - the machine behind
the machine, whatever the machine may be.
The core
is often the most important part of your application - the
one you want to get right. Where things get tricky is when you have
many different applications, all which have a core
, which you also
need to get right.
The natural evolution is to start abstracting away the commonalities between your application core, refactoring them into a new project. As your applications grow, new patterns appear. You keep searching for common patterns and refactoring. This pattern repeats and all is good and dandy.
That is, until your applications start to die. No matter the manner or
pace of death, there is a symbiotic link with the core
that is
broken when your application is no longer useful, or there is another
application that takes its place. As a result, the parts of your
core
that were heavily influenced by the deceased application start
to become less useful too. If left unchecked, your core will turn into
bloat.
This is not how the CC core is developed. Our core does not inherit from applications and is not dependent on them. We are not building a 'top-down' system. Instead, we build 'bottom-up' from scratch and keep our core insulated (but not completely isolated) from applications.