devinganger wrote:The design goals and requirements he made determined the technology choices he made (which, BTW, is one of the reasons why the Windows port has always been farther behind, as it doesn't have key pieces of the technology the Mac version does because the Windows OS doesn't offer them the way Mac OS X does).

Moreover the initial commitment to a cross-platform framework and Linux releases impaired the deployment of Windows DLLs and ActiveX components in SFW's development. So the team couldn't really make the most of Windows' capabilities.

devinganger wrote:If LamboCopters were easy, they'd already be a thing.

I haven't always agreed with you, but I LOVE this. I'm telling you it will be shamelessly stolen out of sheer lack of any better explanation of exactly why requirement creep is the spawn of all evil in the universe...

LamboCopter... Whuummpaaummmpaaummmpa

HA.

Jaysen

I have a wife and 2 kids that I can only attribute to a wiggle, a giggle, and the realization that she was out of my league so I might as well be happy with her as a friend. 24 years marriage later, I can't imagine life without her. -Me 10/7/09

devinganger wrote:If LamboCopters were easy, they'd already be a thing.

I haven't always agreed with you, but I LOVE this. I'm telling you it will be shamelessly stolen out of sheer lack of any better explanation of exactly why requirement creep is the spawn of all evil in the universe...

"Let me introduce, the Lambocopter! The Swiss army knife equivalent when it comes to vehicles!"

... which means it isn't really good for anything, which Devinganger explained in a fantastic way. Specialized tools always out-perform multi-purpose tools when it comes to really quakified work. Ask any carpenter...Including more and more specialized tools in a single software is like buying a carpenters belt filled with tools. It's likely to hold some of the tools you need but not all, and definitely also a lot of stuff you don't need.

'Listen, some quiet night, when you've shirked your work that day. Do you hearthat distant, almost inaudible clicking sound? That's one of yourcompetitors, working away in the night inParis or London or Erie, PA.'

A full, real time, collaboration tool a la GoogleDocs is not what seems required. But just a few tools to make collaboration less painful, and not requiring carefully coordinating when you are working on a large doc, would be very helpful - and for the most part, also help those of us who use Scrivener on our own docs on multiple devices on those occasions when something unforeseen happens. For example, a tool that let you do a sensible merge differences tool for resolving conflicts (eg like a lighter version of a tool like Beyond Compare), especially if it let you have practical defaults to configure for smart conflict handling. Not a total redesign, just much better handling of the issues that result from things like conflicts, and the issues that result from round trip edit cycles.

Not a total redesign to be a tool that has a different focus, just an acceptance that edit conflicts are not just a mistake to be avoided that can be handled as a clumsy error, but rather a regular thing that happens and should have some tools for it. That literally would be enough for me to use it for collaboration effectively.

davecake wrote:Not a total redesign to be a tool that has a different focus, just an acceptance that edit conflicts are not just a mistake to be avoided that can be handled as a clumsy error, but rather a regular thing that happens and should have some tools for it. That literally would be enough for me to use it for collaboration effectively.

Perhaps once 3.0 is out cross-platform and stabilized, KB might have time to consider the minimum viable product for such a feature that would work with the Scrivener philosophy -- but to do so, one would need a realistic set of scenarios painted out, not just the "it needs to be like Google Docs" that most people lead with.

What would such a conflict resolution experience in Scrivener look like to you?

One possible approach is to explore the use cases around collaboration. You may find users are wanting to use your software for purposes that you had not initially considered. You could then perhaps bring out editions that catered to specific needs that maybe removed some features and enabled others such as real time collaboration. It may be a way of growing into new markets while not destroying the original strong product. Or alternatively you may want to think about developing Scapple further as a collaborative tool with greater workflow integration into Scrivener I think there are a lot of features in Scrivener and Scapple that could make it a great qualitative research synthesis tool for example in fields like UX and service design. Collaborative working around inputing data and arranging being key in these fields.

Real time collaboration in particular is an enormous technical lift, in a space where the number one competitor (Google Docs) has essentially unlimited resources and gives the product away for free, and the number two competitor (Office 365) also has essentially unlimited resources and has had a stranglehold on the enterprise market for more than 20 years. There may be a compelling business case, but I haven't seen it.

The problem with special editions generally is that each requires additional development and support effort, while getting further and further away from the core needs of our core audience. The less "Scrivener-like" the proposed application is, the harder it is to see what we might bring to the table.

kewms wrote:The reasons for this have been discussed in detail elsewhere. Briefly, (1) other cloud services do not support the level of access to the file structure that is needed for Scrivener projects, and (2) what happens to your cloud-stored project if you lose access to the internet with 4,000 unsaved words in your computer's memory? Personally, I have no interest in a writing program that *requires* an internet connection to use it.

If you find that Google Docs is a better fit for your needs, feel free to use it. I wonder, though, why no one is pointing out that, after years of development with a much larger team, Google Docs has nothing that even resembles Scrivener's organizational and editing tools for large documents. They are different tools with different goals.

