Initial impressions and philosophical differences

Ian Beck's Avatar

Ian Beck

01 Jun, 2012 08:20 PM

Hello Jesse (and company),

I've been playing around with FoldingText for a bit, and wanted to share some of my first impressions. I was very excited to hear Hog Bay Software was doing a Markdown editor (particularly when I heard that it would potentially offer support for TaskPaper, as well) because I love the work you've done in your past apps with enriching the experience of editing and viewing plain text.

Before I get started on actual feedback, I would like to explicitly mention my biases: I am part of the fringe crowd of developers who work regularly with plain text, so my opinions and ways I use plain text may well have little resemblance to everyday users (who, if you are successful, will likely be the largest group of purchasers). Additionally, I have been writing my own solutions for working with plain text for the last several years (my webOS app TapNote was explicitly inspired by PlainText when I migrated to webOS from iOS and needed a high-quality plain text editor, and I have been almost solely responsible for writing the language-specific support for Espresso over the past couple of years), which means I am not approaching the app from a clean slate; I have some preconceived ideas about how things should work, some that I've put a lot of thought into and some that are just things I'm used to. I have additionally been considering writing an app for my own use that both allows editing Markdown with smart parsing to enrich the text similar to FoldingText, so when I look at the app my opinions are colored by the way I imagined implementing things myself (and may involve a fair amount of "that's not how I would do it" emotional response).

SO. Now that I've hopefully given you some context for where I'm coming from, here's my actual opinions.

My biggest problem immediately on launching FoldingText is a basic philosophical difference: I really don't like that the formatting marks are obscured. It is incredibly distracting to me to move my cursor over a link, for instance, and have the entire line shift as the previously-invisible link text jumps into being.

I think I understand the impetus: you're trying to make a rich text editor that only relies on plain text because as minimalist as it is, Markdown is still ugly and intimidating. FoldingText currently tries to have the best of both worlds by offering direct editing of the underlying Markdown while still rendering like HTML, and may well appeal to people who want the portability and simplicity of plain text but also want to directly edit rich text.

However, by completely hiding the Markdown syntax you are doing a disservice to your users. Yes, it looks better in a screenshot, but there are significant usability problems. Any formatted text is suddenly a moving target (if I hit the right arrow and forward delete, am I going to delete the first letter of the next word like I intend, or will a formatting character appear out of nowhere and get consumed instead?). The root cause of the displayed formatting is not explicit which impedes both comprehension (for old hands at Markdown) and learning (for people who are just easing into the language). The lack of consistent and explicit formatting means that regardless of whether you are coming from a background with writing Markdown or Word documents, what is superficially similar is in fact a completely new system that you have to learn. As a single example, Markdown aficionados are forced to try and determine which heading they are looking at by comparing relative sizes (error prone and frustrating) while people used to Word have to navigate an unfamiliar territory of formatting characters (even if they rely mainly on menu items to insert bold/italics/etc. they have to deal with the formatting characters intruding on their work whenever they happen to move their cursor over the formatted text).

My personal preference is for a system that minimizes the formatting characters as much as possible but leaves them visible. For instance, I absolutely love that the heading characters and list characters are automatically shifted over into the left margin. That is a serious win for both readability and comprehension. However, I want to see them at all times and instead of a bullet for lists I want to see exactly what character is delimiting that list. The current approach of coloring formatting characters light gray to reduce their impact is perfect; it's only the fact that some of them disappear or get transformed that makes me uncomfortable.

My preferences notwithstanding, though, I think you have another direction you could go: true rich text editing for Markdown. Here, all formatting characters are permanently hidden. Any formatting the user wants to do is handled via menu items, and directly editing the source is impossible. This provides a very similar interaction basis for people from the Word paradigm of editing, while still ultimately storing the text in plain text (and gives you absolute control over the Markdown source, which reduces the likelihood of weird edge cases mucking up a document's final export but working in the "rich" source). If they enter a literal * character, you quietly escape it in the actual source: \*.

I personally would never use the editor if it went that route, of course, because I like to write Markdown with tools to make generating the necessary markup easier.

Another potential option would be to have three modes (which would provide you with solutions for different usergroups at the cost of greater complexity in the app's interface):

  1. Source: this would look and act very similar to what exists right now, except that all formatting would always be explicitly displayed
  2. Rich text: this would be what I just described; no direct access to formatting characters. Basically like working with a very limited rich text document whose underlying storage engine is using Markdown
  3. HTML preview. Because people are going to ask for this regardless. :-)

To sum up, the current approach feels like FoldingText is trying to cater to everyone (plain text nerds and Word ex-pats alike), but in so doing it sacrifices obviousness, explicitness, and ultimately compromises the writing/editing interaction for people of both. For reading, it is likely amazing, but frankly I write Markdown far more often than I read.

And at this point, I suspect you are sick of hearing things that you've probably already pondered yourselves over the course of development. Armchair criticism is so much easier than making stuff. I'll try using FoldingText for some of my actual Markdown editing throughout the day and let you know what I think of the actual tools it provides now that I've got my main philosophical beef with the app off my chest.

Ian

  1. Support Staff 2 Posted by Jesse Grosjean on 01 Jun, 2012 10:26 PM

    Jesse Grosjean's Avatar

    Thanks, this is great feedback.

    I hope others will join in this thread and share their thoughts on syntax hiding too. I agree with most of your individual arguments, but in the end, for me, I just love working in a document with syntax hiding much more then in one with the feature off. It would be good to learn how unique I am in that case, so please let me know if you disagree.

    So I like the syntax hiding, but the editor itself is very flexible. It’s easy to turn off, and it would actually be pretty easy to also implement your rich text editor idea… that’s one of the big problems with FoldingText, we had fun with the technology and built it to be many things, now trying to figure out which thing we’ll end up with.

    But for now here’s how you can turn that feature off. Drill down to:

    FoldingText.app/Contents/Resources/javascript-dom-build/scripts/themes/Times.fttheme/style.css
    

    And start deleting rules. If you delete them all you’ll get back to the default config with no syntax hiding. I think eventually we want to make themes a public thing, but for now they aren’t, so feel free to make changes, but they might break in the next release.

    Jesse

  2. 3 Posted by Ian Beck on 01 Jun, 2012 10:36 PM

    Ian Beck's Avatar

    Hey Jesse,

    the editor itself is very flexible. It’s easy to turn off, and it would actually be pretty easy to also implement your rich text editor idea

    Interesting; I will definitely take a look at that. I love hacking extending software, and will let you know if I hit any pain points in that process (in hopes of helping you improve it if you do make scripting/theming the editor publicly available, although that might add complications to MAS submissions).

    that’s one of the big problems with FoldingText, we had fun with the technology and built it to be many things

    I hear you there; I constantly have to police myself when I'm working on a new project since I tend to blow things up into perfect world generalized solutions whenever possible that make it impossible to complete and ship the darn thing.

    Ian

  3. 4 Posted by matt.m.crider on 02 Jun, 2012 03:37 AM

    matt.m.crider's Avatar

    Jesse,

    First of all, thank you for inviting me. I really appreciate it.

    Second, I completely disagree with Ian. There are other programs out there that do what Ian wants....IA Writer, comes readily to mind. But, there is nothing like what you are attempting.

    I don't want to have anything to do with Markdown at all. Give me the results! I want the portability. I want the compactness. I want minimalism. If I want Markdown, there's plenty of other choices.

    I have NONE of the concerns that Ian described. None!

    I do agree with Ian about one thing. If you completely hid away the formatting in a sort of Rich Text way, then I would prefer that. But, absent that, what I'm seeing in FoldingText seems like a godsend to me.

    So, I like the direction very much and I will be playing around with it more. I will let you know more after I've spent some more time on it. By calling it FoldingText I assume you're going to have hoisting / collapsing at some point, right?

    Thanks again for including me in the trial.

    Matt

  4. 5 Posted by Ian Beck on 02 Jun, 2012 04:31 AM

    Ian Beck's Avatar

    There are other programs out there that do what Ian wants....IA Writer, comes readily to mind

    Not a huge fan of iA Writer, actually. It's a little too restrictive and the syntax coloring is identical to the regular text, which doesn't lower the impact enough (although I do love that it also offsets list elements and so forth to the left).

    My favorite Markdown editing experience so far is the one I implemented for myself in Espresso, actually (go figure) but there's no way to do things like offsetting elements into the margin to keep the actual text aligned, provide inline clickable links, and so forth so I keep looking for a dedicated alternative to fill my needs.

    I don't want to have anything to do with Markdown at all. Give me the results!

    What I wonder is if this is a common (and heretofore untapped) need out there. Developing TapNote, I would occasionally get emails from people asking for rich text editing. When I picture this, I picture low-impact Markdown that styles the text as it is input, because I like to see exactly what code I'm writing (this is why I code HTML by hand, too). But whenever I engaged them on the topic, that was rarely what they were envisioning. There may well be a potentially large market of people like Matt who don't feel like myself, and who are underserved because my opinions are the ones commonly held by other developers who are developing these sorts of apps.

    Ian

  5. 6 Posted by matt.m.crider on 02 Jun, 2012 02:05 PM

    matt.m.crider's Avatar

    What I wonder is if this is a common (and heretofore untapped) need out there.

    I'd put money on it that there is.

    Matt

  6. Support Staff 7 Posted by Jesse Grosjean on 02 Jun, 2012 06:26 PM

    Jesse Grosjean's Avatar

    Matt,

    By calling it FoldingText I assume you're going to have hoisting / collapsing at some point, right?

    Yes, that’s one of the features that we already implemented, but took out at the last moment. I expect it’s one of the first that will return. The trick is to implement it in such a way that our app keeps the feel of a text editor… I want to be able to do folding, but I don’t want to be looking at outliner style expand collapse widgets all over the place.

    I do agree with Ian about one thing. If you completely hid away the formatting in a sort of Rich Text way, then I would prefer that. But, absent that, what I'm seeing in FoldingText seems like a godsend to me.

    We are set on making FoldingText a syntax highlighting plain text editor. So while it would be possible to implement full RTF style formatting, we won’t be doing that. In my mind the current behavior is really just another form of syntax highlighting, it’s just context sensitive to the current selection.

    We aren’t trying to hide the syntax to make things easier, and I’d agree with Ian that it actually makes things more confusing. But the reason why it’s valuable for me is that once you understand it you can type your documents in markdown, but have a cleaner look and not have to be visually sorting through markdown syntax all day except when you need it.

    I think in the end (unless many other testers don’t like it) we’ll be keeping the current behavior, but will allow changing it to more traditional syntax highlighting by changing the theme.

    The market that we are targeting is definitely geeky people who like plain text.

    Jesse

  7. 8 Posted by matt.m.crider on 02 Jun, 2012 06:39 PM

    matt.m.crider's Avatar

    Yes, that’s one of the features that we already implemented, but took out at the last moment. I expect it’s one of the first that will return. The trick is to implement it in such a way that our app keeps the feel of a text editor… I want to be able to do folding, but I don’t want to be looking at outliner style expand collapse widgets all over the place.

    Understood. And, agree. And, thanks.

    We are set on making FoldingText a syntax highlighting plain text editor.

    I'm absolutely fine with that.

    We aren’t trying to hide the syntax to make things easier

    But, please, don't completely throw out the baby with the bathwater. What I mean is this: What would be wrong with some Taskpaper-like commands that make things easier? For example, Command-Return could return a list item, as Taskpaper does. What's wrong with easier? The Geek could still cursor back to reveal the syntax. Please don't sacrifice EASIER on the altar of NOT-GEEK-ENOUGH. :-)

    Thanks.

    Matt

  8. Support Staff 9 Posted by Jesse Grosjean on 02 Jun, 2012 07:28 PM

    Jesse Grosjean's Avatar

    What I mean is this: What would be wrong with some Taskpaper-like commands that make things easier?

    I think we are all pretty much on the same page here except for the bit about syntax highlighting, and that’s very easy to make into a setting. TaskPaper style (new something) commands fit perfectly well into my idea of a structured plain text editor. I don’t think I’ll include them yet, because they also add UI elements that I’m trying to avoid, but I’m not against them, just not at this point.

  9. 10 Posted by matt.m.crider on 03 Jun, 2012 03:04 AM

    matt.m.crider's Avatar

    Great, Jesse. Thanks.

    I'm really looking forward to how this develops. I have been wanting something like this for the longest time.

    One question. Is there a reason the left margin is so far into the window?

    Matt

  10. Support Staff 11 Posted by Jesse Grosjean on 03 Jun, 2012 03:31 AM

    Jesse Grosjean's Avatar

    One question. Is there a reason the left margin is so far into the window?

    The line wrapping defaults to 66 characters, and then centers the text. But if you want you can make it "Wrap to Window" from the "Format" menu.

  11. 12 Posted by Ken Burke on 05 Jun, 2012 06:15 PM

    Ken Burke's Avatar

    Could the Markdown simply be hidden with an on/off toggle somewhere? "Show Markdown" / "Hide Markdown".

  12. Support Staff 13 Posted by Jesse Grosjean on 05 Jun, 2012 06:21 PM

    Jesse Grosjean's Avatar

    Could the Markdown simply be hidden with an on/off toggle somewhere? "Show Markdown" / "Hide Markdown”.

    Yes, that would be easy to implement, but for now I want to avoid adding tons of options like that. The menus could get filled with lots of geeky commands pretty quickly if I’m not careful. So for now you can turn off by hacking into unsupported themes. Longer term their might be a better solution.

  13. 14 Posted by Max Jacobson on 07 Jun, 2012 03:14 AM

    Max Jacobson's Avatar

    I agree with Ian Beck that creating a new paradigm for editing text where things are always moving around in difficult to predict ways is unappealing. I usually use Mou for writing Markdown, and really like it. It does previewing in a panel to the side. Its syntax highlighting doesn't adjust text size or hide things.

    What I'd really love is an app that I could recommend to less nerdy friends and family, so that I could send them .md documents and they could open them and not be totally confused. I'd use it occasionally, but it's not really for me. It's for people like my dad and my writing partner Dillon.

    I'd like them to be able to edit these documents without ever seeing any markup. If they delete a header, character by character, when they get to the end of the line, the octothorpe wouldn't become visible (as it does in the current version of FoldingText), it would just disappear. When they command+i to italicize, they won't see the asterisks, because they're not relevant to them.

    The GUI would be like a minimalist MS Word that only covers the functions that Markdown supports.

    I suppose you're saying that's not your vision?

  14. Support Staff 15 Posted by Jesse Grosjean on 07 Jun, 2012 02:10 PM

    Jesse Grosjean's Avatar

    The GUI would be like a minimalist MS Word that only covers the functions that Markdown supports. I suppose you're saying that's not your vision?

    Yeah, that’s not what we are going for. We definitely want the syntax available for editing. I’m not sure if syntax hiding will be default in the end or not, but in any case it will be switchable. So if you do like to alway see syntax that will be an option.

  15. 16 Posted by matt.m.crider on 07 Jun, 2012 02:18 PM

    matt.m.crider's Avatar

    I’m not sure if syntax hiding will be default in the end or not

    I think you should make it the default. Why? Because there are several other apps out there that have the syntax in plain view. In order to differentiate yourself you would have to explain how you were different. If you have the default setting to hide the syntax, then the potential customer will clearly see the difference. And, those geeks who insist on seeing it can always change the setting.

    So, if you want to expand into the non-geek world, which is the majority of humanity, then I suggest you make it the default setting.

    I just hope that you have invited a mix of geeks and non-geeks to this forum or else you're going to get skewed feedback. (Of course, I am giving you the correct feedback....ahahahahahahaha)

    Matt

  16. 17 Posted by jonnyskov on 14 Jun, 2012 12:54 PM

    jonnyskov's Avatar

    At last! Man I feel like I've been waiting for this puppy for years! Anyway, It's off to a lovely start. You know I'm really looking forward to the "folding/hoisting" and other long document functionality. It will be interesting to see how it it performs on a document with 93K words. Two things leap out for me on this initial viewing.

    • I'm coming down somewhere in the middle on showing/hiding the syntax. It's never bothered me that it's there, but I think it looks quite nice hidden. A keyboard toggle for that would be great. Also, I wonder if the syntax could be show when you select the line, not just the area next to the syntax itself. This this more intuitive to me. If I click on the header line, I want to immediately know what level of header it is without having to click on the exact spot where the syntax is located.

    • Speaking of headers, I like the keyboard commeds for paragraph types. I was wonder if it would be posible to either have commands for H2 and H3, or if the current H1 keyboard command CMD+4 could be used to toggle through headers so that if I hit it once i get H1 and if I hit it a second time, I get an H2, etc.

    So far it's looking lovely! Looking forward to the next step!

  17. Support Staff 18 Posted by Jesse Grosjean on 15 Jun, 2012 05:25 PM

    Jesse Grosjean's Avatar

    It will be interesting to see how it performs on a document with 93K words.

    Long term it should be fine I think. Right now I think it should be fine for editing, but could take a very long time to load, depending on the content. (Our parser for detecting inline spans (strong, italic, etc) is the bottleneck at the moment)

    A keyboard toggle for that would be great.

    The hiding behavior is all defined in the theme file. So assuming that themes eventually become a public think (I expect they will) then you can toggle between two similar themes to achieve this.

    I was wonder if it would be posible to either have commands for H2 and H3

    Once converted to a header you can use tab and shift-tab to increase/decrease the heading level. Does that solve the problem?

  18. 19 Posted by jonnyskov on 15 Jun, 2012 07:56 PM

    jonnyskov's Avatar

    The tab and tab+shift completely solves the problem.

    If you could find a way to allow toggling through themes with keyboard
    shortcuts, that would be ideal.

    The slow load on large docs is worrisome, but not altogether surprising. As
    a work around would you be willing to add mmd-merge or a similar function
    into the app? Or would that be opening the mmd pandora's box? I noticed you
    aren't offering any direct mmd functionality directly. I assume that's
    a conscious choice.

  19. Support Staff 20 Posted by Jesse Grosjean on 16 Jun, 2012 03:44 AM

    Jesse Grosjean's Avatar

    The slow load on large docs is worrisome, but not altogether surprising.

    It should get much better in the next release I think. I’m opening around 100,000 lines and 1,000,000 words in less then 10 sec. The existing releases have had lots of debug assertions enabled and also I’ve removed the slow parser for spans.

    Performance depends quite a bit on the document content (more markdown syntax === slower), but I think in general the next release should be fine for human sized documents. When it comes out please try and let me know.

  20. Support Staff 21 Posted by Jesse Grosjean on 19 Jun, 2012 06:16 PM

    Jesse Grosjean's Avatar

    The slow load on large docs is worrisome, but not altogether surprising.

    Jon, can you try your larger document in the latest release. Could still be bottlenecks, but should be better then before I think.

  21. 22 Posted by Keith Calder on 21 Jun, 2012 12:43 AM

    Keith Calder's Avatar

    I'm pretty excited about FoldingText. It definitely shows a lot of potential.

    Personally, I like hiding the syntax, but I do like the idea of it being visible for the line that currently contains the cursor (rather than only when you are right next to it).

    I hope future versions will allow for support of other types of markup languages. This could be great with Fountain as an app for writing screenplays.

  22. 23 Posted by Alex aubert on 21 Jun, 2012 08:06 AM

    Alex aubert's Avatar

    Folding Text is exactly what I've been waiting for. I like the way the syntax is hidden, that's what makes it special to me.

    What I don't really like actually is the formatting itself, poor typography and alignment on lists especially. But that's something you (we?) can easily improve.

    Very good job and please keep it that way, don't make it another IAWrite like some suggests.

  23. Support Staff 24 Posted by Jesse Grosjean on 21 Jun, 2012 12:36 PM

    Jesse Grosjean's Avatar

    What I don't really like actually is the formatting itself, poor typography and alignment on lists especially. But that's something you (we?) can easily improve.

    It’s intentionally plain looking so we’ll have a baseline from which to style things. At the moment we want to just get functionality right first. If you really want to change things now see:

    http://support.foldingtext.com/discussions/problems/6-explicit-time...

    Jesse

  24. 25 Posted by Matthew Geddert on 21 Jun, 2012 09:12 PM

    Matthew Geddert's Avatar

    +1 for showing the syntax on the block/line you are currently editing and hiding it for all other blocks. It is a bit jarring to move the cursor over an italic/bold/code word and have the rest of the line reposition itself.

    Another nicety would be the automatic integration of SmartyPants for curly quotes and the correct dashes, but only it if would be for display only and not for editing, copying or when saved to disk as plain text.

  25. 26 Posted by Jean on 21 Jun, 2012 09:41 PM

    Jean's Avatar

    Good work. I agree with some of Ian’s assertions but I have to practice to figure out. I’m waiting for an app with Fountain support to. I stay tuned.

  26. 27 Posted by Jefferson on 21 Jun, 2012 10:33 PM

    Jefferson's Avatar

    Wow. Really, wow. I've only recently started coming to conclusion that Markdown is really what I've been looking for. Ever since Taskpaper went live w/ its IOS app, I've been pretty happily using it. However, I've recently been feeling constrained in trying to use it as a general purpose editor for formatted text. This seems to address almost all of the problems I've been struggling with.

    Is it safe to assume that, at some point, you'd follow this up w/ an IOS app?

    At the moment, I'm currently playing around w/ Multimarkdown Composer on the Mac and WritingKit on IOS.

    As for the debate above, I like to toggle for hiding syntax and exposing it. As it stands, I prefer the current mode of 0.4 over always exposing the syntax.

  27. 28 Posted by anatomatic on 22 Jun, 2012 04:13 AM

    anatomatic's Avatar

    @Keith @Jean

    I heartily agree with you that FoldingText has enormous potential for syntaxes other than Markdown, such as Fountain. Jesse has already voiced that Fountain is beyond the scope for the project, which makes sense considering there are probably many more web-writers who use Markdown to write HTML than screenwriters who use Fountain to write screenpalys.

    But Fountain and Folding Text are still in their respecive infancies. I hope that the multiple controllers and Javascript plug-in API alluded to will allow for some hacking to extend FT's capabilities, à la Marked + Fountain.

  28. 29 Posted by Keith Calder on 22 Jun, 2012 11:03 AM

    Keith Calder's Avatar

    Ah, I hadn't seen that Jesse already said Fountain is beyond the scope for the project. That's too bad. I'm still curious about FoldingText, but it definitely reduces my enthusiasm a bit.

  29. Support Staff 30 Posted by Jesse Grosjean on 22 Jun, 2012 04:01 PM

    Jesse Grosjean's Avatar

    RE: Current Line syntax highlighting:

    Please try out version 0.5:

    http://support.foldingtext.com/discussions/problems/28-foldingtext-05

    It highlights all line level syntax in the current line, but I’m resisting showing span level syntax such as for bold and italic. The problem is when those syntaxes show they make the text jump around (the big drawback of the idea) and I think it’s better to only do that when the cursor is actually in the effected text.

    RE: iOS

    Porting to iOS is definitely on our todo list, but it’s going to be some time. Our focus right now on getting it working on OS X first.

  30. 31 Posted by Matthew Geddert on 22 Jun, 2012 04:19 PM

    Matthew Geddert's Avatar

    I really like the way it works in 0.5!

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac