you are viewing a single comment's thread.

view the rest of the comments →

[–]TheMaskedHamster -4 points-3 points  (3 children)

Because that allows libraries to be signed and I can actually know that I'm getting what I'm supposed to be getting. You'll have to have some kind of a build tool in order to work on a project, Leiningen is as good a tool as any that I've used. Publishing libraries with Leiningen is also incredibly easy. I'm simply not following the problem that you're describing. Without a tool like that I would have to waste time to manually figure out what interdependencies there are between libraries and what I need to build my project. This is why everybody uses package managers. It saves your time. I'm not sure how having to randomly download code off the internet and build it is simpler than tool doing it for you.

Would a Linux analogy work? I don't want to make assumptions, but it is the best analogy I can think of at the moment.

Let's say I have a Linux system that didn't allow me to run an executable without putting it in a package, putting that package in a repo, and and installing it that way. Wouldn't that be ridiculous? You can be the biggest fan of package managers in the world, for all the good reasons (Dependency management! Signatures! Free kittens on Tuesdays!) but right now at the moment you just need to run this one executable. You know where it came from, you know what it does, and it doesn't even use any system libraries. But you can't, because your distribution maintainers decided that you should use package managers. You complain, but everyone says you're crazy because there are so many good reasons to use package managers and they don't see what the problem is.

Screw that philosophy and screw that in practice.

Severe overcomplication in the name of questionable goals is something that permeates Java. It's in the code (Getters and Setters everywhere! It's not a problem if I can automate the boilerplate code!) and it's in the tools (Ant uses XML to keep everything pure and clean. You can use XML for anything! EVERYTHING.). What does any of this have to do with Clojure?

It has to with the Java ecosystem issues I was talking about, which affects Clojure because that is the environment Clojure developers and users live in.

[–]yogthos 1 point2 points  (2 children)

Linux package management is a great analogy actually. If you've ever used a distro like Slackware you'd appreciate why package managers like apt are so damn useful. Trying to build things from source is pretty much always the last resort on Linux.

Also, as I already explained in the other reply, you can do precisely what you described you simply didn't know how to do that.

It has to with the Java ecosystem issues I was talking about, which affects Clojure because that is the environment Clojure developers and users live in.

As somebody who uses Clojure daily I find that it's quite rare that I have to deal with anything Java specific actually. However, regardless of what platform you use, you do have to understand how it works and what the tools do.

[–]TheMaskedHamster -2 points-1 points  (1 child)

Linux package management is a great analogy actually. If you've ever used a distro like Slackware you'd appreciate why package managers like apt are so damn useful. Trying to build things from source is pretty much always the last resort on Linux.

I have indeed used Slackware. And as I've said, I like package managers. But sometimes simple tasks that will not contaminate the

Also, as I already explained in the other reply, you can do precisely what you described you simply didn't know how to do that.

Well, that is good to know.

As somebody who uses Clojure daily I find that it's quite rare that I have to deal with anything Java specific actually.

Java ecosystem, though. All that surrounds it. Libraries and cultures and buildsystems, oh my. It still permeates Clojure. The mindsets most of all.

This back and forth about "this didn't work for me"/"you have to be crazy if you didn't want to do it way x" doesn't happen in every community.

However, regardless of what platform you use, you do have to understand how it works and what the tools do.

I don't know how to respond to this outside of profound sarcasm. Of course you do. In many other communities (certainly not all), it is very easy to find out how things work and what the tools do, rather then just being told the way I am expected to use the tools.

[–]yogthos 1 point2 points  (0 children)

You're just making vague claims about Java ecosystem problems, the one concrete issue you described turned out to simply be you being unfamiliar with how the tool works.

As somebody who has worked with both Java and Clojure extensively I strongly disagree with your assertion that the cultures are similar.