Hacker News new | ask | show | jobs
by yogthos 2687 days ago
Clojure was designed to be a hosted language from the start, and it embraces the underlying ecosystem. There are plenty of Clojure libraries that use Java libraries internally and provide an idiomatic API. Having a mature ecosystem to lean on is just practical. For example, take a look at Apache MX Net bindings, HTTP Kit, clj-http, clj-pdf, and so on. All these libraries leverage the host ecosystem. There's absolutely no value in reinventing the wheel here. And the interop nightmare you're imagining simply doesn't exist in practice.

>My point is that the clojure ecosystem is weak in comparison to other more popular languages because experience in absolute quantities matter far more than percentages.

And yet in 8 years of working with Clojure I have yet to run into a situation where the ecosystem failed me.

>But compared to Javascript, Java, Python, C++, C, Javascript, Swift, Ruby, etc., it's not even close.

And Clojure leverages both Java and Javascript ecosystems directly. The whole ClojureScript ecosystem is based around React. When you write web apps you build them on top of React components, and other Js libraries. And this is how seamless interop is:

https://github.com/yogthos/semantic-ui-example/blob/master/s...

The ecosystem is not an interesting problem to solve. Interesting things are happening in the code you write. The business logic of your application is where the language matters. Even when interop is unsafe you're doing it at the edges of the application, and you treat it the same way as you would any side effect.