What's next for Optic

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:

  • Optic has switched over entirely to Optic Markdown 2. Optic Markdown 2 is a lot easier to learn and comes bundled with a GUI (think JSFiddle) that will help you tinker with the behavior of your lenses and transformations
  • There's a new installer flow that's more reliable and includes a guided tutorial to help new users learn Optic
  • Array literals, argument lists and other array-like structures can be used in Optic lenses.

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.

Company Update

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.

What's Next

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:

  • Making the trainer feature complete (It still doesn't support transformations of mapping schemas)
  • Making our docs amazing
  • Making skills more discoverable by adding a page on our website that indexes all the previously developed skills
  • General usability. Optic is getting a redesign based on several months of user feedback.

More Languages

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.

Thanks for your support! Now that optic-core is at a pretty stable phase of development, the next several updates you read will be all about Optic skills and we're making it easier to create them.