Elvish: What is the canonical way to refer to Elvish script?

Created on 23 Apr 2020  路  6Comments  路  Source: elves/elvish

Working on a change caused me to notice that the project uses Elvishscript, elvishscript, Elvish script and elvish script interchangeably. There are only a handful of any of those terms in the project and it's a bikeshedding type of issue. 馃樅 Nonetheless, now is the time to establish a standard spelling for referring to programs written in Elvish and document it.

Is there some reason to prefer the form "Elvishscript"? Googling for bashscript returns 2.78M results versus bash script that returns 173M results. Similarly, I can't think of any instances where related terms such as "pythonscript" were used or I expected them to be used. Having said that, there are clearly a lot people who think the "${lang}script" form is appropriate. And, simply from a "how to maximize useful search results", the HTML for this project should probably embed "elvishscript", "elvish script" and, maybe, "elvish-script" in every HTML document.

P.P.S., One of those used is in ./website/blog/0.10-release-notes.md which raises the question of whether a retroactive change is acceptable in order to improve consistency.

question

Most helpful comment

I removed uses of "Elvishscript".

Re the original question, the Elvish language can just be called "Elvish", a standalone script "Elvish script", an importable module "Elvish module".

All 6 comments

Yes I went went back and forth on this over the years.

Let's go with the most common-sense version of "Elvish script". I don't see the harm in a few small retroactive changes.

Actually, looking at places where I wrote "Elvishscript", I am not sure whether they should be changed to "Elvish script". I tended to use "Elvishscript" to refer to things written in the Elvish programming language, such as "Elvishscript module" for referring a module in a .elv file, written in Elvish.

Changing this use to "Elvish script module" is awkward, since a script is not a module.

Changing this use to "Elvish module" is ambiguous, as it can also mean a builtin module implemented in Go.

I am no longer sure.

Changing this use to "Elvish script module" is awkward, since a script is not a module.
Changing this use to "Elvish module" is ambiguous, as it can also mean a builtin module implemented in Go.

I don't see any ambiguity other than, maybe, for people modifying the Elvish source code. 99% of Elvish users are not going to be aware of, let alone familiar with, the underlying Go language.

Perhaps the simplest solution is to use "Elvish language" where any of these variants of "elvish script" is used. And "Elvish language module", or "Elvishscript module", seems redundant. Why not just "Elvish module" since the capitalized form refers to the language rather than the program?

Also, as I said earlier I think the generated HTML should embed the "elvishscript" and "elvish script" variants to maximize search results.

FWIW, I always refer to them as "Elvish modules" or "Elvish scripts". Built-in modules are "Elvish built-in modules", so in my mind there is no confusion. "Elvishscript" sounds a bit weird to me.

I am more or less convinced that "Elvish module" won't cause misunderstanding for most users, so normally it could be used.

The reference docs of Elvish (especially language.md) needs some extra rigor, and the wording needs to be decided on a case-by-case basis. That said, there are actually only two matches for (?i)elvish ?script in website/ref:

In language.md (it's a shame that GitHub does not support referencing Markdown source...):

You can define your own modules with Elvishscript by putting them under ~/.elvish/lib

This can be changed to "in the Elvish language"

In bundled.md:

The Elvish binary is bundled with some Elvishscript modules.

Here how the modules are implemented is a technical details, and it's obvious that the modules Elvish come with are Elvish modules, so the "Elvishscript" can just be removed.

I removed uses of "Elvishscript".

Re the original question, the Elvish language can just be called "Elvish", a standalone script "Elvish script", an importable module "Elvish module".

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bpinto picture bpinto  路  5Comments

krader1961 picture krader1961  路  4Comments

aeosynth picture aeosynth  路  4Comments

zzamboni picture zzamboni  路  3Comments

krader1961 picture krader1961  路  8Comments