Fork me on GitHub

Good Morning!


Morning 🙂


To conclude from last Wednesday (thanks again for the discussion): Played with Crux and Datahike for three days now, and I will propbably go with Crux. Datahike looks like a great project, too, but there are still some moving parts that made me feel like it is not ready for productive use, yet

👍 12

I'd be interested in more detail on why you made your decision. What were the trade offs that made you go with crux?


Some decisions in the Datahike project still seem to be pending. E.g, if you want to use a postgres DB as a backend, there is datahike-postgres, but in the issues you can see that they want to migrate to datahike-jdbc, which depends on replikativ-jdbc. After some alignment between the projects, the issue is blocked due to a PR from october, which is still open. Also, the on-disk-schema of Datahike is not final, yet (according to documentation), and currently there is no way to migrate datahike schemas. If you wanted to change the schema in a productive application, there is not really a way to do this (not really a dealbreaker for me, as I planned to go schemaless)


From what I read in the issues, supporting ClojureScript is currently high on the roadmap, so I guess there is less priority on the features mentioned above. This is, of course, completely okay, as ClojureScript support is a very cool feature, but it also means that I don’t expect the other things to be adressed, soon. They are quite a small team, after all, and have to focus


It’s not really about the features, but about maturity. I will keep a close look on Datahike, but with some of those pending changes / pending decisions, I cannot base a product on it, yet. Maybe in a year 🙂


good morning 🙂


goedemorgen 🙂


Good afternoon 🙂


Anyone know of a tool for manipulating source code in Clojure? I’m doing some wide-spread changes that are tedious to do manually, and would be trivial to do in a program. There must be something that helps doing stuff like this!


I knew this’d be right up your alley, @borkdude!


@reefersleep I've been using rewrite-clj a lot. clj-kondo is based on its parser


If you are just using EDN you can use this "easy" shim:

🙌 3

I tend to do a lot of refactoring, and complicated regex is nice but not always enough 🙂


This makes for an interesting topic. Stuart Halloway argues that “automagic” refactoring is a bad practice. And, I was starting to think he was right 🙂


I guess I’d argue that any refactoring worth doing would be just as hard to express as a function as to do it manually.


In my case, we’re talking about tedious changes, but many places


(apart from rename-symbol that is 🙂


I wouldn't really take a tweet as absolute advice without additional context, unless you are referring to something else.


That said, I haven't had many use cases where I had to refactor anything over hundreds of files at time, except maybe a directory nesting change


I work on a pretty big project, people-wise - Cognitect were contracting for us, and they said that it’s the biggest project they’d been on. No idea if it’s considered big code-wise, but there are hundreds of usages of the datastructure/function I want to change.


@slipset in general I would agree. But there is code bases which force you to large scale refactoring where automatic / mechanical is the best way to do it.


the term "automagic" implies some hidden process rather than a transparent transformation. I think we can all agree that a hidden process is bad and move right along.


Fo sho. It’s not like I’ll be rebasing the changes onto main without a review or anything 🙂