changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > docs / annotate 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
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
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
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
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
22
 The idea of a =core= is one that is quite common in software
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
23
 design. It implies something that is fundamental - the machine behind
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
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
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
28
 many different applications, all which have a =core=, which you also
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
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
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
33
 your applications grow, new patterns appear. You keep searching for
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
34
 common patterns and refactoring. This pattern repeats and all is good
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
35
 and dandy.
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
36
 
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
37
 That is, until your applications start to die. No matter the manner or
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
38
 pace of death, there is a symbiotic link with the =core= that is
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
39
 broken when your application is no longer useful, or there is another
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
40
 application that takes its place. As a result, the parts of your
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
41
 =core= that were heavily influenced by the deceased application start
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
42
 to become less useful too. If left unchecked, your core will turn into
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
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
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
46
 from applications and is not dependent on them. We are not building a
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
47
 'top-down' system. Instead, we build 'bottom-up' from scratch and keep
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
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
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
50
 ** On Lisp
51
8e71b315fca2 id updates
Richard Westhaver <ellis@rwest.io>
parents: 49
diff changeset
51
 :PROPERTIES:
8e71b315fca2 id updates
Richard Westhaver <ellis@rwest.io>
parents: 49
diff changeset
52
 :ID:       44119d2d-9de4-4091-9821-1450bc8138fd
8e71b315fca2 id updates
Richard Westhaver <ellis@rwest.io>
parents: 49
diff changeset
53
 :END:
49
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
54
 
1661d499c262 style updates
Richard Westhaver <ellis@rwest.io>
parents: 48
diff changeset
55
 ** On Rust
51
8e71b315fca2 id updates
Richard Westhaver <ellis@rwest.io>
parents: 49
diff changeset
56
 :PROPERTIES:
8e71b315fca2 id updates
Richard Westhaver <ellis@rwest.io>
parents: 49
diff changeset
57
 :ID:       a5eb63a1-9194-49d9-946b-23f687893f67
8e71b315fca2 id updates
Richard Westhaver <ellis@rwest.io>
parents: 49
diff changeset
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: