Skip to content

Comment on Nickel Modulesparent

Comments

Is this by any chance reference to the nickel (NCL) config language at google? Otherwise a fun naming coincidence.

Fun story, google had a ton of GCL configs (author of CUE worked on GCL) which has certain unfortunate semantics that can't be fixed without breaking compatibility. NCL was designed to address those but of course automated migration wasn't possible due to tricky semantical differences.

There was a big push to move to NCL but it failed just due to sheer size of GCL codebase and was abandoned and rolled back, and NCL was deprecated. Unfortunately some new tools already picked up NCL and then had too much code to go back. So to this day most configs are GCL but there is one tool that remains on NCL.

Actually we learned about Google's NCL way after, when discussing with CUE's author, that we happen to know as well. So it's a funny coincidence. Nickel originated from NCL which is both a recursive acronym (Nickel Configuration Language), but also came from the ambition of improving Nix: it also meant, at least initially, Nix Configuration Language, I believe. Maybe there's been a wordplay around Nickel <-> cheap configuration language as well.

We also co-organize CONFLANG (https://2023.splashcon.org/home/conflang-2023) with CUE's author and other people, and we got several subscriptions and talks from Google last year. This is available here: https://www.youtube.com/watch?v=NbEkN8OOQFQ&t=23367s. I you look at the first comment, all talks are indexed, and there is in particular an experience report on improving GCL incrementally without breaking anything at Google (https://www.youtube.com/watch?v=NbEkN8OOQFQ&t=23367s). Very interesting!

Thanks for the comprehensive reply. The resources you linked look great, I'm putting that on top of my watch list.

YAML is the bane of my existence and I daydream about building a purely declarative system for running services with a sane config language (CUE or Pkl mostly). But then reality comes back and I have to spend another hour adding nindent to text based yaml templates...

I've always imagine the name came from a thought like

If I had a nickel for every time someone said 'Nix would be perfect if only it had a good type system...', I'd buy a better configuration language!

but I completely made that up in my own head :)

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.