I don't normally like it when people pimp their blog posts to this list, but I think this one is quite important.
I'll take it from this that I may cross-post my reply to your post here as well ;)
At last month’s CukeUp conference, I held a panel discussion between Aslak Hellesoy, Julien Biezemans, Oriol Gual and Jonas Nicklas. I chose these panelists because each of them has written a variation on the original Ruby Cucumber, and I wanted to try to pull these ideas together into a vision for Cucumber 2.0.
we’re using Cucumber to develop and maintain a large (~1-2 MLOC) consumer application written in C++.
We depend on the wire protocol as an interface into our application. We like having ruby as an intermediate layer for step definitions. Our strategy is to implement ‘atomic’ user operation as ruby steps, and then combine these atoms into more complex compound steps to dry scenarios and make them more readable and robust. We also use quite a few scenario outlines.
I can understand the desire to make a clean cut and start over. It’s everything my colleagues and I moan for every day.
The number one reason we love Cucumber so much is that is has made testing our application so dead easy (after overcoming an initial integration cost). I fear that if you decide to take all these features away which we depend on so heavily, following you to Cucumber 2.0 would become too expensive for our team.
We simply don’t have the resources to write or maintain our own C++-port of Cucumber.
I would like to ask you to not forget about an upgrade path for existing users of Cucumber.
Thanks for coming here to reply Tobias, I don't find my blog comments is a very nice medium for discussions - this is a much better place.
Bear in mind that the write-up was my record of what everyone had said in the discussion, not necessarily my own opinions. I wrote most of the wire protocol code, and I'm proud of it. I also know people who've written plugins for Flash, for LUA and I'm really glad to hear you're making good use of it too.
My view is that all back-ends, whether it's the wire protocol, the classic manner of defining steps in Ruby, or some new-fangled thing, should all be pluggable in Cucumber 2.0. They won't need to be part of the core codebase, but they'll be supported, and maintained as separate gems. That's my vision, and I realise I didn't make that clear enough in the original post.