Naming

7 views
Skip to first unread message

hamish

unread,
Oct 27, 2009, 5:11:16 PM10/27/09
to jQuery Concrete
Hi Everyone,

I was just contacted by concrete5, an open source CMS system, worried
about confusion between their name (which they've trademarked) and
jQuery.Concrete.

Because they asked nice, and because I've never really been super
happy with concrete, especially the method call name, I'm considering
renaming the project, and especially the name of the function.

Does anybody have any suggestions? I initially chose concrete because
I couldn't come up with anything better. When someone on the
SilverStripe dev list asked about the name, I posted:

> The technique the library is based around is called 'Concrete UI'. I
> wanted a name that was short(ish), unlikely to clash with any other
> library (which ruled out bind, attach, methods, etc), or suggest
> metaphors that are either inaccurate or confusing (i.e. klass)

But concrete doesn't really have a nice semantic meaning to it - it's
just a syntactic token. I'd be nice if we can pick something that
improves readability. Although 'methods' is listed above on my DNW
list, I'm not sure if there actually is a clash with it, and I think I
quite like it

$('.selector').methods({
foo: function(){}
})

It does seem weird to be putting properties into a block called
methods however. Other options: description, described_by, appearance,
structure, behaviour (clashes with the original prototype behaviour),
all the synonyms of behaviour (form, guise, nature, role, way)

Suggestions?

Hamish Friedlander

hamish

unread,
Oct 29, 2009, 5:27:50 AM10/29/09
to jQuery Concrete

No one has any ideas? Oh well. Here's some of my favorites, most
favourite first:

Specificity - $('.selector').has({...}), $.in('namespace', ...)

Good: Nice name, means something, no clashes with other projects,
methods short, read well
Bad: Specificity hard to spell, in is a reserved keyword, might cause
problems in IE.

Attachable (alt: Attachment) - $('.selector').attach({}), $.on
('namespace', ...)

Good: Short, memorable, no reserved keywords, attach is what low pro
uses
Bad: attach is what low pro uses, sort of sounds like a file
attachment library

Selective Reasoning - $('.selector').has({...}), $.in
('namespace', ...)

Good: Memorable.
Bad: in a reserved keyword

If no one has any comments, I'll probably do some tests to see if 'in'
causes problems in IE. If not, I'll go with the first option. If it
does, I'll probably still go with the first option, but with 'on'
instead of 'in'.

Hamish Friedlander

Mike Frawley

unread,
Oct 29, 2009, 6:16:44 PM10/29/09
to jQuery Concrete
Sorry for the delay, was without Internet for a few days :)

I like 'behave' or 'behaves' as its quite descriptive. Similar to
'behavior', but maybe _too_ similar.

Some I came up with, mostly 'actor' related:

act
persona
mask
masque
pose
guise
veil
cover
cloak
crust

`Masque` is unique; `act` ain't bad.

Whatever you go with, I think you should keep the jQuery and jQuery.fn
names the same. It might read a little better if they are different,
but IMO its not worth the mental overhead of remembering both, and
when one applies. Ideally the function name would be the same as the
project name as well. Both seem pretty standard practice for jQuery
plugins.

I also wouldn't use a common word like 'has', 'in', or 'on'. The
concrete blocks are doing some pretty special stuff, so they should
stand out a bit more. Those simple words will blend in when reading/
scanning through the code. Something like 'behave' or 'masque' would
make determining the concrete declarations much easier and require no
mental context when scanning. Also, you'd have to know jQuery really
well to know `$().has` and `$.on()` are plugin methods; I'd assume
those were just normal jQuery methods.

Don't mean to over criticize, just think its important to get the
words right :)

Mike

Sam Minnée

unread,
Oct 29, 2009, 8:58:18 PM10/29/09
to jquery-...@googlegroups.com
jMorph, after the Squeak system that you're copying?

Mike Frawley

unread,
Oct 30, 2009, 11:42:39 AM10/30/09
to jQuery Concrete
+1 for jMorph. I like $().morph()

hamish

unread,
Nov 2, 2009, 5:08:47 AM11/2/09
to jQuery Concrete

I don't really like morph. It's not bad, but the word implies
something that I don't think maps terribly well to how concrete works
- similar, but not the same.

Morphic is better (The original squeak system is called Morphic UI),
but I don't know if we want to associate it that closely with the
original. I've never used Morphic UI, or know anything about it, so I
don't know how closely the two are related, but if I had to guess, not
very.

