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 |
48
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
1 | #+title: Core User Manual |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
2 | #+author: Richard Westhaver |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
3 | #+email: ellis@rwest.io |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
4 | #+property: header-args :dir ~/comp/core/ |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
5 | #+setupfile: ../../clean.theme |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
6 | #+texinfo_filename: core.info |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
7 | #+texinfo_dir_category: Software development |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
8 | #+texinfo_dir_title: Core: (core) |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
9 | #+texinfo_dir_desc: CC Software Development Ecosystem |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
10 | This manual documents the [[comp:][CC]] [[vc:core][core]] software. The core is a |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
11 | multi-language library and framework used to build advanced |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
12 | applications. It is composed of language-specific collections of |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
13 | interconnected libraries providing an exceptionally powerful |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
14 | development ecosystem. |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
15 | |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
16 | * Introduction |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
17 | :PROPERTIES: |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
18 | :ID: 156ffb70-9e00-4532-be47-b921c1825a91 |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
19 | :END: |
49 | 20 | Welcome to the *core*, the software development ecosystem of [[comp:][CC]]. |
48
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
21 | |
49 | 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. |
|
48
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
25 | |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
26 | The =core= is often the most important part of your application - the |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
27 | one you want to get right. Where things get tricky is when you have |
49 | 28 | many different applications, all which have a =core=, which you also |
29 | need to get right. |
|
48
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
30 | |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
31 | The natural evolution is to start abstracting away the commonalities |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
32 | between your application core, refactoring them into a new project. As |
49 | 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. |
|
48
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
44 | |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
45 | This is *not* how the CC core is developed. Our core does not inherit |
49 | 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. |
|
48
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
49 | |
49 | 50 | ** On Lisp |
51 | 51 | :PROPERTIES: |
52 | :ID: 44119d2d-9de4-4091-9821-1450bc8138fd |
|
53 | :END: |
|
49 | 54 | |
55 | ** On Rust |
|
51 | 56 | :PROPERTIES: |
57 | :ID: a5eb63a1-9194-49d9-946b-23f687893f67 |
|
58 | :END: |
|
48
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
59 | |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
60 | * Overview |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
61 | :PROPERTIES: |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
62 | :ID: ceb67759-c656-411d-a0c0-df19b18732e5 |
9f2e9e647333
core documentation and stats
Richard Westhaver <ellis@rwest.io>
parents:
diff
changeset
|
63 | :END: |