Hey everyone! Sorry it's been 1 month without an update post.
Since last time I wrote there have been 3 releases with some big changes:
On the bug side...well there were a lot of them. Transitioning all the the compiler code over to the Optic Markdown 2 representation introduced a lot of bugs that took two weeks of on-and-off work to find and correct. Progress was stymied by the fact that our test suites were all tied to the Optic Markdown 1 format so I had to migrate both the code and the unit tests. If Optic was more mature I would migrated more slowly, but being small has some advantages and we're going to take them. The good news is that version 2 is a great foundation that supports pretty much everything you might need for your lenses so I don't anticipate it changing again in a wholesome way.
This spring Optic was accepted into YCombinator's summer batch so we've been out in California moving as fast as we can to deliver value to our early users. We now have some development teams as customers and we're learning a lot about what it takes to build a product that serves developers and their team.
We've committed to always having a free and open source version of Optic. The only thing we've been selling at this stage are our professional services and some specialty features for connecting a ton of repos and releasing private skills on our registry. There are a lot of other open source YC companies like GitLab and Docker we can learn from who have managed to be free/open source as well as viable businesses.
It's clear that making it easy to teach Optic new skills is critical to the long term growth of our community. A lot of developers who see Optic love the potential, but don't have time to teach it how to interact with their code. We've been trying to release as many skills as possible for the common libraries, but those efforts will probably never keep up pace with the needs of our users.
With that in mind, we're focused on a few keys areas:
We don't have exact release dates yet, but Python and Ruby are going to be released soon. We've realized our current pipeline for learning languages is more complicated than it needs to be and we're planning to update Marvin and make it much easier to train Optic on a corpus of source code. Ideally we'll make this process easy enough that we can release a language spec that any developer can use to build new language support.