I was just resting.
Sorry for ignoring everyone's emails for the past few months. I burned
myself out at lever and I needed some space away from ShareJS to
figure out what I actually want to be spending my time on. Its sort of
startling seeing the data in github's tracker - I wrote almost no code
for 6 months.
I'm hoping to (slowly) go through the backlog of sharejs related
emails and look at some of the issues. Feel free to email me again if
its important.
Thankyou to Nate for keeping everything running in the past few months
and everyone who's contributed patches to fix long running issues.
I know Friedel offered to take over maintaining ShareJS. Its a really
generous offer and I'm really sorry I haven't gotten back to you. I
appreciate it. We should chat at some point over skype about it all.
I think ShareJS has become two things:
First, it was a simple library for doing text based OT in nodejs. The
still not updated website still shows this. The examples from 0.6 are
really small and simple.
When I started at lever, we saw the opportunity to adapt sharejs into
something more - a distributed OT-based database. The database is
powerful and has lots of features for projections and queries and
stuff. But I think its a different use case. I like the code sharing
(and there's a lot of it), but I think the two libraries have
different use cases and different audiences.
Going forward, I think I want to split the project back into those two parts.
The small simple collaborative text editing library will be loosely
based on an updated version of the old sharejs 0.6 code. I'll make the
API a lot closer to 0.7, but keep the simplicity, merge in the cursor
code and add first class support for rich text. The cursor code was
held out of 0.7 because it doesn't handle multiple servers. The tiny
library for text editing won't support multiple servers anyway (maybe
you can shard based on document id or something). No more redis, no
more complicated nested options objects. It'll use browserify,
websockets, promises and dump coffeescript (with some ES6 maps and
sets). This will be my baby - I still want that light little library.
I'm kind of amazed that nobody has built that yet.
The second project will be the sharded OT database that sharejs 0.7
has become. We're talking about renaming it to sharedb. (I own
sharedb.org). Every document is a JSON document, with embeddable
subdocuments for text editing. We keep support for multiple servers,
live queries, projections, all the good stuff. Nate will be benevolent
dictator of that project, which will make it easier to keep everything
working smoothly with DerbyJS.
This isn't an overnight thing. We're all really busy shipping code.
I've gone back to teaching a few days a week and I'm writing an ios
game on the side. But I don't want to leave sharejs where it is at the
moment. ShareJS is too useful a tool to leave unfinished.
I'll hop in office hours at some point and we can talk about it in
person. (We need to schedule one which isn't at 4am Sydney time.)
-J