Algebraic Data Types - Planning 2018-07-25
In this post:
- What I'm going to do in each post this week.
- The target areas for using Structured Data.
- The 1.0 roadmap, which is implicitly mostly just "known unknowns"
Okay, here's the deal: over the past week, I made some serious improvements to Structured Data. I've thought of some further features I could add, but for now I want to focus on getting it to 1.0, and that means trying to use it in the projects I wrote it for.
There are two projects that really need it right now:
- Homunculus needs it to pull some variables into the GameState structure, and to represent "higher-order" templates within the "templates" system I want to implement.
- tiny music needs it to implement providing a frequency to a note.
I feel like the first thing I'll need to work out is a good path for refactoring, so rather than specifically writing tests, I'll be spending the next entry documenting what each project currently does in the areas I want to change, what I think it should look like, and stepwise changes to get from the first to the second.
After that, I'm going to have to do some tight iteration cycles, to figure out what I need to change to make the library usable. I anticipate releasing several minor versions, but I don't think I'll be comfortable with releasing a major version until someone else is interested enough to offer feedback.
So, the road to 1.0 goes:
- 0.5.0: we are here, API is much improved from earlier iterations
- 0.6+: I make any changes I need this week
- pre-1.0: someone else tries to use this code
Next time, I document the target areas for introducing this code.