Fork me on GitHub
Alex Miller (Clojure team)14:11:02

Don’t get too excited, very experimental


I just loved the approach :)


Currently digging through depstar etc in a spare few minutes, and I’m sat wishing the community had just adopted Stu Halloway’s lancet for builds 12+ years ago 😆 Seriously though, I know ant was a bit of a pain at times but ant as sexps/edn with some deployment stuff would be miles better than what we have right now.

Alex Miller (Clojure team)14:11:39

I still like many things about ant

Alex Miller (Clojure team)14:11:58

The only thing maven did right was standardize deps and repos. But that was so big, it won.


Yeah was literally about to say just that, and… The other problem with ant was that every build was different; but it was expressive enough and pretty efficient and the core tasks worked well. Maven was easier for simple library builds; but far harder for anything that needed to do more than compile, dist, deploy and document.


You can integrate resolution and deployment with ant right? Isn’t that what ivy was? I never set that up all those years back.


Gradle seemed very sophisticated when I looked at it.


I never used it; looked like Rake… essentially ant built as a dsl in groovy right?


Today a new version of clj-kondo was released that includes deps.edn linting. You may have to update flycheck-clj-kondo if you are using emacs integration.

Alex Miller (Clojure team)14:11:06

I have known many people preaching gradle over the years and have given it an honest shot a couple times. I found it inscrutable. It’s probably just me but I just could not understand how to do anything. I’m the same way with ruby though - I just find it baffling. Just give me some parens man.


What I found most baffling about ruby was rails (I know that's not ruby, but very common): I didn't now where to look or follow things, things just magically came from random places.


At least ruby doesn't have significant whitespace. Don't get me started on that! </rant>

☝️ 6

My recollection of Gradle was seeing the sheer investment someone had made to integrate ClojureScript with the build system so the caching/dependency system would work. May not have been Gradle, might have been something else.


Gradle is fine, though quite complex. One big downside it has compared to Ant, IMO, is that it doesn’t have immutable properties.


We use gradle a lot at work, more specifically gradle with the kotlin dsl. One can declare vals which are immutable (or vars, which are mutable)


val foo = "hello" would make foo immutable.


Right, the Kotlin DSL didn’t exist back when I most used Gradle. Still, I don’t think that helps if you want to define a property in the CLI invocation such that it’s not overwritten somewhere down the chain.


I think the kotlin dsl is winning (esp for android and spring based projects). Others may still use the groovy dsl.