Package naming guidelines


For 1.0 I would like to see all major packages adhere to the Guidelines for Naming Packages, especially spelling out acronyms in package names unless they’re completely obvious and unambigous. E.g. SVD would be ok as a package name, but GMT should be converted to GenericMappingTools.

This isn’t syntax breaking but I feel like this is important from a user perspective and 1.0 would be a good target.

List of most desired features for Julia v1.x
List of most desired features for Julia v1.x

I did consult those guidelines but GMT is not an acronym created for the Julia package. GMT is the original name of a venerable but quite actively maintained project of ~30 years age.


Agreed that Julia packages should adhere to the naming scheme, but GMT seems fine to me in this case.


Each to their own abbreviation/acronym…


I have no idea what SVD means


That’s why I have always advocated for 0 abbreviations in package names. One person’s obvious “used-every-minute-in-my-field” acronym is the next person’s mystery.


In that case, does it matter if it’s an acronym? If you’re not in that industry, you’re not going to need the package and examples you would be looking for wouldn’t be using it.


The Guidelines for Naming Packages (link above) begins “Package names should be sensible to most Julia users, even to those who are not domain experts.” I can think of four acronyms that might qualify as sensible to most Julia users: ODE, PDE, SVD, and FFT. But I’d be happy to give those up and agree with @dpsanders: spell out everything.

The reason is avoiding confusion and saving people time. Recently I’ve seen announcements on Discourse of the form “ANN: XYZ.jl 0.4 released”. I click on the thread and find discussion of the upgrade but no definition of XYZ. Then I click on the package website, scroll down, find where the acronym is spelled out, and conclude “Oh, not relevant to me.” I’d rather have known that from just the package name in the announcement title.

@joa-quim: sorry, didn’t mean to pick on GMT. It was just a recent example that stuck in my mind.


Fun fact: “ODE”, “SVD” and “FFT” are all terms that I’ve googled after starting to use Julia (“SVD” yesterday). I still don’t know what “PDE” means (but I’ll probably google it later :joy: )


@mkborregaard: I guess I ought to think of Julia users as broader than just applied math! I’ll come down on the side of 0 abbreviations, then.


There is still the cognitive burden of “Do I know what this is or not?” If I see SVD, it could be any number of acronyms in my head. If I were to SingularValueDecomposition, I know immediately that it has no relevance to my work.

Granted SingularValueDecomposition is a bit of a mouthful.


I sometimes find myself favoring no acronyms just out of spite.


If somebody doesn’t know what a PDE is, then it is very likely that
PartialDifferentialEquation would not enlighten the person any further, so
why would the longer name be more useful?

If you have ever studied differential equations though, then you would
immdediately know what a PDE is.

Same with ODE and SVD.

It’s an interesting debate, which I dont claim to know the answer to, but I
think if spelling out the acronym doesn’t help people understand the
meaning, then there is no point in spelling it out.

The full spelling should be definitely used in cases of ambiguity or when
the spelled out name is more eplanatory to the unititiated.

But in the case of PDE, if somebody doesnt know what PDE is, then
PartialDifferentialEquation is not going to explain it any better, and if
you know what a partial DE is, then the PDE acronym will be entirely clear.


Given the full name, it is easier to determine if it is something that could be interesting or related to one’s work. Keep in mind that different fields frequently use different names for the same or similar concepts (and rediscover ideas that have been used in another field for 30 years, etc), compressing things to acronyms makes this much worse.


That’s wrong. I know what a Partial Differential Equation is, but PDE is not part of my active vocabulary. Also, I am a little sure what the purpose of this discussion is, as the existing naming guidelines are quite clear.


That’s why I mentioned that if the acronym is ambiguous it should spell
out, but Im not aware this is the case with PDE…



I think it should stay FFTW.jl, not FastestFourierTransformWest.jl


That’s a tough one. Maybe FourierTransforms, if 0 abbreviations wins out?

Another possible rule is no abbreviations, except a few special ones officially certified as ok by the core Julia team. IMHO if anything would be ok, it’d be FFT or FFTW and SVD, which appears in the GenericSVD package name.


I think that resolving #1255 (beyond the current workaround) would go a long way toward making long package names easier to use…


Edit: most relevant comment