very close to my ideal writing software!

This post originated as an appeal to another software author, offering them a better set of goals with a product that was guilty of imposing structure at the expense of flexibility. Then I discovered Scrivener, which appears to be one of the few attempts to give creative writers a more flexible, humane writing tool. I’d like to do somewhat of a repost here, reflecting on how Scrivener has succeeded in delivering parts of “My Ideal Writing Software”:

…my ideal writing software allows me to define my own structure in iterative processes. I want to start with a stream of text and add what I want through break commands (scene break, chapter break) and applying definitions to selections (note, character, scene, chapter, etc.) as I’m writing. Similarly, I want to be able to remove and merge structure elements from the writing just as easily. The most important detail that should dictate what structure is applied and how that happens is what my ultimate reasons are for utilizing structure in the first place.

I have three main goals with adding structure to a large piece of writing: navigating quickly, changing my mind, and analyzing. If the methods for applying and removing structure either don’t accomplish these goals or make them so tedious that I’d rather use another tool, then the writing software has failed.

  1. Navigating writing is best accomplished when I can divide the story into sections, view/edit more than one section at once, preview multiple sections in varying lengths, and annotate any point or selection. Dividing works best when I can nest the divisions as an outline and be able to expand and collapse any of these sections in the main flow of the document, similar to what you can do in TextMate. Viewing and editing two or more sections is accomplished well by either expanding and collapsing or dividing the document window as done in Word and TextWrangler. An example of previewing various summary lengths can be seen in the RSS view of Safari. A good annotating interface I’ve seen is Skim, which works with PDFs.

  2. Changing my mind can apply to quickly grabbing sections and dragging them into new order, keeping multiple drafts, and automatically applying global changes (like the names of things, output formatting, and what details are shared or made different between stories). Anywhere I am in a story I should be able to select a word or phrase and define it as a special variable (character, device, location, etc.) for further usage or adding/changing freeform details (types, images, attributes). Multiple drafts should be easily made and selected for individual sections or the whole story. If my story starts out as a novel and turns into a screenplay (or even back again), the software should help me accomplish this with the least amount of tedium. Designating portions into chapters or scenes (or even new conventions like the choose-your-own-adventure style organization that you need to write for video games) should be easy to change at any time.

  3. Analysis should come in the form of smart views or easy table and chart summaries of whatever structural elements I’ve applied and data gleaned from the text. Counts and complexities of characters, words, paragraphs, dialogue, characters, locations, and stages of completion would all be useful to be able to check as I write. Another capability that could fall under this area is getting feedback from others. Being able to share parts or all of a story version and allow viewers to make annotations that are directly accessible back in your own document would be a valuable tool for many writers.

Scrivener has done very well in creating an interface similar to what I envisioned for goal 1 Navigation. The only major difference is that I cannot do these things inline: the “edit multiple scrivenings” feature works the closest to this and I think could/should be expanded to become my imagined interface. Also, no separate browse list for annotations. For Goal 2, Scrivener again has a very good start. I can’t define special variables though, and that would be nice. On Goal 3, there’s room to grow.


Many thanks for trying Scrivener, and for posting your ideas, even if they were originally geared towards another piece of software. Before continuing, I’m just going to have to disagree with a point, though. :slight_smile:

No - it has failed for what you want to do with it. I think it’s great that you have some clear ideas about what your own “perfect” piece of writing software is, and are trying everything out. Seven or eight years ago I was doing the same: I had an idea for my perfect writing software and nothing quite did it; some got close, others didn’t. So in the end, I wrote my own. The result is Scrivener - my perfect writing software. And fortunately we have many users who love it too, which is of course a bonus! But that is still my goal: to continue to develop and enhance my perfect writing software. The bonus is that great software isn’t created in a vacuum - there’s only so much one person can do. So Scrivener “being in the wild” has resulted in many astute users seeing places where things could be done better - places where my own vision was a little blurred or not implemented as nicely as it could be. But hey, that’s why I’m working on Scrivener 2.0. But my point is that just because software doesn’t meet your particular needs, that doesn’t mean it has “failed”, only that its author had different things in mind.

Right, caveat over, to continue…

Everything you’ve mentioned here can be done in Scrivener - indeed the idea of breaking things up and putting them in a nested structure is part of its raison d’etre. You can view individual documents or combine them dynamically using Edit Scrivenings, or you can view two different documents alongside in the split. Annotations are currently inline but another system that I know a lot of users will prefer will be coming in 2.0, although the original system will remain alongside as I think both have advantages and disadvantages.

You can drag things anywhere, you can back up, you can duplicate folders before changing the structure. There is a Project Find and Replace for changing the names of things.

This is a bit vague so I’m not sure what you mean here.

Software will never be able to remove all the hard work a writer must do. In this example, though, I guess you would open the novel documents in one split and type the screenplay in the other. The chances are a novel and screenplay would be broken down quite differently - you’d have work to do. But Scrivener has things such as “Split at Selection” that might help.

I have to say that I hate all this stuff - chart summaries and data and tables. It seems like procrastination to me. :slight_smile: So this comes back to what I was saying before - I know some writers love this stuff, although the requests I’ve had for this sort of thing have been very rare, but it’s not something I really want myself and so hasn’t gone into my own perfect writing software.

One more note on this - it’s also worth remembering that Scrivener is general-purpose and not just for novel writing. So it has no idea about your characters or locations - that remains up to the writer to maintain, although you can create separate documents, use keywords, or harness labels for colour-coding scenes with PoV character and so on. You can get word counts and such like, and even “most used words”, though.

