@ulsa, @rot13dotio and others have been curious to know the state of Hoplon 6 and what the path toward it is, so Micha and I thought to share a "state of the union" to give people an idea of where we stand and what's next. The lack of updates is because we've been busy drinking our own poison
Micha and I work at the same company again, Adzerk, which is an extremely gracious benefactor. Adzerk subsidized the graphic design for boot-clj.com and encourages us to open source as much as possible. We are currently using Boot 2 and Hoplon 6-alpha to write the next version of the Adzerk customer web interface.
In a nutshell: Hoplon is very much alive and the future is looking very bright Because we're using it actively on a team (with more people than just us) we'll know when it's technically ready. At least one other company, Exicon, is also using Hoplon 6 extensively. We get great feedback from @onetom and his team, and their experience is also contributing to Hoplon 6 capability and stability.
The future we have in mind as of now, on a few dimensions, is:
- minor performance and semantic improvements (specifically around
loop-tpl allocation strategy and some aspects of composition)
- remove a handful of things we know now to be unnecessary (such as the
do-X attribute name convention)
- ability to use Hoplon as a library targeting a place in the DOM in the context of a larger application
Documentation & branding
- Brand relaunch - make hoplon.io a landing site in the spirit of boot-clj, with a new logo and brand.
- Move tailrecursion/hoplon to hoplon/hoplon on GitHub
- Move tailrecursion/javelin to hoplon/hoplon on GitHub
- Create hoplon/hoplon-demos and port demos
- Move documentation to GitHub (the hoplon/hoplon wiki) so it's easier for the community to maintain, point to it from hoplon.io
- In general, present a more cohesive and prettier message about what Hoplon is, the kinds of things it's really good for, and how to apply it
With Hoplon 6 we continue to advocate all the same stuff: the CQRS-like server/client arrangement, Javelin for state management, and HLisp for DOM. Javelin API surface remains the same, and HLisp is almost the same (modulo the removal or reimplementation of the few things listed above)
There has also been much change in the immediate ecosystem surrounding Hoplon, starting with boot-cljs. The traction we've been lucky to see around Boot 2 has meant that parties beyond Hoplon-world have been helping us with ancillary tools. Beyond boot-cljs, there are now all kinds of tasks that are useful in a Hoplon app but don't need to ship with Hoplon. Moving forward, Hoplon itself will continue to do the same stuff, and hopefully less, as we figure out ways to factor functionality into independent tasks.
Your help needed!
It's not easy to play with Hoplon 6 right now. That's because the people using it are doing so in anger and don't have time over the next few months to leave good tutorials and documentation in their wake. We also have less time than usual to peruse Discourse. This is where you can help, if you have some extra time!
Help us fill out the hoplon/hoplon wiki. As you do your own experiments, take a moment to add what you've learned there. The boot wiki is a good example of the kind of structure and content we think could be very helpful - it has a sidebar with links to both concept and detail pages. Most of the information needed to fill out the Hoplon wiki is out in the world, just not presented in a consistent or organized way. If you were to help us categorize and fill out documentation, you could be a Hero of Hoplon!
If you get stuck or have questions, you can ask us things in the Clojurians slack (hoplon channel) or in #hoplon IRC on Freenode. At the moment, Clojurians/hoplon is the more active chat venue, but Micha and I can be found in both places.
Stuff we will do
Adzerk already subsidized a new Hoplon brand, so once Hoplon 6 is technically ready we'll fire up the new hoplon.io and point it at the new documentation and code sources. We'll also do the moving and renaming of the various source repos and Maven artifacts that constitute the Hoplon ecosystems, using 'hoplon' as the GitHub organization and 'io.hoplon' as the package namespace.
Later this year Micha and I are speaking on Hoplon at Clojutre and Oredev, respectively, and our goal is to have the new code and brand ready for general consumption by then. But of course, no guarantees
We're really grateful for the small but extremely talented and friendly community around Hoplon, and look forward to collaborating more with you all! We're especially excited about rebranding and improving our documentation. We look forward to having a bigger, but just as talented and friendly community. Hoplon could really be going places, we hope you enjoy the ride with us!