I've been thinking lately around three concepts that sort of refer to
how concrete works.

The similarity to state machines - jQuery State or jQuery Machine?

The similarity to russian nesting dolls (http://en.wikipedia.org/wiki/
Matryoshka_doll), i.e. the capabilities of a DOM object are expand in
layers - jQuery Matryoshka (thats harder to get right than
Specificity :), jQuery Nest, jQuery Layered?

The similarity to clothing, i.e. the mix-and-match to your tastes via
selector aspect. jQuery Haberdashery, jQuery Suit, jQuery Fashion,
jQuery Styled?

I'm not really super happy with any of those. I like jQuery Machine
and jQuery Fashion, because they sound cool, but in terms of
describing what concrete is in one word, I don't think they're any
closer than Morph.

I think what I'll do is give people a week to think of ideas and post
them here. If you like an idea someone else has come up with, second
it. In a week (Monday the 9th) I'll compile all the ideas that have
been seconded and put them up to vote on for a week (hopefully with a
http://en.wikipedia.org/wiki/Preferential_voting system, if I can find
an online service that does that). So far only Morph has been
seconded, which might make the voting easy :).

Hamish Friedlander

Sam Minnee

unread,
Nov 4, 2009, 4:14:36 AM11/4/09
to jQuery Concrete
> The similarity to russian nesting dolls (http://en.wikipedia.org/wiki/
> Matryoshka_doll), i.e. the capabilities of a DOM object are expand in
> layers  - jQuery Matryoshka (thats harder to get right than
> Specificity :)

You could abbreviate it - jYosh? It doesn't really have to mean
anything, it's just a handle.

Behaviour is a good word to describe it, but the existing JS library
with the same name is a problem. You could call it jQuery Behaviour,
jBehaviour, or even jHaviour? That last one is a little bit missing-
vowels, but hey, why not pick up on something was cool 2 years ago? :-
P

> I'm not really super happy with any of those. I like jQuery Machine
> and jQuery Fashion, because they sound cool, but in terms of
> describing what concrete is in one word, I don't think they're any
> closer than Morph.

jQuery Wardrobe, jWardobe, and jDrobe would also be alternatives in
the fashion metaphor.

Mark Stephens

unread,
Nov 4, 2009, 5:14:20 AM11/4/09
to jquery-...@googlegroups.com
On Mon, Nov 2, 2009 at 11:08 PM, hamish <ham...@silverstripe.com> wrote:

The similarity to state machines - jQuery State or jQuery Machine?

slightly tangential, jQuery neural?
 
The similarity to russian nesting dolls (http://en.wikipedia.org/wiki/
Matryoshka_doll), i.e. the capabilities of a DOM object are expand in
layers  - jQuery Matryoshka (thats harder to get right than
Specificity :), jQuery Nest, jQuery Layered?
 
The similarity to clothing, i.e. the mix-and-match to your tastes via
selector aspect. jQuery Haberdashery, jQuery Suit, jQuery Fashion,
jQuery Styled?

jWeave ($(x).stitch({...})  ? jPatch? (actually its a bit like patching in an analog synthesisor)

Sam Minnee

unread,
Nov 6, 2009, 4:41:53 PM11/6/09
to jQuery Concrete
For the purposes of giving a few more options to vote on:
+1 to jQuery Machine, jQuery Layered, jQuery Fashion, jPatch, and
jWeave.

;-)

Martin Pales

unread,
Nov 6, 2009, 5:01:54 PM11/6/09
to jQuery Concrete
Hi Hamish,

I am pretty excited by your work! I am really looking forward to see
this stuff finished, polished and available for use (also in
silverstripe).

Here are my naming suggestions (in order of my personal preference):

- jQuery Augment

$().augment({
foo: function(){}
})

- jQuery Scope

$().scope({
foo: function(){}
})

- jQuery Context

$().context({
foo: function(){}
})


Martin

Michael Frawley

unread,
Nov 8, 2009, 11:50:21 PM11/8/09
to jquery-...@googlegroups.com
The similarity to russian nesting dolls (http://en.wikipedia.org/wiki/Matryoshka_doll)

I pictured the same thing :) name isn't so great, though.


The similarity to clothing, i.e. the mix-and-match to your tastes via
selector aspect. jQuery Haberdashery,

Haha, it would be great if you had to type `$(…).haberdashery(…)`. 

Behaviour is a good word to describe it, but the existing JS library
with the same name is a problem.  You could call it jQuery Behaviour,
jBehaviour, or even jHaviour?

