Elixir Protocols vs. Clojure Multimethods

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

Our great sponsors
  • Scout APM - Less time debugging, more time building
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • SaaSHub - Software Alternatives and Reviews
  • core.match

    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.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • 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).

  • SonarLint

    Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.

  • 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