Fork me on GitHub
#announcements
<
2019-05-09
>
manuel09:05:16

We've recently published corallo, a tiny graph library in Clojure. It's available on Clojars too. https://github.com/7bridges-eu/corallo

Las10:05:48

Congrats! A short tl;dr a.k.a. Rationale would be helpful imho, this is just a feedback, no expectation or obligation. 😉

manuel10:05:38

thanks for the feedback, we'll add it soon. 🙂

delaguardo10:05:23

also comparison with another graph libraries will help a lot. [ubergraph](https://github.com/Engelberg/ubergraph) as example

manuel10:05:33

@U7JKD4ENQ done. @U04V4KLKC we'll see what we can do.

drone15:05:20

yeah, I’m curious why ubergraph/loom wasn’t used. I think both those libs could use some cleanup and should be merged, but they do work. and “because we wanted the experience of building a graph library” is a perfectly good reason 🙂

metasoarous19:05:36

@UCF779XFS There are some reasons not to merge loom and ubergraph, IIRC from having talked with @U0518RMLD.

drone19:05:39

don’t want to go too offtopic of this thread, but I would be interested in hearing reasons/plans for future of graph libs on clojure. loom has essentially been (all but?) abandoned with many outstanding issues and no responses from the devs. ubergraph seems to be a better model. it might be that “merging” just meant ubergraph replaces loom and takes ownership of the protocols and algorithms included in loom

mdallastella21:05:04

@UCF779XFS I know we shouldn't reinvent the wheel, loom and ubergraph are awesome and far more complete than corallo. We wrote it to have something small, understandable and aimed to direct graphs (maybe we should change the description). I think corallo is more idiomatic, no protocols or any other "Javaish" stuff in its core, but pure clojure data structures. That's all.

metasoarous18:05:41

FWIW, I consider protocols/records a very Clojuric take on Java interfaces, and think this is an appropriate application of the feature. But I concede, it's not Just Data

drone20:05:56

yeah, I don’t think it’s fair to write-off protocols because they are similar to Java interfaces. most languages have some way of using polymorphism to define a group of related functions. e.g., Haskell’s typeclasses