What about just behave?  _Oh, behave!_
 
My top three at the moment are:

- behave
- dress
- machine

˙∆˚ Mike

Marc

unread,
Nov 10, 2009, 7:52:26 PM11/10/09
to jQuery Concrete
I liked the different meanings of 'concrete' if you translate it to
german... so after several translations back to english i came to the
following suggestions:

Cement
Compound
Construct
Tangible
Stout
Edify
Abstract

and many more... maybe this brings you to some new ideas?!

btw I like "Compound" in the meaning of combine, compose, compile,
complex etc.

Marc


hamish

unread,
Nov 15, 2009, 9:06:58 PM11/15/09
to jQuery Concrete

OK, voting time (a week late, but oh well). This is just for the
project name - I'll pick whether to call it jQuery X or jX or X, and
what the method name will be based on winning item. Here are the
suggestions that have been seconded, or that I like, in random order:

behave
weave
guise
strata
morph
dress
fashion
layered
alloy
patch
stylie
machine

Voting system: Everyone has ten points to spend - you can spend them
to promote an item (alloy +4) or demote an item (dress -2), but either
way they count as points. Any vote with more than 10 points is
invalid. You can vote for a write-in candidate, but adding a write in
candidate costs 5 points (so you only have 5 points to spend to
promote that candidate or demote others).

Voting ends in one week. Whichever name gets the most points after
adding them all up is the winner. I maintain total veto power :P.

My vote:

strata +3
alloy +2
fashion +1
stylie +1
morph -1
patch -2

Hamish Friedlander

Ingo Schommer

unread,
Nov 15, 2009, 9:27:56 PM11/15/09
to jQuery Concrete
alloy +3
weave + 3
machine +2
morph +1
patch -1

Will Rossiter

unread,
Nov 15, 2009, 9:26:32 PM11/15/09
to jquery-...@googlegroups.com
weave + 2
morph + 2
dress - 1
fashion -1
layered + 2
stylie - 2

Not really feeling the fashion metaphors.

Sam Minnee

unread,
Nov 15, 2009, 10:02:14 PM11/15/09
to jQuery Concrete
morph +3
machine +3
weave +3
strata -1

Michael Frawley

unread,
Nov 16, 2009, 10:18:51 AM11/16/09
to jquery-...@googlegroups.com
behave +4
morph +4
dress +1
weave -1

Mark Stephens

unread,
Nov 18, 2009, 4:11:12 AM11/18/09
to jquery-...@googlegroups.com
Hi. My picks are

alloy +2
stylie -1
morph -1
weave +3
machine +3



On Mon, Nov 16, 2009 at 3:06 PM, hamish <ham...@silverstripe.com> wrote:

Mike Andrewartha

unread,
Nov 18, 2009, 3:39:59 PM11/18/09
to jQuery Concrete
Hello, my 2 cents:

morph -1
dress -1 (sounds girly)
fashion +2 (You think fashion's your friend, my friend. Fashion is
danger (Posing) Posing at the bar... FOTC FTW)
patch -1
layered +1

Pete Bacon Darwin

unread,
Nov 18, 2009, 3:59:20 PM11/18/09
to jQuery Concrete
I know this is a bit late but I am just noticing this group after the
posting to the Silverstripe Dev group.

My understanding of the library is that it is attaching new behaviours
to potential html elements, which is why so many people would love to
use Behaviour as a name. This is really a form of Aspect Oriented
Programming (http://en.wikipedia.org/wiki/Aspect-
oriented_programming), no? The wikipedia article has some good names
for this sort of paradigm from things like JAspect. But I reckon you
could just use JQuery Aspects:

$('.selector').aspects({
foo: function(){}
})

Pete

mateusz

unread,
Nov 18, 2009, 3:45:02 PM11/18/09
to jQuery Concrete
behave +10

On Nov 18, 10:11 pm, Mark Stephens <mr.morp...@gmail.com> wrote:

Hamish Campbell

