docs/Roadmap.md
This document is an attempt to capture thoughts on the future direction of Compiler Explorer. Last updated December 2022. References to "I" and "me" here mean Matt Godbolt.
A project like Compiler Explorer thrives best when many people can easily contribute. There are many languages, libraries, use-cases, and visualisations that the "core" team doesn't have experience with. In order to remain supportable and keep serving various programming communities, we need to make the project easy to work with. We can further improve code quality with more accurate typing, testing (increasing coverage, adding client tests), and documentation to make it easier to on-board new contributors and keep it easy to support existing code.
Testing the website directly would also be an area to improve: we have the beginnings of some automated web browser testing, but nothing stable or concrete yet.
There's an inherent tension between the standalone, run-it-yourself version of CE and the scalable, AWS-backed CE instance. Care must be taken to keep the standalone version usable.
Above all, the priority is to keep the main CE site up, stable and dependable, free and accessible to as many people as we can legally do so. That also means that URLs should live forever once they are created, which places a burden on us to keep existing compilers and libraries available forever.
Compiler Explorer will remain open-source and non-commercial. There are no plans at all to add "freemium" content. We do have a Patreon site, GitHub sponsors, PayPal donations, and some corporate sponsors, for which we are incredibly grateful. Funds from these source help support the cost of running the servers, save and plan for the future, and incentivize the core team. Previously our goal was to remain "ad-free", that has been relaxed slightly to allow up to three company sponsor logos visible at the top right of the screen.
docker image layers) was started in
2022, but fell behind due to so many other issues, and Matt being pretty rubbish at prioritising things. As nodes are
now taking an awful long time to start up, this is becoming a problem.clang-cl on a Windows instance we administrate and can make changes
to. We probably need a better way of expressing the various pool types, and certainly this would need better
deployment support (see above).Sadly I set no goals in 2022. I decided not to continue pursuing the login server stuff. It would be lovely but the risks of data leakage/privacy violations, plus the work needed to get it running, seem to outweigh the benefits.
In lieu of having previously defined goals, I'd like to at least celebrate these achievements:
Was: Finally tackle small screen device support.
How did we do?: a tiled, single-page read-only view was implemented. Our mobile support is about the best we could hope for given the limitations of space and our current reliance on Microsoft's Monaco editor, which doesn't support mobile at all.