I'm guessing by that they are more saying “Language X has the best module system I am aware of, under my definition of ‘module’”.
Conversation
One interesting case of modules in the ML sense is Scala, for instance, which merges them with the object system, while retaining lots of stuff from ML, like module functions and associated types etc.
1
4
Why3 is also interesting - you never write module types, you clone new instances modules and fill in/add definitions. It looks a bit more like prototype based programming I think? (using that term loosely) why3.lri.fr/doc/syntaxref.
1
3
Also worth looking at 1ML for another take on ML-style modules – this time emphasising first-class modules, and removing the destinction between the module language and the term language: people.mpi-sws.org/~rossberg/1ml/
1
3
Also might be worth looking at Modula-2 as well! Ecmascript has interesting modules too, based on JS objects? Maybe algebraic specification languages too – I think ML drew inspiration from those?
1
4
Anyway, not sure if this helps at all, I probably didn't answer your question very well. I think 's answer was better and more concise! I'm also very much not an expert, just bumbling my way through learning stuff… 🥴
1
4
To me, I kind of think of modules fundamentally as a way of looking at dependent records, but I realise that misses out a bunch of interesting stuff like phase distinctions, abstract types, recursive modules, mixins, module sharing, generativity, etc.
1
2
Definitely helpful! It looks like there's no formal definition or consensus, so the “language X doesn't have real modules” phrase is wrong. Real modules according to who? The last time I read it was in the Lua book, by the Lua author. I think Lua modules are perfectly fine
1
1
Yeah I think it's a bit like ‘real objects’ – there's a bunch of different perspectives and a levels of precision, and I think lots of them have value. Also probably worth chasing down some of the historical work on them, to see how the usage of the term evolved over time.
1
1
Yes, I've realized the history of programming languages is something I like more than programming itself, so whit all these links I have work to do now! Thanks!
1
Replying to
I think I remember seeing some interesting references in the History of Standard ML. That's where I learned some of the connections with algebraic specification languages (funnily enough, defining algebraic structures using Rust's traits is kind what got me interested in modules)

