Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

3
  • 1
    Some other interesting and/or important module systems: Racket's Units, Standard ML's Parameterized Functors, and Newspeak and Scala are interesting, because they unify modules with objects and module definitions with classes (traits). Scala's type system, specifically, has been extended with features that are explicitly intended to match features normally found in module systems. That way, Newspeak and Scala don't need a separate module system, plus first-class and higher-order modules are completely natural: modules are just objects, and objects are obviously first-class in OO. Commented Apr 19, 2016 at 23:01
  • Module - group of thingies. Plugin - ready to use thingy that adds functionality. Extensions - thingy that extends functionality of other thingies. Commented Oct 2, 2020 at 6:36
  • @C.L. Thank you for this very intuitive summary. Maybe you could add "and that taken alone is useless" to your informal plugin definition. The issue I have with extending is that different people use it for very different purpose. For a java developper extending is very concrete. And for an ERP vendor a "module" may extend functionality of other "thingies" ;-) Commented Oct 2, 2020 at 7:01