The Node.JS development world has addressed local and cloud sync and allows local filesystem access (see Electron). It also allows the same code base to be ported simultaneously to different platforms (desktop, mobile, web). You wouldn't need an Internet connection, but it could address a lot of the request here. There are also a lot of pre-built plugins that would simplify development.

It would be a massive change to Scrivener. But, looking at the underlying file structure (I'm a geek), KB has a strong foundation for such a move. That is, a lot of the design decisions I would make are there.

You are right, Scrivener provides document project management capability not readily available anywhere else. Google Docs solves a different problem than you are solving. That doesn't mean there's not a market in the middle that you're not better situated to satisfy than them...and that someone else won't fill it.

I used Scriv for my first novel, and part of my 2nd. I started looking at another toolchain because Scriv had some gaps. Scrive3 seems to be filling the very specific gaps I had (styles being one). Y'all's exploration of Android fills another one. I'm coming back on Scriv3 (and enjoying it so far, KB did a fine job).

The one gap I see is the ability to collaborate with a professional editor, which is not synchronous editing.

Merovech wrote:The Node.JS development world has addressed local and cloud sync and allows local filesystem access (see Electron). It also allows the same code base to be ported simultaneously to different platforms (desktop, mobile, web). You wouldn't need an Internet connection, but it could address a lot of the request here. There are also a lot of pre-built plugins that would simplify development.

I know a few people (senior software developers, not Scrivener-related) who refuse to even consider any job that requires them to use Node.js. It's an ugly, ugly development environment in a number of ways. Porting all of Scrivener to it sounds like a pretty radical approach to me.

Perhaps true. Node.JS is sort of my crib for the greater trend in programming towards Javascript (Angular, React, etc.). Node has the advantage of having access to the file system. Certainly a port would be a huge undertaking.

I think what is interesting is a multidisciplinary view of this topic.

I am a software engineer who has been asked to collaborate on a Scrivener project. In my world this is an incredibly easy problem to solve... just put the project under CVS, GIT, or SVN version control. You check out the parts of the project you wish to work on for you local machine and simply merge the changes back to the cloud database.

You would have to check out files like library books before you started Scrivener up. However once awake, Scrivener wouldn't even realize what you were doing when it was not running. Multiple copies can be "checked out" by different writers. The workflows for editing and merging work should be similar... they always have to be moderated in some context, inline or not.

I have had to track and merge the changes of dozens of "writers" upon final concatenation. It wouldn't matter as a manager of a project if the "writers" were writing code or fiction. In comparison, scrivener sync would be so easy it is hardly worth mentioning to a software person. You would actually have an incredibly difficult time explaining your problem because "it is not a problem" to them. They would most likely reply, "Is something broken?" Version control just "is". It is the lifeblood of software coding when you literally have hundreds of people working on a project. And it is not just coders, there are manual writers, app writers, product support writers - all under the same version control software, cloud based or not.

The misconception is that version control software... just does software. In reality, the version control software doesn't care or even know what it is tracking.(Yes, they do have some features that are useful if the deliverable is actually code) CVS was developed in the 80s and Google still uses it today for many of its code and non-code product development, including documentation. Version control software can work with encrypted binaries... it literally doesn't care what it is tracking, or what other program is using the files.

CVS, GIT and SVN are easy to learn, but the nomenclature isn't reminiscent to anything writers are used to. So, there are learning curves.

A good post would be "Controlling and syncing Scrivener with CVS, GIT or SVN". (Collaboration or multi-users are implied with version control) I would write it but explaining it to non-version control users is the challenging part. If I ever do figure out a way to explain it or just create a script to say just do "this" I most certainly will try.

These links touch on some but not all of these aspects in relation to Scrivener:

I notice that in your post you imply - perhaps you do not mean to - that creating a collaborative form of Scrivener would be simple. I'm absolutely not an expert, nor do I understand all that you've written above. But having used Scrivener on the Mac for more than ten years and having seen several discussions of this issue on these forums, I don't believe that it necessarily would be simple. I also don't believe that if it were indeed so simple, the developers of Scrivener on both platforms would not have made it possible some time ago.

Of course, one has to define what one means by collaboration. As you may be aware, on Scrivener for the Mac, and, I believe, on Scrivener for Windows, selected text from a project can already be synced with an external folder and edited externally (see Section 14.3.1 of the Manual). With version 3 for the Mac, and, prospectively for Windows, complete projects can be successfully merged - with some precautions, and with human intervention to deal with conflicts (see Section 5.1.7). And of course, multiple users can work on a single project collaboratively, if they work sequentially.

The challenge comes - as I understand it - when multiple users want to work on the same project at the same time. That's because documents in a Scrivener project are perhaps less like the example of books in a library that you cite, and more like cogs in a machine. Modify one, or its position in the machine, and you're likely to affect others as well. As other posters have written at length upthread, making collaboration of this type work whilst at the same time preserving Scrivener's existing attributes may not be impossible, but it would definitely be hard.

'Listen, some quiet night, when you've shirked your work that day. Do you hearthat distant, almost inaudible clicking sound? That's one of yourcompetitors, working away in the night inParis or London or Erie, PA.'