help?> Tuple
search: Tuple tuple NTuple ntuple NamedTuple @NamedTuple
Tuple{Types...}
Tuples are an abstraction of the arguments of a function – without
the function itself. The salient aspects of a function's arguments
are their order and their types. Therefore a tuple type is similar
to a parameterized immutable type where each parameter is the type
of one field. Tuple types may have any number of parameters.
Since they represent the arguments of a function, we might think they are about to enter the function’s stack. The stack is an abstract model for a processor’s register memory. Basically, the compiler needs to know a fixed size for all the arguments to create this stack of memory.
Moreover, immutability has a number of beneficial consequences. Immutable objects do not have to be copied when passed around. Also their known size and memory layout means they packed together efficiently or inlined into a larger structure.
Because of those benefits, immutable structs are the default in Julia. You can kne of the justifications why in the pull request below.