Here's to the Next 5 Years
On December 11th, 2016, Marionette will turn 5 years old. This project has consistently grown over these years. We’ve seen hundreds of contributors, thousands of commits, and tens of thousands of projects using Marionette. We have been cutting-edge and we have been old-hat. We have seen many frameworks come and some go. We may never again be shiny and new, but we strive to move ever forward.
In early 2013, I was tasked with finding a solution to the ever growing complexities of the RoundingWell PHP & jQuery webapp. Design was asking for more and more interaction, and maintaining the state was producing brittle, hard to understand code. I turned to frontend libraries for a solution, and after researching various options, I felt the most comfortable with Marionette. It had an active community and the library seemed small enough and unopinionated enough that it could be shoehorned into awkward periods of refactoring the large server-side application. To add to that, the RoundingWell team was learning while doing. We needed a small API we could grok quickly, and the ability to easily read and understand the source was invaluable.
Iterative and Incremental
Marionette hopes to improve in this manner. This might mean that Marionette will never be cutting-edge, but what it does mean is that Marionette is improving and your app won’t need a ground-up refactor for the long term.
The journey hasn’t been perfect. I believe the v3 release of Marionette was overly ambitious and changed too many things. The changes that were made were absolutely necessary and good, but the release took too long to go public and was too much of a transition. We certainly need everyone’s help to improve documentation and to build and add examples that go along with v3. While we haven’t lost much momentum in content creation, there is a wealth of v2 content that makes the v3 content harder to find in the wild. Additionally if you haven’t made the jump to v3, please do! If you need assistance our community is invaluable.
As we look to 2017, the Marionette core team is committing to smaller releases. Major and breaking releases will ideally be small and trivial updates, while we hope to release our more exciting features in minor versions. Breaking changes may be introduced behind feature flags or in parallel to current features so developers can preview the next major version behavior.
Our overall goals haven’t changed. Marionette aims to be aproachable with a small, easy to understand API. We want our source code to be easily readable with clear organization. We want Marionette to be iterative both in how we approach changes to the library as well as how it can be implemented into an existing project. Marionette will remain flexible. While we will offer suggested best practices, most architectural decisions are up for the developer to decide as to what works best for their project. Perhaps the most important goal is that we plan to support our community as best as we can. The Marionette community has been excellent at supporting each other and building content to improve the ecosystem. Come chat with us!
Thanks. Here’s to the next 5 years.