Scicloj is awesome


Scicloj is a Clojure community for data science. It’s awesome!

Scicloj is awesome because

  1. There’s a thorough list of available Clojure tools and libraries you can leverage
  2. There’s plenty of recommended reading you can work through on your own
  3. It’s easy to get help.

What does the Clojure data science ecosystem need?

My opinion:

  1. Learnability
  2. Discoverability
  3. Cohesion

Learnability comes first. Someone must be able to learn something.

Discoverability second. If there is nice stuff around but nobody can find it, there’s not much value provided to the ecosystem as a whole.

Cohesion third. Most people look to the Python ecosystem for data science. Why? Data science with Python is learnable and discoverable. There are plenty of resources available. Data science work with Python often leverages SciPy. SciPy is also awesome. SciPy provides a cohesive entrypoint to Python data science.

A list of initiatives improving learnability, discoverability and cohesion for data science in Clojure

Scicloj already has an answer to “how can I help?”: — Getting involved.

Why Call to action Questions & comments
Learn with others in a study group
Share what you learn with others
Write a tutorial No call to action link.
Help organize practical stuff No call to action link.
Pair with a library author How do I know who are interested in pairing?
Help building the website and knowledge base No call to action link.
Create a proof-of-concept ? Is there a list of open problems somewhere?
Contribute to a library Is there a list of libraries where contributions are welcome?
Submit an issue to a library

Idea - sc-dbx

An experimental plaintext graph-oriented knowledge base for doing data science in Clojure.

  1. Page oriented (like

Name. dbx? kbx? sc-dbx sc-kbx Hmm sc-xkb


  1. Everything is a page
  2. Some pages are :form :ref - where we simply rewrite a link to the target we want. This enables us to enrich internal links and provide a light mechanism for enriching “remote” entities. And it ensures that “everything is still a page”.
  3. Attention design for index
    1. Top - playlists. Collections of nice stuff.
    2. Bottom - list of all pages.
      1. Consider “list of all pages” as a subpage.
  4. Build system
    1. One big makefile
      1. (or just use bb? not sure.)
        1. Could perhaps try “just bb”, avoid too much code generation
    2. Swappable build mechanism for each page. Each page can decide on its own:
      1. Build script
      2. Dependencies
    3. Link rewriting / resolution with pandoc and babashka.

A specific place to start: a nice viewer for the library data

Aaaand we return to where we started:

Good user interface to explore available libraries

If sc-dbx is going to be of any value, there needs to be:

  1. Some content
  2. A nice viewing experience