changelog shortlog graph tags branches changeset file revisions annotate raw help

Mercurial > org > docs / core/man.org

revision 49: 1661d499c262
parent 48: 9f2e9e647333
child 51: 8e71b315fca2
     1.1--- a/core/man.org	Sat Sep 07 22:34:47 2024 -0400
     1.2+++ b/core/man.org	Fri Sep 13 21:21:53 2024 -0400
     1.3@@ -17,30 +17,39 @@
     1.4 :PROPERTIES:
     1.5 :ID:       156ffb70-9e00-4532-be47-b921c1825a91
     1.6 :END:
     1.7-Welcome to the core, the software development ecosystem of [[comp:][CC]].
     1.8+Welcome to the *core*, the software development ecosystem of [[comp:][CC]].
     1.9 
    1.10-The idea of a =core= is probably one that you are quite familiar with
    1.11-as a developer of software. It implies something that is fundamental;
    1.12-the 'machine behind the machine', whatever the machine may be.
    1.13+The idea of a =core= is one that is quite common in software
    1.14+design. It implies something that is fundamental - the machine behind
    1.15+the machine, whatever the machine may be.
    1.16 
    1.17 The =core= is often the most important part of your application - the
    1.18 one you want to get right. Where things get tricky is when you have
    1.19-many different applications, all which have a =core=, which you
    1.20-need to get right to avoid embarassment.
    1.21+many different applications, all which have a =core=, which you also
    1.22+need to get right.
    1.23 
    1.24 The natural evolution is to start abstracting away the commonalities
    1.25 between your application core, refactoring them into a new project. As
    1.26-your applications grow, you keep searching for common patterns and
    1.27-refactoring. The circle of life goes on.
    1.28+your applications grow, new patterns appear. You keep searching for
    1.29+common patterns and refactoring. This pattern repeats and all is good
    1.30+and dandy.
    1.31+
    1.32+That is, until your applications start to die. No matter the manner or
    1.33+pace of death, there is a symbiotic link with the =core= that is
    1.34+broken when your application is no longer useful, or there is another
    1.35+application that takes its place. As a result, the parts of your
    1.36+=core= that were heavily influenced by the deceased application start
    1.37+to become less useful too. If left unchecked, your core will turn into
    1.38+bloat.
    1.39 
    1.40 This is *not* how the CC core is developed. Our core does not inherit
    1.41-from applications. It is not a 'top-down' system. Instead, it is built
    1.42-'bottom-up' from scratch and kept insulated (but not completely
    1.43-isolated) from applications.
    1.44+from applications and is not dependent on them. We are not building a
    1.45+'top-down' system. Instead, we build 'bottom-up' from scratch and keep
    1.46+our core insulated (but not completely isolated) from applications.
    1.47 
    1.48-This design decision is rooted in a philosophy which favors the
    1.49-developer, or more specifically the /hacker/ over all other
    1.50-stake-holders in our systems.
    1.51+** On Lisp
    1.52+
    1.53+** On Rust
    1.54 
    1.55 * Overview
    1.56 :PROPERTIES: