Closed ghost closed 6 years ago
It was originally a confusing for me that the jbuilder
tool did a lot more than build things (including running tests, cleaning up, installing stuff, uninstalling stuff). Kind of like make
. I also still keep typing jbuild
instead of jbuilder
.
The j-
prefix is contaminated by both JavaScript and Java, so if you are bent on including your company name in the name of the tool, maybe something like janemake
?
As it happens, the J in jbuilder does not come from the J in Jane Street. The only potential reason for wishing to keep a name beginning with J is that we could logically keep having files called jbuild
I don't speak Swahili, but https://translate.google.com can help finding variations around "jenga" (build in Swahili), e.g.:
As previously suggested, I think obuilder
will involve the least amount of confusion/churn.
Oh, shit, naming things - "the hardest problem in computer science." I'll be out of this thread and leave you to it. :-)
@lpw25 you don't think obuilder
will be confused with obuild
, omake
or ocamlbuild
? To me they all seem very similar (and the latter three are all existing software distributed through opam
).
@dra27 just out of curiosity, what does the J
in jbuilder
stand for?
EDIT: @xclerc jengo
seems awfully close to the existing jenga -- Industrial strength, full-featured build system
in opam
.
My five cents:
caravan
for the camel theme, and it also plays nice with the commands, e.g., caravan build
oproject
for the OCaml Project, since jbuilder
is about the project managingoat
as a fancy acronym for OCaml Automation Tool.@cfcs the J
comes from jenga, which is another build system developed at Jane Street which inspired jbuilder. Jbuilder is now a community project and will soon move out of the janestreet github organization, so there is no reason to have a link to Jane Street in the name.
Presumably, if we change the name, we also have to change the name of the configuration file from jbuild?
Retaining the "j" would avoid some questions about migrating all the "jbuild" names that are already there.
My proposition is "jamal" which seems to be the arab word for camel.
No constraint on keeping the j
. Once we have a new name, we'll decide if we need to rename configuration files or not. If we do, there'll be a migration plan and both old and new names will be supported for a while.
As mentioned above, I've also had an issue with writing jbuild when I meant jbuilder. It's confusing to have the 2 IMO. I think a better approach is similar to what Rust does: the tool is cargo, and the file is cargo.toml.
I also like the idea of continuing with desert-related names. Caravan is good but a bit long. How about nomad
? The idea being that the nomad takes everything needed along, and rebuilds it where needed. We would then have something like a nomad.sexp
or nomad.conf
file as our configuration file name.
A build tool helps with digesting code and turning it into something productive, so I started thinking about camel digestion. I don't know anything about that topic, but did some superficial web investigation. Camels are "pseudoruminants" with three-chambered stomachs, differing from ruminants which have four-chambered stomachs. It's not clear that "pseudoruminate" is a word, although there seems to be a term "pseudorumination". Both of these are too long, and "pseudorumination" seems to refer to a rabbit behavior that sounds kind of disgusting.
However, camels do chew their cud, i.e. "ruminate", as part of their digestive process. "Ruminate" more commonly refers to thinking deeply over a period of time.
So I suggest "ruminate" as a possibility.
("Rumination" is apparently also a term for a concept associated with depression in psychology. However, I'd never heard of that until I searched on "ruminate". The "thinking deeply" sense seems pretty common.)
On the other hand, it could be nice to have a name that's unusual enough that web searches would always bring it to the top. Some of the other suggestions might have this property.
Another one: coyote :-)
For desert things, how about mesa?
To be honest, I had no idea what a mesa was until I clicked. And I used to live right by a place called Costa Mesa!
I like mesa
a lot. It's a short name, it stands over the surrounding terrain. It has the downside of name-clashing with the graphics stack of the same name.
obuilder
is a minimal name change which is helpful. It's very similar to other existing tools as @cfcs pointed out. The name will cause problems when using tab completion on the command line if a project using obuild
is also installed, even if someone isn't using both tools explicitly.
caravan
looks and sounds good. I like oat
as well, but maybe that should be saved as a potential name for the bob
project.
Is it OK to use names associated mainly with deserts in North American, where camels are not native?
More on ruminate: If that name is too long, maybe rumin
could be the command name. Then to build a project would be to "ruminate" it.
(jbuild files could be renamed to "cud" files.
Or maybe not. Not sure that the build files should named after partially digested food.)
Camel herder or shepherd? Google translate give "راعي", or "raei" for "herder". It gives "الراعي" or "alraaei" for "shepherd. I wouldn't use something like this without advice from a native speaker, though.
Or maybe just use English, and call the tool "herder" with command name "herd". Then you can say that you are "herding" your project when you build it. Which kind of makes sense.
FWIW caravan -- A framework for testing arbitrary systems, in OCaml.
is also the name of an existing opam package.
So far, I like:
obuilder
, but I don't like the name clash with obuild
mesa
nomad
shepherd
, because jbuilder is more than just a make cloneSome of my own thoughts
obt
- ocaml build toolboo
- build_of_ocamlrakuda
- camel in japanesemehariste
- camel cavalry in frenchIn praise of nomad
(suggested by @bluddy in https://github.com/janestreet/jbuilder/issues/360#issuecomment-350776296):
However, due to the niceness of that name, there are plenty of projects that have used itL https://github.com/search?utf8=%E2%9C%93&q=nomad&type=
It's still my favorite suggestion so far, tho.
We could end all the bike shedding by just calling it shed
shed build @install
sounds kinda cool
Orix
nomad is my favorite name thus far. And +1 to @shonfeder's points.
I also like bina or binya, which I think is "build" in Arabic. (though maybe someone who actually knows the language can comment on whether that's right.)
But nomad is still my favorite.
I like nomad a lot as well. It has at least a few commercial products which share the name: https://en.wikipedia.org/wiki/Nomad_(disambiguation) Would there be an issue with those project names, similar to what is causing the change from jbuilder now?
It doesn't seem like any of those are in the same space as jbuilder (either one!), so that doesn't seem too worrying.
Not sure about legal matters, but the clash of the command name with https://github.com/hashicorp/nomad might be an issue.
I don't have strong feelings about it--or really, even weak feelings about it--but I want to point out that a nomad is a wanderer, which kind of sounds antithetical to building and constructing. Or maybe compiled OCaml programs take you on a journey, and nomad
lets you organize your stuff for the journey? Not important. I would support any name, and I'm not sure that my vote should matter anyway. "nomad" does have a nice sound.
Another suggestion would be dune
. It was awesome as a book name, and it still works as an executable. It also pulls in a whole lot of neighboring associated words, such as buggy, sand, and spice (from the book), which could be useful for related tools/files.
There's a dune library for distributed numeric computation, but it's only a library -- not an executable.
If we're suggesting Arabic-themed names, how about 'jamal'? It's a male name meaning 'beauty'.
And 'camel', apparently, as @jnavila pointed out. At least the English transliteration is the same. The Arabic in Google translate looks the same to me, too, ie for both 'camel' and 'beauty'.
Is jbuild an option?
I want to like caravan
, but it feels plodding and somehow clumsy to me. Moreover, I cannot shake the association with https://en.wikipedia.org/wiki/Dodge_Caravan :(
I see @jnavila has already suggested 'jamal' which means 'camel', I just want to disambiguate it from 'Jamal' which is a male name meaning 'beauty'. They are pronounced differently:
+1 for nomad
.
Another possibility is to pick the name of a desert, like sahara
or gobi
. Purists will prefer a desert where bactrian camels actually roam -- which favours gobi
over sahara
-- though frankly no one will notice.
I know I already posted in here, but as time goes on, I just want to update my votes:
nomad
sounds too much like monad
to me :) sahara
or gobi
sound really really really coolobt
I'm really starting to like the no-frills simplicity of this (ocaml build tool)I like gobi
, it's short, it hints at "go build", and contains at least two obviously usable letters for backronyming.
gobi
sounds really appropriate.
gobi
sounds too go
for me. Not really the intended reference.
Oh snap! This is my fault. I deconstructed the word, and now what everyone sees is "go". I'll try to reconstruct it as the "Global OCaml Build Infrastructure", where "global" refers to the workspace feature. But I also like some other names mentioned including dune
, caravan
, jamal
, binya
. And I was pondering on how amusing it would be to type unclean
to build a project, but then maybe not.
fwiw, @paurkedal gobi
made me think of go
before your comment.
Why not French? Is there a term for a build process when one isn't using the English word? bâtir
? construire
? Something else? Maybe not the infinitive but some other form? I am not fluent in French.
Against mesa - meson is a build system already. I'd rather not use something so close :)
Definitely against nomad
due to the name clash -- I think avoiding executable name clashes should be a priority.
Some additional suggestions:
orbs
-- OCaml Robust Build System
oud
-- The musical instrument.
I love oud
. Beautiful instrument. OCaml Utility for Development?
I like oud
- it's quite fun to say oud build
!
Apart from exotic bactrian puns, obt
makes much sense, just like sbt
for Scala. Too bad there's a clash with this obt
There was once a project named oud
in the OCaml ecosystem,
developed by @zoggy.
That was oug
: http://oug.forge.ocamlcore.org/
But it's not maintained anymore.
It appears that for legal reasons we do need to change the jbuilder name. Feel to suggest new names here.