This library is implemented for some use-cases. It calculates how many different characters or changed character on a string.
String similarity and distance algorithms are different with semantic similarity (knowledge-based). It calculates the similarity based-on relationship of word to another word (hierarchy/tree). So, If you need a library that can calculate semantic similarity instead of string and distance in Java, I would recommend this [1].
So, I just started working in Java at an internship this summer. With mvn, the package manager is fantastic. I was naive and thought things like `npm` were unique in their philosophy, but realized it's very similar. I hate debugging Java in an enterprise environment, but I have to say that it's really elegant to code in Java and use the standard library.
What's wrong with debugging java? Between reliable remote debugger attachment, mvn + IntelliJ's support for automatically building and distributing sources, decent decompilation in case that fails, JMX, and tools like VisualVM, it seems to me that Java is head and shoulders above most "trendy" languages in the debugging department. Is there a cool new tool that I'm not aware of that hasn't made it to Java yet?
I think my case was an isolated one. I had a Java package that wouldn't start in Tomcat because I had to merge trunk into my branch - Was very annoying and made me hate seeing java exceptions with a 100+ call stack.
Depends, but objects aren't just about state. There's dynamic dispatch too. You can have different stateless strategies, and at runtime you might want to be able to swap one out for another. If that was a requirement, static methods don't work.
> I regularly write static methods and test them with JUnit
Implementing mock objects which return "unexpected" results is impossible with static methods.
The standard 1 interface + 1 impl pattern in Java is just so that the Proxy.newProxyInstance can create a decorated or mocked object for testing.
So you can test the methods directly, but you can't write failure-inducing methods (like a connect exception throwing one) which test the methods which use it.
Apache Commons Lang has some string distance algorithms. But we started another project in the sandbox for text/strings, as [lang] was getting a bit overcrowded with so many things.
Dot is a multiplication symbol (in mathematics, that is; one of several). See https://en.wikipedia.org/wiki/Interpunct ; the choice between dot and cross as multiplication symbols is further taken advantage of in vector multiplication (dot product vs cross product). Etc.
String similarity and distance algorithms are different with semantic similarity (knowledge-based). It calculates the similarity based-on relationship of word to another word (hierarchy/tree). So, If you need a library that can calculate semantic similarity instead of string and distance in Java, I would recommend this [1].
[1]: https://github.com/sharispe/slib/