This is definitely out of Scrivener’s scope. I’m a little old fashioned, though - I think there is something to be said for compiling and have your readers mark up the compiled version, as it forces you to go back through the marked-up draft more thoroughly. But collaboration and sharing is certainly off-radar for the foreseeable future.

Of course, there’s always room to grow, and Scrivener is improving and evolving all the time, and Scrivener 2.0 - out September/October time - will be a huge leap forward. However, I don’t want to mislead you and give you the hard sell, because Scrivener isn’t aiming to do half of the things you want in your own ideal software. As I always say, I recommend evaluating Scrivener on what it can do now and whether it can work for you, because even though improvements are coming, the core of Scrivener is unlikely to change as it does what I set out for it to do, barring various oddities, quirks and places that aren’t integrated as well as they could be (addressed in 2.0). I’m not setting out to create anybody else’s perfect software.

That said, given that you have such a strong vision, have thought about trying to create your own? It may sound a mammoth task - and it is in a way, it took two years to get to Scrivener 1.0 and Scrivener 2.0 will have been the result of six years of work - but at the same time, Cocoa is a fairly easy language to learn even for non-programmers (I was not a programmer before I set out to write Scrivener - I taught myself because I wanted Scrivener). It also takes no investment, other than a couple of books and time, because all the tools you need are provided with OS X. If you feel strongly enough about all this, then it’s definitely worth considering - it’s a great feeling to have made the software you use every day for your writing! Not that I welcome the competition of course… :slight_smile:

Thanks and all the best,

Quite true.

Oh, well I mean that special variables would be good for… I guess a problem I have in my writing process: I tend to think of scenes and plots before I decide on the names of things. If I could set a selection (word or phrase) as a variable (character, location, etc.) then that would allow me to write out the story (the whole thing potentially) without needing to decide what those elements should be named until I finalize the story. My main characters could become a pick/autocomplete list that could either be final names or “protagonist guy” and “the ninja’s friend”, of which I could change from their central profiles entry at any time. That would be a nicer interface than using Find and Replace, Autocomplete, and Research note commands separately. It would also seed data for analysis pretty effortlessly as I write.

Yeah I don’t know if I love it either but those are functions that are easy for computers to do and very time consuming for people to do by hand. I would consider them niceties to allow authors to instantly answer questions like “Am I not giving this character enough lines?” or “Was my last story full of car chases?”. I’ve never really had such data at my disposal but I can predict how it would be useful.

That makes sense, both because collaboration/feedback code can be pandora’s box and also because it might work out easier/better to simply hook into an API for some web site that I’m sure is on the development horizon that focuses on just that functionality. The flexibility of peer to peer review cycles would be nice but funneling it all through a dedicated web app would probably be easier to create.

Good news, glad that you still have time to work on it… and soon, congratulations.

Yes I have. But I also have strong visions for dozens of other coding adventures. If I were to program all of them myself then it would take more years than I expect to live. Also I don’t enjoy the process of coding, the syntax especially. I’ve written in many languages derived from C (javascript, perl, php, java, asp, etc.) and though I like having FINISHED an application, I don’t relish the long road to that destination.

I enjoy creating in English and through visual arts. Turns of phrase and translations from imagination to product are things I like to find and develop in those rule sets. For this reason, one of my project ideas is a coding environment that fully departs from C-like syntax for natural language processing and 3d visual structure building—an environment that I would enjoy creating logical functionality in.

I may end up eventually coding my own desktop apps but I can’t help realizing that your vision for Scrivener has a refreshingly similar basis for writing style as whatever I would develop. If that’s present then I figure there’s more than a 50/50 chance that suggestions I offer might actually appeal to you.

Ah, I see what you mean. Something like this is coming in 2.0 but things only get replaced at compile-time. There’s a new “Replacements” pane in the Compile sheet (which has been overhauled) which allows you to replace things in the text just for the exported/printed draft. So you could have “JoeProtagonist” in the text replaced with “Bob” or whatever, although it’s not entirely what you are after.

Still? It’s been constant for pretty much the last two years! I’ll be happy to finally release it! :slight_smile:

Ha, I know that feeling.

I can understand that. Coding seems just to consume time. I fire up for the day and suddenly it’s 9pm and barely anything has been achieved - fraction of a minor feature. It’s just a black hole. And the trouble is, of course, that an application is never finished. (My son asked me the other day when I’d finish Scrivener; I could only laugh.)

Interesting. The nearest thing to natural language I’ve seen is AppleScript, but of course that’s not really a coding language.

It’s certainly always worth suggesting things. I implement things based mainly on 1) Whether it is possible (obviously), 2) Whether I think it fits into Scrivener and what I have in mind for it, 3) Whether it is a better way of doing something it already does, 4) Complete whim. :slight_smile:

Thanks and all the best,

I think I saw Hugh Jackman using a computer like that, in Swordfish. He was also clapping and roaring at the screen a lot—I think he forgot which character he was playing.

Hahaha, yes… oh that movie and others like it are a setback for real technology. Reminds me of my favorite mockery of the Hollywood mockery: “In the future the computer mouse will be obsolete. All operations, from the simple to the extremely complex, will be performed by very quickly typing an apparently random series of key presses while elaborate 3D shapes rotate on the screen.”

Actually I had a less glamorous workflow in mind, something closer to these for the visual structuring:
mixed with with something, yes, distantly related to Applescript/Hypertalk. Each step closer to the Star Trek Holodeck is a step in the right direction for abstract creativity.

Like an oil painting :slight_smile: Or any creative work that the artist still has access to.