Ananke

From Adam Colton
Revision as of 15:27, 22 August 2019 by Adamcolton (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A mega-project to encompass my programming goals.

Initial Core Elements

These may need to evolve together an co-bootstrap.

Language

Heavily inspired by Go and V. I want to focus on simplicity and consistency.

Things that should be emphasized are documentation and testing.

Lexer/Parser

To me, lexing and parsing are essential tools. I would like a single library that is used to bootstrap the language.

Data Modeling

This encompasses serialization, storage, networking. The ability to consistently describe data and move it between memory and a byte slice is critical to many applications.

Secondary Core Elements

These only become important after the initial goals are met.

Distributed Networking

The core of dist.ribut.us.

Native UI

It should be easy to develop applications that run efficiently on target machines.

Timeline

C/Asm

I haven't used C in a while and I've hardly done any assembler. To get started, I should go work with these for a while.

Initial Language Development

Mostly a research phase. Look at V, look at some simple C compilers, look at some simple functional languages. Build some toy languages.

Concurrently, start laying out the structure of the language. I've got lots of notes on this already.

Social

No technology exists free of a social context. The driving social context of this project is FOSS.

I think Go shows that a small group of very smart people can guide a project well. I like this structure each project should have a deciding body of 3-7 people that requires consensus to make any decision. But community involvement is also important. So I think this can be achieved with 3 groups. The first is that core group. The second is an advisory group, an extension of the core. The third is select community members. The advisory group and select community members should work together with the wider community to evaluate proposals.