
Am 13.02.2016 um 07:11 schrieb Rustom Mody:
I would have thought that SML would be the one which had the most sophisticated module-sublanguage. Would be interested to know how SML and Java stack up against each other in that respect.
I never understood SML's module system. The explanations I found were focused on the "what", and very intricate, but I never found an explanation "why" they were doing it. My impression was that it was quite sophisticated in its possibilities to adapt a module during import, but I was never sure whether SML's notion of module was even similar to that in other languages. The Java module system isn't spectactular, essentially an import establishes visibility and nothing more (adaptation is separate, and limited to type parameters), and you have a hierarchical namespace. The only thing that sets Java apart is that the DNS namespace is used as the basis, and that's not even a language rule, just a recommendation; the fascinating thing is that a mere recommendation was enough to make clear who's responsible for fixing a name conflict, and virtually eliminate name conflicts from the Java world. [Please don't mail directly and CC to Haskell-cafe, this defeats my mailer's "reply to list" function.]