A little tip to the authors, migrate the project form an Eclipse-based one to Maven or Gradle. Not everyone uses Eclipse and it's more friendlier that way.
It is Apache 2.0. The library has been developed for several years as close source. But now it is Apache 2.0 although the source files need to be updated. Don't worry.
I find it somewhat funny that the term "machine intelligence" seems like it was coined in part to distinguish it from "machine learning", but, while this project is clearly part of the latter, they have chosen a moniker using "machine intelligence". Obviously no one owns the word, but it just seems people love using new buzz words and efforts to distinguish these things are quickly muddied.
It's easier to achieve a high level of performance in raw, idiomatic Java than in Clojure. Eg, it's really important to be able to mutate arrays directly and use primitives with no boxing. You can do that kind of thing in Clojure, but it just ends up looking like Java with parens instead of squirrely brackets and more explicit casting.
The proper use for Clojure is to express higher-order application logic more concisely, not to implement high performance math algos.
Well, there are "high-performance things" I like more in Clojure, for example:
- areduce / amap
- Uncleaned data is often of Object type (due to missing or invalid values) upon which one can apply the complete core.reducer functions without intermediate representations. In Java this would be horrible.
Still, you're right in the sense that Clojure execution isn't fast than Java's, just its development.
I agree with fiatmoney, and would also like to add that if you implement it in simple Java w/few dependencies, it makes it easier to use the library in many contexts. e.g. other JVM languages.