libprima / PRIMA.jl

a Julia interface to PRIMA, a Reference Implementation for Powell's methods with Modernization and Amelioration
MIT License
21 stars 5 forks source link

`PRIMA.jl` or `prima.jl`? #7

Closed zaikunzhang closed 11 months ago

zaikunzhang commented 11 months ago

In general, I tend to write the name of the package as "PRIMA" when communicating with humans, but I tend to write "prima" in the code, excluding comments, which are human-oriented. The reason is as follows.

1."prima" or "Prima" may confuse a human due to the existence of this word in English / Latin / Italian.

  1. In code, however, lower cases look nicer and "more modern".

That said, what do you think should be the answer to the following questions?

  1. The name of the package, known to humans, should it be PRIMA.jl or prima.jl?
  2. When we resister the package at https://github.com/JuliaRegistries/General (is this the correct place?), should it be PRIMA.jl, prima.jl, or simply PRIMA?
  3. In the code, should we use PRIMA.jl or prima.jl? (Consequently, using PRIMA or using prima)?

Currently, the Fortran code and the MATLAB /Python/C interfaces all use prima in the code.

Thanks.

emmt commented 11 months ago

The .jl extension is not considered as the name of the package, although it can be used for the repository name as a remainder of the destination language (most Julia packages do that).

For me PRIMA is fine as a Julia package name, this name only appears in very few places in the code, like using PRIMA which imports exported symbols for the package in your code. Accessing to non-exported symbols is possible via the PRIMA. prefix. I use that for some constants like the exit codes (e.g. PRIMA.MAXFUN_REACHED) to make clear from where the symbols belong to.

There are rules for package names (see https://github.com/JuliaRegistries/General/blob/master/README.md), in particular they should not be too close to other existing package names. Package RegistryCI can be used to check for that. These rules guided my choice for PRIMA which was found by RegistryCI to be similar to ARFIMA. But, to me, no human will really make the confusion. On the contrary Prima was found to be close to Primes with a greatest risk of confusion (again to me). Julia package names are also module names and it is recommended that they start with an uppercase letter. This prevents, in principle, to use the name prima which, by the way, was found by RegistryCI to be not too close to any existing package names.

To summarize, I would keep PRIMA if possible and let us see whether it is accepted as a Julia package name.

emmt commented 11 months ago

I think that a decision has been taken regarding the name: it is PRIMA for the package and PRIMA.jl for the repository. I therefore close this issue.