On 27/08/2014 09:20, Marvin Humphrey wrote:
On Tue, Aug 26, 2014 at 2:23 PM, Nick Wellnhofer <[email protected]> wrote:

What’s so bad about releasing new versions that break compatibility?

I'm cool with it, I just think it's unrealistic.  Once people start using the
software, the social costs of breaking compat make it increasingly difficult
to change things.

Superficial changes which are nonetheless justified because they make APIs
more consistent or simpler don't go over well with people who just want stuff
to work and have to cope with disruption.  Delaying API publication until as
many known mistakes are ironed out as possible means less conflict and yields
a better product.

I would expect only very few early adopters of Clownfish in the first year, if we get any at all. Also, the decision to use Clownfish in a new project or to even make the switch with an existing project will usually take some time. By then, we might have a more mature release out anyway. My guess is that there won't be serious users in first six months. We'd simply get a considerable head start if we opened up the Clownfish internals now.

Besides, Clownfish targets skilled developers, not the crowd who just wants stuff to work. These users should be able to deal with API changes. And even if we have to make disruptive changes, I'd rather have users who are unhappy with some decisions than no users at all.

Then we have developers like Philip who work with Clownfish right now and must wade through the .cfh files and other parts of the source code to find the documentation they need. Do we really want to make life harder for them just to please some hypothetical future users?

Another feature that is useless without proper Clownfish documentation is the support for C-based Lucy extensions introduced in 0.4.

Can't we just publish the Clownfish API with a disclaimer that it's subject to change, and keep working on it at everyone's preferred pace? I don't see a problem with that. But the last thing I want is to pressure you into putting anything aside just to finish other language bindings as soon as possible. This doesn't sound like fun, and that's what it all should be about.

Nick

Reply via email to