Why is the directory for the application source code named "lib"?

I’m curious why the directory for the application’s source code is named “lib” and not, say, “src” or “app.” Does anyone know the history behind that? It’s not a problem or anything, and I’m sure there’s some reasoning behind it. I just find it a bit odd, since “src” or “app” seems to be the established norm in most other stacks.

1 Like

It’s not src because src is used by erlang and mix does support erlang source files if you happen to have ones in that folder.

6 Likes

And :app also has a meaning.

In the end it does not really matter as far as I am concerned.

2 Likes

You’re going to have to dig though Mix’ history if nobody brings a first person account on how that pattern had been established.

Mix is the build and project management tool for Elixir. As others mentioned, there is also Erlang conventions and history involved (history that dates back past many a “modern language”).

2 Likes

Probably copied from Ruby

The default value is “lib”

5 Likes

Yeah, it makes no practical difference. It was just a curiosity.