Happy new year HN! After a few late nights this past week, I've finally got this one over the finish line just in time to kick the year off.
I'm happy to answer any questions that might pop up...
Some things of note:
Built-in P2P Mesh Networking
Listen on "/ip4/0.0.0.0/tcp/8080". Connect to "/ip4/192.168.1.5/tcp/8080". Sync counter on "game-room".
That's all you need for libp2p, QUIC transport, mDNS discovery, GossipSub pub/sub
Full conflict-free replicated data types: - GCounter, PNCounter — distributed counters - ORSet with configurable AddWins/RemoveWins bias - RGA, YATA — sequence CRDTs for collaborative text editing - Vector clocks, dot contexts, delta CRDTs
Wrap any CRDT in Distributed<T> and get: - Automatic journaling to disk (CRC32 checksums, auto-compaction at 1000 entries) - Automatic GossipSub replication to all peers - Unified flow: Local mutation → Journal → Network. Remote update → RAM → Journal. - Survives restarts, offline nodes, network partitions.
Go-Style Concurrency - TaskHandle<T> — spawnable async tasks with abort - Pipe<T> — bounded channels (sender/receiver split) - check_preemption() — cooperative yielding every 10ms for fairness
There's more... but those are my personal favorite features.
I've put a good bit of work into this, so I hope you all can appreciate and maybe find some uses for it here on my favorite place on the interwebs!
Oh, I'm glad this got picked up! I posted it on New Years day and wasn't sure if it was going to be!
As a bit of background on myself and my goals/targets with this.
I started my career as an embedded software developer writing uCos-III for an RTOS working on medical devices for Cardinal Health where I primarily worked on enteral feeding pumps. From there, I spent a couple years in fintech, before trying my hand at my first startup where I co-founded a company in the quick commerce space. (Think similar to Doordash Dashmarts). When that fell apart I took a job at Hasura where I wrote GraphQL to SQL transpilers and other neat things for about 18 months. I've worked across a few different domains and the motivation behind writing this language is that I am preparing to teach my 13 year old brother how to code and wanted something I could get low level with him on, without losing him altogether.
This is a dual-purpose language and has a dual-AST, and the things I'm currently working on... having switched gears towards spending a couple days on the Logical side of things are adding an actual prover to the Logical AST. I'm getting ready to add a derivation tree struct and incorporate the ability to use a solver to do things like Modus Ponens, Universal Instantiation, etc. I also want to upgrade the engine to be able to reason about numbers and recursion similar to Lean with inductive types.
This is an early access product, it is free for students, educators, non-profits, orgs with < 25 people, and individuals.
It would make my day if I could get some rigorous HN style discussions, and even the critiques!! The feedback and discussions are invaluable and will help shape the direction of this effort.
What a lovely surprise doing my daily HN check before bed and seeing this post. :)
EDIT: I will read and respond to comments when I get up in the morning, feel free to ask questions! Or make suggestions.
i also built something in this space, but English to any language. it is also self hosting (the "compiler" itself is built from an English language spec and chilled to several language implementations). supports any LLM backend including llama.cpp: https://github.com/khimaros/enc -- designed for Makefile driven workflows, mimicking the 'cc' CLI. many examples in the repo.
I get Applescript PTSD from this. Could never remember the "easier natural" way to write even small pieces of code correctly in it.
Reinventing COBOL?
OMG this is so fascinating. We were taught LOGO in school for a year when we were kids
At first I thought this was going to be some LLM thing. I had an idea a while ago, "context-based module development", that I started on a prototype of but never followed up on. The idea is to have a standard format for defining modules, black boxes with interfaces and clear definitions, that can be composed hierarchically. Module definitions and their code should not be larger than the context window of an LLM. As long as each module is well defined and tested and treated like a black box, you could have a system composed of both human and AI built modules that should behave as expected and be somewhat comprehensible. Not all architectures would work with this and I don't know if it would have worked in the end, but I do expect that at some point a more formal system for defining software from the ground up for AI development will emerge.
I wonder who the target is for such language.
What's difficult with programming isn't the language itself, it's everything else: understanding concepts, algorithms, programming patterns, the science.
It feels a bit like trying to reinvent the language of mathematics. It'd be really inefficient writing math in plain English.