A federated system for programming and sharing information

26 Sep 2023

A new beginning

In this blog I will document the development of Dokmelody.

Dokmelody is both a programming language (Dok), a knowledge-base (Doknil), an IDE (Tuttology) and a way for pubblishing information on the internet (Dokmelody).

I started the implementation of Dokmelody using Common Lisp, because it is a very fun language to use, thanks to its interactive REPL.

Instead of Git, I’m using Sapling, because it a lot easier to use. Sapling can freely push/pull from/to ordinary Git branches, so I can collaborate with other programmers using Git. GitHub repository is the reference repository.

For the documentation, I’m using DITA, because I like the way you can navigate in documentation.

I decided to use the Rc Plan9 Shell instead of a more standard Unix Shell like Bash, because it is simple to use and it has a sane default behavior.

I decided to use a redo build system, respect a traditional “make-like” approach, because it is a very natural and powerful top-down specification of the build tasks. This approach is more similar to normal code, because every part of a build is like a function that can call other functions.

I selected a MIT License, respect a LGPL-v3+, because it makes more sense for a programming language using many macro. The details about the decision are described in ADR-003: Use MIT and CC-BY-4.0 licenses: