Ananke
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.