I disagree completely and vehemently.
Because it's tying you to an unreliable third-party service, and there's no way to mitigate it.
> Sure GitHub has been having some problems recently, but they are all-in-all massively reliable.
> Artifact dependencies really shouldn't be in the same place as source, they fulfil different roles.
Seems like a dogmatic point - why is this advantageous?
More importantly, there is a reason people do this - they want a zero-effort way to use certain branches, tags, etc. They want source.
>What you want is a dedicated repository format.
Again, seems dogmatic. What advantage does one format have over the other.
> in the community central repository
and now we have single point of failure again, but I also have to wait for someone to either upload, or set up an automated solution to upload, the version I want. There's a reason people use the source for this.
> it's trivial to set up a local mirror and make sure all your third party dependencies come in via this mirror
Nightmare. We actually do do this - we maintain a nexus instance on EC2. Its a fairly awful experience. We wouldn't use it if there was a way in leiningen to use git, and if maven wasn't so slow at getting dependencies.
> That way if their repository goes down temporarily or permanently it's no problem, and you ensure your builds remain reproducible.
Definitely a real problem. But there are real tradeoffs here.
> The most infuriating part is, the software to do this already exists. If you want to start a new language, great. But please, use maven; otherwise you are doomed to re-invent it, poorly.
I use maven on a daily basis. Its not great to be honest, and comes with a massive amount of baggage, including the SNAPSHOT stuff which is awful, and a lot of things tied to java. Rubygems are a significantly better experience, are a lot more usable, and have some really good features like being able to use Github links :)