There has been a distinct uptick of interest in Crosscheck over the past
few weeks. Mostly, people have been emailing the frontside directly, but
there has also been a few messages on the list as well. While I still
believe very much in crosscheck the idea, I've had to turn people away
because the fact is that in its current state the chances are it's not
going to do what they need.
What this has made clear to me is that the time has come to either move
things forward, or take down the sign and bury Crosscheck for good.
If it's going to continue, then it needs to be informed by a detailed
vision of what it should strive to become, and how it's going to get
there. To that end, we spent some time talking on the IRC channel
yesterday about what that vision might be, and here are some of the
ideas that came out of the discussion:
We still believe that there is a need for a *headless* environment for
functional testing and unit testing of javascript in which the tests are
written *in javascript*. As as it stands however, Crosscheck has not yet
realized this niche for several reasons.
1) There has been too much focus on supporting *all* browser
environments which dramatically slowed the implementation of other
features which people needed.
While this might have been the right thing to concentrate on in 2005, we
are now in 2009 and most people use very mature platforms like jquery,
mootools, etc... which, except for a few minor instances, pretty much
sweep cross browser issues under the rug. Instead, crosscheck should
focus first on achieving a complete vertical stack before fanning out
horizontally to verify a host of potentially obscure browser
implementations. When I say full stack, I mean the script runner, build
integration, IDE integration, and a one fully functioning virtual
browser environment that is "close enough" to the browsers people use today.
This is not to say that the possibility of cross browser testing should
be abandoned, only that it should be a second priority to getting that
full stack which people can extend for their needs.
2) The code has historically been opaque to the majority of the users.
Crosscheck executes javascripts, but is itself implemented almost
entirely in Java. Because of the way rhino (circa 1.5) works, this has
necessarily entailed a large and complex code base, especially for the
simulated browser implementation. Multiply that by all the environments
supported, and you have a hot mess that no one person can fully
comprehend. Not only that, but only a fraction of potential crosscheck
users can or want to write Java, which presents a serious impediment to
community contributions. The obvious answer is to implement crosscheck
in the language which it targets and the language for which most people
use it (I'm talking about javascript of course). With the recent
releases of rhino this is a very possible and very preferable way forward.
3) Lack of an active Community.
The is perhaps our biggest failing, and if crosscheck is to procede, the
one that needs to be addressed most urgently. It's not worth dwelling
on, but for whatever reason we never managed to consistently convert
interest into involvement. I believe that the interest is still there,
and will probably increase, but if there is no clear pathway from
interest to action, then it will never go anywhere.
Also, we never think there should be more outreach and cooperation with
other projects which are in this space such as jspec, jsunit, and http
unit. There is a lot of code to be shared there.
These are the major points that we came up with, but it doesn't mean
that there aren't more, or that they all need to be addressed at once.
If something does start back up, it will start, as it always does: in a
small way.
But these are just the thoughts of a few people. I'm more interested in
what do you think.
What are the problems that you want to see solved by crosscheck that
aren't solved by tools you use today?
What are the things that have frustrated you in your efforts to use
crosscheck?
How might they be addressed and/or temporarily mitigated?
What do you think crosscheck gets right (if anything)?
I think the opportunity is there for a very useful, very successful open
source project, but I as well as others are not going to find the time
to work on it unless there is a clear way ahead. Are you interested in
being a part of it?
cheers,
Charles