Experimentation is very important in our industry. Before succeeding one time, we may need to fail ten times. This is why reducing the time it takes to run our experiments, can dramatically increase our productivity.
If setting up the environment to run an experiment costs more than setting up the experiment itself, then most of such experiments may fail before even starting. Who knows how many great ideas had failed to see the love of the community, or dramatically improve various applications, simply because the author had given up after spending too much time between seeing each of the new `ReferenceError: something is not defined and good luck debugging it` messages.
Also the purpose of experiments can be different. We may be doing it to learn, to teach, to explore, to research or to build something awesome. Sometimes, you just need some isolated space for a small prototype that may end up being a foundation for a great invention. Sometimes you keep forgetting how a certain library function works, so just want to call it and inspect the output. Sometimes you want a playground to experiment with a new language feature or framework, to learn it or to teach it to others.
And yet, you may hate to leave your nicely configured editor, to lose all the keyboard shortcuts you are comfortable with, and the autocomplete, and the best colour scheme for your eyes, and a few source code files of your project required for the experiment.
This is why we have decided to create Quokka.js and share it with you.
For the last 2 years we at Wallaby.js have been creating our main product that makes it easier and faster to write and execute unit tests. We have tackled thousands of issues and scenarios to help our users instantly get the rich feedback from their code and tests. Finally, one day we realised that we could share the work outside of the unit testing world, to address the points outlined above.
- is free as in beer,
- instantly runs your code with code coverage and rich inline output, you don’t even need to save the file;
- requires zero configuration by default;
- runs in node, supports Babel, React JSX and TypeScript, also browser environment via jsdom;
- can work in the context of your project and allows to import files and installed modules from it;
- is hackable, so you can write and share plugins,
- right now supports VS Code and JetBrains IDEs, more editor integrations are in works.
Just in case you are wondering about the project’s name, and what the hell is quokka, here it is,
a small and very friendly macropod.
For those who are not familiar with what we do — we are based in Australia and have taken “wallaby” as the name for our other project. Quokka.js is powered by the same technology, so we decided to name it like a small wallaby, and that’s what a quokka (as an animal) essentially is.