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
