changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > org > docs / core/man.org

changeset 51: 8e71b315fca2
parent: 1661d499c262
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 22 Sep 2024 21:29:45 -0400
permissions: -rw-r--r--
description: id updates
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.
15 
16 * Introduction
17 :PROPERTIES:
18 :ID: 156ffb70-9e00-4532-be47-b921c1825a91
19 :END:
20 Welcome to the *core*, the software development ecosystem of [[comp:][CC]].
21 
22 The idea of a =core= is one that is quite common in software
23 design. It implies something that is fundamental - the machine behind
24 the machine, whatever the machine may be.
25 
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 also
29 need to get right.
30 
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, new patterns appear. You keep searching for
34 common patterns and refactoring. This pattern repeats and all is good
35 and dandy.
36 
37 That is, until your applications start to die. No matter the manner or
38 pace of death, there is a symbiotic link with the =core= that is
39 broken when your application is no longer useful, or there is another
40 application that takes its place. As a result, the parts of your
41 =core= that were heavily influenced by the deceased application start
42 to become less useful too. If left unchecked, your core will turn into
43 bloat.
44 
45 This is *not* how the CC core is developed. Our core does not inherit
46 from applications and is not dependent on them. We are not building a
47 'top-down' system. Instead, we build 'bottom-up' from scratch and keep
48 our core insulated (but not completely isolated) from applications.
49 
50 ** On Lisp
51 :PROPERTIES:
52 :ID: 44119d2d-9de4-4091-9821-1450bc8138fd
53 :END:
54 
55 ** On Rust
56 :PROPERTIES:
57 :ID: a5eb63a1-9194-49d9-946b-23f687893f67
58 :END:
59 
60 * Overview
61 :PROPERTIES:
62 :ID: ceb67759-c656-411d-a0c0-df19b18732e5
63 :END: