MarsEdit and WYSIWYG editing. An interesting question came up in the comments for the previous post: why doesnt MarsEdit do WYSIWYG editing?
We plan to add WYSIWYG editing in the future, but its not there yet.
Im not sure what more I can say publicly about it, because this
feature depends on another company making a WYSIWYG editor component
available. Its a component well be able to use but that we didnt
write. (This isnt hypothetical: its a real thing thats in the works.)
The good thing about this component is that its support for HTML and
style sheets is fairly complete. Its worth the waitbut its not worth
holding up MarsEdit 1.0 just to wait for it.
We could have done a limited WYSIWYG editor that supports the basics.
But its not a good idea to spend time writing code that wed just toss
later.
Another reason not to do a basic WYSIWYG editor is that it would be a black hole, sucking up all our time.
Why would it be a black hole? Because everybody who uses it would need
just one more feature than it has, and every just one more feature
would be a different feature.
Imagine if it supports the basics: bold, italics, links, and images. If
it didnt support right-aligned images, people would ask for it.
Someone else would say that they need
tags. Another person would say that it has to reflect the style sheet
they use for their site. Another person would absolutely need tag support. And so on and so on. These would all be reasonable requests.
But there would be so many of them that I wouldnt be able to stop
until I had written a full HTML parser, renderer, and editorwhich is a
huge job.
The good news is that some other folks are doing that, and I dont have to! (That news is more than good, its wonderful.) But the downside is that we have to wait a little while before we can use it.
Above I used the term black hole to describe a limited WYSIWYG
editor. The issue of development black holes is something Im very
sensitive to, since Ive been stuck in them beforethough not for
several years, thank goodness.
One type of black hole is a feature that has no end and never pleases
enough people to be worth it. If you keep putting resources into it, it
gets more complete, but it never comes anywhere near the 80% mark you
want to reach. You keep thinking that youre getting close to it, but
youre not. You double your efforts, you work harder, you add features,
it feels like progress, but it isnt.
Small, independent developers need to be especially careful to avoid
black holes, since one black hole can take out your business.
(Larger companies can handle a few black holesbut even then they
eventually cancel them, if theyre smart. Larger companies and
organizations also have the resources to tackle a feature that would be
a black hole to a small company.) [inessential.com]