Elixir Protocols vs. Clojure Multimethods

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • core.match

    An optimized pattern matching library for Clojure

  • Why not just use core.match? https://github.com/clojure/core.match

  • defun

    A macro to define clojure functions with parameter pattern matching just like erlang or elixir.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • meander

    Tools for transparent data transformation

  • ClojureCLR

    A port of Clojure to the CLR, part of the Clojure project

  • I recently found there was a clojure implementation for .NET and also one for the BEAM Virtual Machine. Has anyone used the latter? Regards

    [1] https://github.com/clojure/clojure-clr

  • clojerl

    Clojure for the Erlang VM (unofficial)

  • protocol_ex

    Elixir Extended Protocol

  • fib

    Performance Benchmark of top Github languages

  • How? Do you mean how do I know it's slow? Because it takes longer to run.

    Write a typical computation such as Fibonacci in Java and Erlang/Elixir and compare. Fortunately someone has already done this.

    Elixir is 3x slower than C and 2x slower than Java for this single thread example.


    Apparently this upsets people for me to point this out. However, I did not say that Elixir was slow in general or a bad choice. It's an excellent choice for problems which suit parallelization or which require reliable, consistent performance.

    Since the parent poster had commented that adding this multi-module dispatch would not be performant, I merely pointed out that the single thread peformance was already slow (as in, why worry too much about the performance cost of the multi dispatch suggestion).

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • stack

    My stack for new products. (by matteing)

  • I had most of these concerns when I was early learning the language. I found it annoying to have everything in modules. Now, however, I've come to appreciate the organization and structure that this forces upon the programmer.

    It makes me structure my code and group related concerns at time of writing.

    And with .exs files, you can have multiple modules in one file for quick scripting.[0]


  • nx

    Multi-dimensional arrays (tensors) and numerical definitions for Elixir (by elixir-nx)

  • Elixir has macros. People are currently building Nx https://github.com/elixir-nx/nx while not having to change anything in the language. Java/JS interop being unmatched is true, but Elixir has Erlang interop too.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts