What is "Open Language"?

Mark Waddingham mark at livecode.com
Mon Oct 26 05:00:20 EDT 2015


On 2015-10-24 22:47, Mark Wieder wrote:
> On 10/24/2015 12:21 PM, Peter TB Brett wrote:
> 
>> * hilite -> highlight
> 
> Actually I filed a bug report on that six years ago.
> http://quality.runrev.com/show_bug.cgi?id=8211
> 
> It got confirmed and ignored.
> I just submitted a pull request.
> Figured I might as well fix this myself.

There's a slippery slope here (in terms of the current engine parsing 
implementation at least) which means that just adding synonyms because 
the lack of them 'annoy' a small set of people (and/or because you can) 
really isn't something which makes sense.

It is clear that originally 'hilite' was the chosen spelling for that 
operation - it is an 'informal' spelling of 'highlight' which has been 
historically used in GUI frameworks (probably because it is a good deal 
shorter than 'highlight' - something which those who are fond of 'grp', 
'fld', 'ac, 'cd' etc. should feel at home with ;))

There was obviously clearly some contention over whether 'dehilite' or 
'unhilite' should be the antonym - given that even 'dehighlight' nor 
'unhighlight' tend to appear in dictionaries this is probably not 
surprising.

So, clearly someone 'complained' at some point (which is probably why 
dehilite and unhilite both exist) and 'highlight' was added. Indeed, 
there are actually the following fundamental synonyms for 'hilite' in 
the engine:
   - highlight
   - highlighted
   - highlite
   - highlited
   - hilite
   - hilited

So that is 6 ways to write exactly the same thing. (It gets better in a 
moment)

We now have the following 'compound' property names involving 'hilite':
   - hiliteborder
   - hilitecolor
   - hilitefill
   - hiliteicon
   - hilitepattern
   - hilitepixel

We also have the following 'compound' property names involving 
'hilited':
   - hilitedbutton
   - hilitedbuttonid
   - hilitedbuttonname
   - hilitedicon
   - hilitedline
   - hilitedtext

There are also the following 'other' properties:
   - autohilight
   - autohilite
   - linkhilitecolor
   - multiplehilites
   - noncontiguoushilites
   - sharedhilite
   - showhilite
   - threedhilite
   - togglehilites

So, there are (in fact) the following variations on 'hilite' currently 
in use in the engine:
   - hilite
   - highlite
   - hilight
   - highlight

Which, if accounted for in synonyms would mean we would end up with (I 
believe) 72 keywords if we ignore the 'ed' forms, and 144 if we have 
both the preset and past participles. Also, it means that every time 
anyone wants to add a property containing 'hilite', they need to add 4 
(maybe 8) variants. This kind of 'blow-up' suggests that there is 
something wrong with the approach.

So, I do think that in this case it would be far better to *choose* what 
variant spelling is the normative one and deprecate all the other 
synonyms at least until there is a much better mechanism in place for 
parsing and resolving synonyms (i.e. when compound properties are 
specified as separate words, and synonyms are substitutions done as a 
pre-processing step).

For anything like there has to a policy and my policy has always been - 
you choose a single representative for a single concept and you stick to 
it. In this case 'hilite' is a perfectly valid word to use (given its 
domain - i.e. GUIs); indeed, it is just as valid a choice for 
'highlight' as 'color' is for 'colour' and 'behavior' is for 
'behaviour'. At the end of the day this is a computer language and as 
such logical and sensible choices have to be made. (One could also argue 
that the problem of synonyms and abbreviations is far better handled in 
the script-editing environment... Although nobody ever seems to agree 
with me on that one - even though the resulting effect would be 
identical for all intents and purposes ;)).

Now, I'm not saying this won't change - clearly there is a want for 
synonyms as a fair few people seem quite fond of them. However, there 
needs to be a good mechanism in place to deal with them in the engine 
and there currently is not (particularly when considering compound 
forms) so caution is hugely advisable.

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list