1 #+title: Core User Manual
2 #+author: Richard Westhaver
3 #+email: ellis@rwest.io
4 #+property: header-args :dir ~/comp/core/
5 #+setupfile: ../../clean.theme
6 #+texinfo_filename: core.info
7 #+texinfo_dir_category: Software development
8 #+texinfo_dir_title: Core: (core)
9 #+texinfo_dir_desc: CC Software Development Ecosystem
10 This manual documents the
[[comp:][CC]] [[vc:core][core]] software. The core is a
11 multi-language library and framework used to build advanced
12 applications. It is composed of language-specific collections of
13 interconnected libraries providing an exceptionally powerful
14 development ecosystem.
18 :ID: 156ffb70-9e00-4532-be47-b921c1825a91 20 Welcome to the core, the software development ecosystem of
[[comp:][CC]].
22 The idea of a
=core= is probably one that you are quite familiar with
23 as a developer of software. It implies something that is fundamental;
24 the 'machine behind the machine', whatever the machine may be.
26 The
=core= is often the most important part of your application - the
27 one you want to get right. Where things get tricky is when you have
28 many different applications, all which have a
=core=, which you
29 need to get right to avoid embarassment.
31 The natural evolution is to start abstracting away the commonalities
32 between your application core, refactoring them into a new project. As
33 your applications grow, you keep searching for common patterns and
34 refactoring. The circle of life goes on.
36 This is
*not* how the CC core is developed. Our core does not inherit
37 from applications. It is not a 'top-down' system. Instead, it is built
38 'bottom-up' from scratch and kept insulated (but not completely
39 isolated) from applications.
41 This design decision is rooted in a philosophy which favors the
42 developer, or more specifically the
/hacker/ over all other
43 stake-holders in our systems.
47 :ID: ceb67759-c656-411d-a0c0-df19b18732e5