Hi, everyone! Good news!
I haven't reached the funding goals, but that's OK! Already, with the
support of the patrons (thank you!), I think I will be able to work on
Mage something close to full-time for all of 2023 (at least).
The plan for this year is pretty simple: bring Fern up to speed. It's
going to be a GUI toolkit. In a few ways, it's rather simple, but in
others, it's quite powerful. The foundation has been established, in
most part thanks to the Garnet[1] and the Multi-Garnet[2] projects from
many years back.
That foundation does need to see some improvements. I have described the
reasoning for them in the Fern section[3] on the website. The gist of it
comes down to:
- Knowledge-Represention improvements
- Better syntax. (This will be done ASAP.)
- Meta info accessible via a slot.
- Generalized selectors.
- Configurations.
- Contexts.
- Constraint management improvements
- Better syntax. (This will also be done ASAP.)
- Advice for constraints (this is yet to be designed carefully).
- Change predicates (just an optimization, for what it's worth).
- Parameterized pointer variables via generalized selectors.
- Asynchronous execution.
- Slot change hooks.
- 2D Graphics
- Some additions to the geometry and linear algebra modules.
- A simple 2D API for geometry + backend (via SDL).
- Event objects + backend (via SDL).
- A simple text API + backend (via Pango).
- Cells
Once Fern is ready, it should be possible to start working on the editor
specification and some actual editors: Rune and Kraken. But that's
unlikely to happen until next year.
So, I will probably spend the next few days setting up my environment,
and then populating the Wiki[4] of the project. Then I will switch to
programming.
Also, some people have shown interest in the code. Please, if you are
learning about Fern or even want to be implementing something, do
communicate with me! It's important to be on the same page. In the next
few days, I will be populating the Wikis with some development notes for
anyone interested in learning about the code, as well as talk about the
future course of development. Just for now, the best place to learn
about the code is still the project's website Code page[5].
The development will be taking place on Sourcehut:
https://sr.ht/~project-mage/
I found Sourcehut to be geared for the efficient workflow over mail, and
yet it seems to have a decent web interface.
I hope to make the best of it. So, again, thank you all!
P.S. I will write news and updates on the development about once a
month. I will publish them on the Project's Campaign page and on
Patreon, as well as send them via this mailing list.
There are other mailing lists[6] other than this one, too, for
develepment and general discussions. And, in general, if anyone has any
concerns or suggestions, feel free to contact me[7].
[1] http://www.cs.cmu.edu/~garnet/
[2] https://constraints.cs.washington.edu/ui/multi-garnet-92.html
[3] https://project-mage.org/the-power-of-structure#Fern
[4] https://man.sr.ht/~project-mage/
[5] https://project-mage.org/Code
[6] https://lists.sr.ht/~project-mage/
[7] https://project-mage.org/Contact