JSOS compared to other languages and libraries JS+JSOS versus other languages JSOS versus other JS libraries See also

JSOS compared to other languages and libraries

What features does JSOS have compared to other multimethod offerings out there?

JS+JSOS versus other languages

Feature JSOS CLOS Clojure Julia
Multiple dispatch
Custom dispatch function
Qualifiers (around, ...)
Call-next-method
Method combinators
Prefer-method
Dispatch on types
Dispatch on classes N/A N/A
Dispatch on values only eql
Dispatch on predicates
Dispatch on traits N/A N/A N/A
Dispatch on keywords N/A N/A
Custom hierarchies
11/13 5/13 5/13 2/13

JSOS versus other JS libraries

JSOS arrows mm.js1 multimethod.js
Last commit 2025 2021 never 2014
Dependencies none 4 none 1
License MIT-0 ISC ? MIT
Language flavor ES 2020 TypeScript ES 5 ES 5
---
Uses ES6 modules? 2
Multiple dispatch 4
Custom dispatch function
Qualifiers (around, ...)
Call-next-method
Method combinators
Prefer-method
Dispatch on types
Dispatch on classes N/A
Dispatch on values
Dispatch on predicates
Dispatch on traits N/A N/A N/A
Has a type system 3
'Any' / placeholder arg
13/13 8/13 5/13 3/13

See also


  1. mm.js doesn't have a repository or issue tracker, it's just a single-file library released in a blog post dating back to 2014 

  2. arrows/multimethod is written in TypeScript, so it can be exported to ES6 modules as well 

  3. mm.js has "classes" (not ES6 classes) and integrates JS types as classes. So you could say it has a type system, but a very basic one 

  4. multimethod.js only dispatches on one argument, so it's rather limited