I'm not sure if 'shares' is a typo or not, but it fits great with my impression of why companies choose the languages they do sometimes: everyone else uses it (it's the local culture/custom), and nothing/no one has forced them to change (by lowering their profits/share value).
There are YouTube videos....
Which in my mind matters more than all this pedantry.
All used in the context of systems programming.
Rust modules don't add anything new to them.
Those ideas are also present in Maven, Gradle, NuGet. All older than cargo.
And all trace back to CPAN as general concept.
I am still waiting for cargo to support binary libraries.
Nothing in Rust is original from PL theory perspective. It's deliberately not a research language, but a practical one. Rust set the bar here merely by showing up and delivering a decent implementation (in a language that you can actually use today).
Everything in terms of safety and modules was present in languages like Ada and Modula-3.
> A definition like this, where the choice of an implementation is dependent on dynamics, is entirely natural in object-oriented languages. Yet, it is not expressible with ordinary ML modules.
Here, ML modules are compared to classes (not packages or modules has defined in Java, for example). This makes me wonder how often people talk past each other without noticing, when they discuss modules.
https://en.wikipedia.org/wiki/Modular_programming
There are plenty CS books which offer a similar definition to Wikipedia.
We might have consensus about the definition, but it does not seem to be a useful precise one. The C++ working group seems to have a similar problem. Things like "compilation unit" have a precise meaning, but they cannot find consensus if it should relate to their "module" or not.
I think the issue is more with some C++ devs that never used other languages, trying to grasp how modules fit into translation unit + PCH model they know.
Modules were introduced in the 70's as concept, Mesa being one of the first languages to use them, followed by CLU and ML....
The issue with lack of modules in C++, was that Bjarne had the compromise C++ should fit into C toolchains used by AT&T, and later all C shops.
EDIT: I get Rust is quite cool, but maybe a bit of programming language research is also welcomed.