Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Blog: Draft: Thoughts on a DocPad Re-Write

Draft: Thoughts on a DocPad Re-Write

Going to have take a stance on this here and now.

It is great that the community cares soo much about DocPad and the other Bevry projects, to care enough about it, to discuss its future, and be soo involved with it. I love this community for that, for the effort they put into it, the care, and the dedication behind it.

This community, like all communities, is a powerful force for change and action. We are redefining the way websites are built. Making them abstraction friendly, fast and static, and robust and dynamic is quite the feat, and we are accomplishing that.

We must not underestimate this force we have. A community thrives under a united under a common vision, focused towards a common goal, and productive under a common agenda. And a community crumbles in vain, under fragmented agendas, illusive goals, and blurred vision.

As the community grows, ensuring unity over fragmentation becomes an ever increasing difficult one. New people and ideas are constantly being injected, amazing ones, terrible ones, all valuable ones. However, the focus of the effort behind these ideas must be crafted in directed way to produce concrete results.

With the extreme popularity that DocPad have accomplished this year, and the pressures on it to scale into new markets, and new territories, this issue of unity is becoming ever more vital, while at the same time more difficult to manage.

There is a lot of things right now in the community we must focus on. Performance & memory improvements. Better documentation. A new website. All vitally important things, but as new ideas and thirst for change pours in, focus can be detracted from the tasks that can have such a big impact.

About a year ago, we started discussing a rewrite for DocPad, as a brainstorm to where it could go in the future. Could we use noflo? Shall we abstract all the things? What shall we abstract? The plugin system? The file system handling? Etc.

Unfortunately, it seems that the recent discussions over the past year about possible rewrites are taking away from a unity of the community. The worst thing for DocPad right now would be a mix and matched codebase of clojurescript, livescript, coffeescript, javascript, noflo, async.js, bem, whatever, a culmination of fragmented initiatives, each being great solutions for their micro-context, but mashed together a culmination of sticky taped random materials to form a house that doesn't stand. The best thing for DocPad right now, would be the accomplishment of our most pressing issues, the things that give us 80% of the result, with 20% of the effort, accomplished together, as a united force, like a house not built just from the best materials for each piece, but built on the best culmination of materials that accomplish the design goals of the project.

This notion of an idealised re-written v7 of DocPad is starting to become problematic wishy-washy vapour-ware. If there is anything like a re-write desired, then it is the desire to abstract out all the things into tiny components, which we can then experiment with. This abstraction is the first step towards anything remotely like a re-write to be accomplished. Until then, it is just incremental changes to the right direction, a evolution, rather than a revolution.

If there is to be a revolution, a clojurescript re-write let's say, it is to be accomplished as alternatives to the tiny modules that DocPad will eventually be broken out into.

The ECS proposal seems like a good fit for evolutionary change. Something that be accomplished step by step, with clear functional improvements at each stage.

greduan commented Feb 2, 2014

If there is to be a revolution, a clojurescript re-write let's say, it is to be accomplished as alternatives to the tiny modules that DocPad will eventually be broken out into.

Good solution. Agreed. Indeed even the "core" DocPad that manages the ECS/BOT system could be written in ClojureScript, eventually having a pure CLJS implementation.

The ECS proposal seems like a good fit for evolutionary change.

Ja. Definitely. Or BOT.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment