API or Hooks

I just bought Scrivener a few weeks ago so I just stumbled on this thread.

As a developer, my first inquiry to L&L Sales included a request for info about an API, which sadly doesn’t exist. However, there are a few very positive elements at work here.

  1. A large (I believe so anyway) and passionate (no doubt) user/fan base.
  2. An open data format (XML and RTF).
  3. Nothing to stand in the way.

I primarily work with .NET, not exclusively, and I’ve already built a C# library around software that’s structured like Scrivener. The app needs to save the XML data, external code operates on it, then saves, and the app reads it back. If L&L can just make a few enhancements to automate a reload of data changed outside of the environment, some very cool things are possible.

I’ve also done a lot of work to tightly integrate with Word, Outlook, and Exel - the first one being of the most interest here. I saw a video recently where the solution to moving revisioned text from Word to Scrivener was to manually copy/paste everything. I was horrified. If the data is available in a format which can be processed programmatically, I would have no problem doing one-for-one conversions of Word feature to Scrivener. That would include things like section breaks, comments, revisions, and various field codes used for linking text within the document.

I understand that L&L hasn’t gotten around to this yet and that they would probably want to do this on their own. But the reality is that they simply don’t have time and they have other priorities. As with many other communities, from Eclipse to Minecraft, L&L would do well to build an ecosystem around this product that exists outside of their control, completely community-supported. Not only does that take a load off of them in both the short term and long, but it gives them even more bragging rights for Marketing. This is the model for which other companies hunger. Once a small ecosystem of developers emerges, say for a .NET library, others can grow simultaneously and collaboratively, for Perl, Ruby, Python, Java, etc.

Of course L&L would be interested/concerned to make sure this is all done properly and respectfully to protect the brand. That’s fine, as long as it doesn’t go too far in the opposite direction. I’ve seen companies exert too much control over a community that wants to build upon their platform. There is a Not Invented Here mindset, that unless the company builds a feature into their app that the feature shouldn’t exist. They themselves stifle the grassroots spirit and destroy all will. Community effort sometimes moves forward despite the best efforts of the vendor to suppress it, but that’s a battle no one wants to see (again). L&L doesn’t need to accept what the community is doing around them, but they should be careful not to suppress or sabotage it either. There’s nothing wrong with more than one API, and more than one language binding to support some functionality. This happens all the time and usually the best one wins out whatever the source. What I’m saying here is that even if some API doesn’t move forward as some individual at L&L might have done it themselves, it’s OK. Because until the company does it themselves there will still be buzz about what’s available rather than lament about what’s not - which is kinda where we are now.

So here’s my proposal. I’m hoping L&L will create a sub-forum for independent developers, as was suggested some months ago. I’m hoping someone from L&L can volunteer to discuss options with the community, without making commitments or providing code. All we need is some love and encouragement, and a little guidance to make sure we’re not wasting our time.

And who participates? Well, anyone who is motivated. The Free and Open Source Software (FOSS) industry is a graveyard of developers who started with enthusiasm, but then had the joy beaten out of them by ungrateful and demanding users. I feel a lot of that pain. There’s probably more dead FOSS projects out there than live ones. Look at SourceForge, CodeProject, GitHub, CodePlex, and all of the plugins that are no longer maintained for Drupal, WordPress, and every other platform. Many are abandoned for lack of interest by the developer, lack of community participation to provide motivation, lack of users, and/or lack of some kind of funding.

And on that last point, just because software is “free” as in liberty, doesn’t mean it needs to be “free” as in beer. And even if it is, developers need to get “something” for all of their effort. So personally, rather than building yet another community that’s all starry-eyed about doing good things for the benefit of all, I would encourage a model for funding to be built-in to a developer community from the start. “But it should all be Free” I hear people say. Yeah, that sounds nice as long as those folks don’t need to write code or docs. When it comes down to it, developers are people who have other things to do than to provide free labour to the masses. Most developers who are inclined to write FOSS have already done so, been burned, probably don’t want to do it again the same way. There needs to be some kind of reciprocation between supply and demand other than short-term gratitude. For myself, I run a software business, and I’m already working on a lot of FOSS. So my time is saturated. If I’m going to pick up on any project, I need to be motivated by more than warm fuzzies. Don’t get me wrong, I’m not being snotty or capitalistic - I’ve already done this “thing” I’m describing, and I’m trying to convey what works and what doesn’t. Insist on everything being free and the initiative is likely to flounder, but motivate people who do something good for you and the ball keeps rolling.

So when I said above that I think there is a large (quantity) and passionate (quality) user base, I’m thinking that’s justification to write code for utilities where some are free for personal use and others might have a nominal fee for commercial use or extended functionality. APIs and implementations can be completely FOSS but if someone wants functionality they can either write it themselves or they can “motivate” someone else to do it for them. If a developer forum is created here, one of my goals would be to ascertain what kind of demand there is for tools to augment Scrivener usage. Are there a lot of legal sites with end-users? I dunno. Medical? Tech writers? The average “I’d like to write a book” user cannot afford much for new functionality, but if a corporate site can save several hours for several people per week, they would be motivated to pay some amount as an investment toward savings. Maybe they wouldn’t pay for software but they might be inclined to provide a little funding just to keep developers alive to keep writing code - that’s a Very common model … it’s the reason why we get a chance to enjoy so much Free software. We simply don’t know if there is demand like that in for Scrivener without getting some community feedback - or some data from L&L.

Thanks for your time.

( Wow, that’s long, I should have used Scrivener to write that book. :laughing: )

1 Like