The discussions about built-in functions vs. features for plugins and about the 
style / "Mac-like-ness" of TextMate vs. BBEdit are, I think, related.

The core issue is whether to build an application that includes the bare 
minimum functionality with robust extensibility, and ship it with plugins that 
"flesh out" the feature list, or to build a "feature complete" application, 
with enough customizability to handle most of the 5% edge cases. TextMate takes 
the former approach, BBEdit the latter.

If you take a look at TextMate, when you remove the standard bundles 
(TextMate's extension mechanism), you get a _very_ spartan text editor, with 
really just the ability to create text documents, move around, and type. 90% of 
what makes TextMate a terrific editor is in the bundles. Beyond the core 
basics, TextMate allows the bundles to hook into keystrokes, insertion point 
position, the current selection, the current document, etc., and then "shell 
out" to process things, and then replace, insert, annotate, decorate, or 
mutilate various pieces in the current document. 

BBEdit, by comparison, is a much more complete editor, even when stripped of 
the few "plugins" it ships with. The functionality is built into the core of 
the editor. But while BBEdit offers very good extension options, they are 
either much harder to use (e.g., the "good" syntax highlighting) or not quite 
as powerful (e.g., the "easy" syntax highlighting) as TextMate's. 

Both of these are very Mac-like approaches, both products have terrific user 
interfaces and fantastic functionality, both products have their fans (I love 
and use both). And there are advantages and trade-offs for both approaches. You 
could argue that BBEdit is a more "classic" style of application, while 
TextMate is a more "Unix" or "Mac OS X" style of application, but that's kind 
of irrelevant.

To bring this back to Letters.app, there is most definitely a "core" set of 
functionality, without which it is not an email application _at all_. And then 
there is another set of functionality that takes it up to some arbitrary 
definition of "1.0". 

The first set of features almost certainly needs to be built into the 
application, Cocoa/Objective C. But the second set of features can either be 
part of the "core" application, or they could be built as plugins. There is a 
line that can be moved along the scale to favor one or the other. I would argue 
that as much as possible should be built as plugins.

Important: There is nothing about a plugin that says it can't be part of the 
product distribution. TextMate ships with a couple dozen sophisticated bundles, 
built and supported by MacroMates, that are what make it an interesting and 
useful product.

But by building the application in such a way that much of the 1.0 
functionality is constructed as plugins, you ensure that the plugin 
infrastructure is rich and powerful enough to let people go wild. Whatever the 
other debates about TextMate vs. BBEdit might be, it is very hard to argue that 
BBEdit's plugin ecosystem is richer, more vibrant, or more creative than 
TextMate's incredible third-party bundle ecosystem. TextMate includes both a 
powerful extension mechanism, and a slew of easy-to-access, powerful examples 
of how to use it. This has lead to far more (in my experience) options and 
features in third-party bundles than in BBEdit plugins or scripts.

My 2ยข.

Michael
---
Michael A. Alderete
<[email protected]>                tel: +1 (415) 609-5757
<http://aldoblog.com/>

_______________________________________________
[email protected] mailing list
List help: http://lists.ranchero.com/listinfo.cgi/email-init-ranchero.com

Reply via email to