tags instead of categories (was Re: [SVN] New info.plist keys for description etc.)
Chris Thomas
chris at cjack.com
Fri Feb 16 19:25:23 UTC 2007
You are, of course, proving my statement that the simple category
approach is simpler. :)
On Feb 16, 2007, at 12:47 PM, Allan Odgaard wrote:
> build -- some sort of build system (Makefile, SCons, …)
> framework -- a framework (OpenGL, Rails, Django, Qt, …)
> gtd -- some sort of GTD (GTD, GTDAlt, TODO, …)
> mac -- mac-specific (AppleScript, Xcode, …)
> mail -- related to emails (Mail, …)
> markup -- markup language (XML, Textile, reST, …)
> programming -- programming language (Ruby, C, …)
> prose -- structured text (LaTeX, Markdown, …)
> scm -- revision control system (Subversion, CVS, …)
> utility -- stuff which is useful tools (Math, Remind, …)
> web -- web related (HTML, Symfoni, PHP, …)
For broad categories, for use as the root of a displayed bundle
hierarchy, the list should be somewhat smaller (and, I think, more
specific):
applications -- interfaces to the outside (blogging, web search,
Terminal, Mail? …)
build -- some sort of build system (Makefile, SCons, …)
file formats -- data files, not 'markup' (plist, iCalendar, sshd,
Tabular, …)
framework -- a framework (OpenGL, Rails, Django, Qt, …)
markup -- markup language (XML, Textile, LaTeX, Markdown,
tablature, …)
productivity -- (GTD, GTDAlt, TODO, Remind …)
source code -- programming language (Ruby, C, …)
scm -- revision control system (Subversion, CVS, …)
tools -- generic commands for text manipulation (Math, …)
That gives you three more categories than you originally listed, by
breaking out the utilities category into applications, file formats,
productivity, and tools. I don't think there's value in distinguishing
marked-up prose languages from markup languages, the overlap is too
wide.
> Do we want to tag for compiled, script / interpreted? Probably not…
> Do we want to tag for procedural, OO, functional, …? Might be
> useful. E.g. how many functional languages do we have support for?
> etc.
I would say not. You can end up in a debate over, for example, the
features required for a true OO language, or for a true functional
language. Does Ruby get the 'functional' tag? Does C++ get the 'OO' tag?
> Also, each language should be tagged with its own name, so that
> supporting bundles can be tagged with it as well. So for example
> seeing all bundles tagged ‘python’ will show all bundles which are
> somehow related to Python.
The app could also add the name of the bundle to the tag list
internally.
> Question: what about bundles containing multiple things? Do we just
> add multiple tags, do we split the bundle (nah…), or do we maybe tag
> individual commands (confusing)? For example the Ruby bundle has a
> command for running rake, does that mean it should be tagged
> ‘build’ (to indicate that the bundle is for a build system)?
Tag for the user of the bundle. Ruby is for Ruby programming. Rake is
still Ruby code.
>> It's possible this is better implemented through an external
>> mechanism rather than directly in bundles.
>
> I don’t follow that. What do you mean?
Instead of tags in the bundle, use a file listing bundles needed for
one particular task, the "Rails Development" file would include Ruby,
Rails, HTML. This would probably be simpler for user customization in
a dynamically-switched-subset scenario.
I don't know. It does get complicated. Maybe it's better to hold off
until the need is clear.
Chris
More information about the textmate-dev
mailing list