unread,
Nov 18, 2009, 8:16:46 PM11/18/09
to jQuery Concrete
behave -5 (too similar to "Behavior", and "Behave" has ambiguous
connotations)
weave +5 (like the 'building/creating' theme.. 'weaving together an
application').

Although I really like Pete's late entry with "Aspect".

Regards
Hamish Campbell

Michael Frawley

unread,
Nov 19, 2009, 9:11:48 AM11/19/09
to jquery-...@googlegroups.com
My understanding of the library is that it is attaching new behaviours
to potential html elements, which is why so many people would love to
use Behaviour as a name.  This is really a form of Aspect Oriented
Programming (http://en.wikipedia.org/wiki/Aspect-
oriented_programming), no? 

I think this is more like a traditional class based OO system than AOP.  AOP seems to be about wrapping around methods independent of classes/hierarchies -- requiring a separate compiler phase in a language like java, or a 1K library in javascript :) http://code.google.com/p/jquery-aop/ 

Concrete is about classes & hierarchies, they are determined based on the view (dom selectors), and can change easily.

smurkas

unread,
Nov 19, 2009, 3:22:24 AM11/19/09
to jQuery Concrete
+10 to Aspect. It's the best word that hints at what this is about and
it isn't too common/ambiguous. Did Pete's add also count as Aspect+5
or does he have five points left?

Kindly,
Marcus

Sam Minnée

unread,
Nov 21, 2009, 8:06:46 PM11/21/09
to jquery-...@googlegroups.com
With these ppl voting +10, I think we've found a bug in your voting
scheme, Hamish. :-P

On 19/11/2009, at 9:22 PM, smurkas wrote:

> +10 to Aspect.

hamish

unread,
Nov 21, 2009, 8:23:19 PM11/21/09
to jQuery Concrete


On Nov 19, 9:22 pm, smurkas <marcus.dalg...@gmail.com> wrote:
> +10 to Aspect. It's the best word that hints at what this is about and
> it isn't too common/ambiguous. Did Pete's add also count as Aspect+5
> or does he have five points left?
>
> Kindly,
> Marcus

Pete suggested "Aspects" (the extra s is important), but I don't think
he officially nominated it as a candidate. I guess I'll leave it up to
him to come back and nominate it and vote or not.

I'm not that thrilled about aspects though. Using a name which has a
specific definition in computer science is going to confuse people.

Concrete is sort like aspect oriented programming, but it's also sort
of like object oriented programming and a bunch of other things. It
isn't _actually_ aspect oriented programming, and people are going to
come in with certain expectations that are wrong.

The extra s (Aspects rather the Aspect) does differentiate it
fractionally from AOP, but I'm not sure it's sufficient to totally
eliminate confusion.

Hamish Friedlander

hamish

unread,
Nov 21, 2009, 8:27:49 PM11/21/09
to jQuery Concrete


On Nov 22, 2:06 pm, Sam Minnée <sam.min...@gmail.com> wrote:
> With these ppl voting +10, I think we've found a bug in your voting  
> scheme, Hamish. :-P

It just means they feel really strongly about a particular candidate.
Or they're too lazy to try and add up the points they've spent on a
wide spread I guess :). Probably a 'maximum of 5 points per candidate'
rule would have been better, but hindsight is 20/20 and all that.

Hamish Friedlander

Mark Stephens

unread,
Nov 21, 2009, 9:05:23 PM11/21/09
to jquery-...@googlegroups.com
While I understand the motivation behind 'aspects' as a name, I agree with Hamish that this could mislead people coming into it. Its somewhat of a match of concept, but not complete. Further extension to the library may diverge from AOP programming. Would we want it to be constrained that way? Personally I'd rather a name with no specific technical connotations and let the library go in its own direction. 'Aspects' too closely ties the library to a specific methodology.


Mark

smurkas

unread,
Nov 22, 2009, 5:03:08 AM11/22/09
to jQuery Concrete
I voted on aspect because I really liked the name and I thought Pete
actually had put it up for voting.
However if you feel that it's not a suitable name for the library then
I retract my vote.

In that case I would like the chance to vote again and I promise to do
a more even spread this time instead of betting it all on one
candidate.

Marcus

hamish

unread,
Nov 22, 2009, 3:10:19 PM11/22/09
to jQuery Concrete


On Nov 22, 11:03 pm, smurkas <marcus.dalg...@gmail.com> wrote:
> I voted on aspect because I really liked the name and I thought Pete
> actually had put it up for voting.
> However if you feel that it's not a suitable name for the library then
> I retract my vote.
>
> In that case I would like the chance to vote again and I promise to do
> a more even spread this time instead of betting it all on one
> candidate.

Don't worry about it, everyone's entitled to their opinion. You can
leave it as Aspects if you like - if Pete comes back and officially
nominates it then I'll give you the whole ten points, otherwise I'll
count it as a write in candidate. Or you can revote. I probably won't
use it as-is if it wins, but some of it's synonyms are pretty cool.

Hamish Friedlander

smurkas

unread,
Nov 22, 2009, 3:27:13 PM11/22/09
to jQuery Concrete
Thanks!

My votes are
Machine +4
Morph +2
weave +1

Marcus

hamish

unread,
Nov 22, 2009, 9:42:38 PM11/22/09
to jQuery Concrete
OK, voting is now closed.

And the winner is ... Weave.

The final results are:

weave 21
machine 12
behave
 9
morph 9
alloy 7
layered 3
strata 2
fashion 2
patch 1
guise 0
dress -1
stylie -2

I think that's fairly decisively in favour of Weave. I'll start
updating the google group, github project and internal naming soon.

Thanks to everyone for the suggestions and votes.

Hamish Friedlander

Mark Stephens

unread,
Nov 22, 2009, 9:57:22 PM11/22/09
to jquery-...@googlegroups.com
Thanks for letting us be involved :-)

Renaud

unread,
Nov 21, 2009, 8:27:19 AM11/21/09
to jQuery Concrete
I'm french, and not realy good at english, but this came to my mind :

implementation =>
- implant
- expose
- actors
- casting
- features
- exports
- provide
- present
- introduce

namespacing =>
- realm
- using
- as
- act
- facet

I also realy like the idea of "dressing" a lot.

On Oct 27, 10:11 pm, hamish <ham...@silverstripe.com> wrote:
> Hi Everyone,
>
> I was just contacted by concrete5, an open source CMS system, worried
> about confusion between their name (which they've trademarked) and
> jQuery.Concrete.
>
> Because they asked nice, and because I've never really been super
> happy with concrete, especially the method call name, I'm considering
> renaming the project, and especially the name of the function.
>
> Does anybody have any suggestions? I initially chose concrete because
> I couldn't come up with anything better. When someone on the
> SilverStripe dev list asked about the name, I posted:
>
> > The technique the library is based around is called 'Concrete UI'. I
> > wanted a name that was short(ish), unlikely to clash with any other
> > library (which ruled out bind, attach, methods, etc), or suggest
> > metaphors that are either inaccurate or confusing (i.e. klass)
>
> But concrete doesn't really have a nice semantic meaning to it - it's
> just a syntactic token. I'd be nice if we can pick something that
> improves readability. Although 'methods' is listed above on my DNW
> list, I'm not sure if there actually is a clash with it, and I think I
> quite like it
>
> $('.selector').methods({
>   foo: function(){}
>
> })
>
> It does seem weird to be putting properties into a block called
> methods however. Other options: description, described_by, appearance,
> structure, behaviour (clashes with the original prototype behaviour),
> all the synonyms of behaviour (form, guise, nature, role, way)
>
> Suggestions?
>
> Hamish Friedlander

hamish

unread,
Nov 23, 2009, 3:08:17 AM11/23/09
to jQuery Concrete
Hmmm.

A quick google search to check to see if there are clashing usages for
'Weave' turned up this: https://mozillalabs.com/weave/

Not only do they have an awesome logo, I think Mozilla are in a
similar enough space that we're going to run into the same problem.

We could go with Weaver, or a synonym of weave, like Entwine. I have
to say I like Entwine quite a lot - can anybody find any clashing
usages? There's a finish metal band, but I think they're in a
different enough space that people aren't going to get confused.

Or we could pick a runner up. I'm not a big fan of Machine, Behave or
Morph, and there's already an open-source javascript UI library called
Allow.

Or do you think I'm being to careful, and the Moz won't care?

Hamish Friedlander

Mark Stephens

unread,
Nov 23, 2009, 3:13:26 AM11/23/09
to jquery-...@googlegroups.com
Its more different than with concrete5, I guess you could ask them. I think Entwine is quite a cool name as a substitute, I'd be happy to go with that.

If there are any more clashes, perhaps just go with a GUID :-)

Peter Bacon Darwin

unread,
Nov 23, 2009, 5:29:34 AM11/23/09
to jquery-...@googlegroups.com

How about simply “Handlers” or “Workers”?  This is what you are defining isn’t it?

Or if you want to stick with the weaving metaphor: “Tailor” or “Seamstress”?

 

Michael Frawley

unread,
Nov 23, 2009, 8:38:02 AM11/23/09
to jquery-...@googlegroups.com
Doh, forgot about mozilla's 'weave' project.  I'm happy with `entwine`
Reply all
Reply to author
Forward
0 new messages