Though I agree about simplifying I think we should not overdo it either.
I’ll quote Jeff Veen from his famous "
Making A Better Open Source CMS" :
Stop it with the jargon already. I don’t know what a portlet is. Or a component, module, block, or snippet. The last system I evaluated had something called "mambots" which, to me, sounded like robotic assistance for breast feeding. Are you making up words to promote your differentiation in the market? Because it is confusing. Please just use simple words to describe the things your system does.
I know one of the simplification people have in mind is : snippets + chunks = a single item (to be named). Not sure... Those two items don’t do the same thing at all. It wouldn’t fit a task based approach to merge them.
If we stick to Veen’s "describe what it does", let’s examine what each of MODx components do :
Chunks
What do chunks do ?
Enable content
re-use.
Pure and simple.
Notice I am not digging into the
nature of the content (what it is), but what it
does). To me the re-usability is the core of the concept, even more than the "bits of content" part (a chunk can contain a lot of things after all).
Should we rename it, I would start brainstorming on the re-use part.
Snippets
Snippets process content and perform operations on it (filter, sort, querry... whatever).
I don’t think "Processor" or "ContentProcessor" is sexy though

, but with a bit brainstorming...
Plugins
Plugins listen to system events and process content/perform operations on it upon the event’s occurence in the parsing order.
I guess what differientiate a snippet from a plugin is the ability to listen to system events, plus the fact it can operate frontend and backend
Modules
Modules expand the core features.
Does not mean I think "CoreXt" or "CoreXtension" would be sexy...
Sorry if this is a bit abstract and/or inaccurate (no coder as you know).
I think whatever perspective we choose we should keep in mind it’s about being coherent and understood. For me, using a task based approach (what does a component do ?) is more coherent than a nature based approach (what does the component contain ? php, hmtl, js....).
Yet, it’s not easy since for each component we have different perspective :
- Scope (where is the component used ?) : frontend or/and backend ? Snippets and chunk operate frontend, Plugins both, Modules backend...
- Nature (what is the nature of the component ?) : snippets are php, chunks are html or js or css or text, plugin are php, modules are php
Anyway, here were some first thoughts about this...
But it’s bound to be inaccurate since the new core means different components, doesn’t it ?