Simian identifies duplication in source code

Within minutes, Simian can save thousands of dollars in time spent
performing maintenance, debugging, and re-factoring.

Get Started

Simian can analyze any human readable file, vintage and modern.
It’s like having another pair of eyes to improve the quality of software.

  • Java, JSP
  • C#, C, C++
  • COBOL
  • Ruby
  • Python
  • ASP
  • PHP
  • Visual Basic
  • Node.js
  • JavaScript
  • TypeScript
  • HTML
  • XML
  • CSS
  • Sass, Less
  • Markdown

Prevent Code Duplication Errors

Imagine a bug is discovered within a method somewhere in a project. The developer writes a test case, makes the necessary code changes, ensures the test passes, commits the code and considers the job finished!

Unknown to the developer, some weeks earlier, a fellow team member discovered the same piece of code and realized that it did almost everything they needed to solve a problem they were working on at the time. They copied the code into their new method, added some more code to do the extra functionality required, and committed the changes.

Of course what they didn't know at the time was that the code they were copying had a bug in it! Now the original bug has been fixed but unfortunately copies of it persist.

Copying and pasting isn't the only way for this to occur. Duplicate code can also creep in by developers independently implementing similar features.

Simian Similarity Analyzer catches these and other instances of duplication and can be configured to either flag them as warnings or even "break the build", ensuring that copy/paste never again causes these problems.

Blazing Performance 🔥

Running against a large code base such as Oracle’s JDK 9, Simian detected 141,070 duplicate lines of code in 2,406 files and completed in less than 5 seconds!

Example Performance Test

JDK 9 Source Code:

  • 2,402,974 lines of code
  • 7,714 files

Simian Results:
Found 141,070 duplicate lines of code in 2,406 files in less than 5 secs.

Results may vary depending on factors such as hardware, operating system, processing options, etc.

Simian Runs
Almost Everywhere

Simian runs under any Java2 Platform 1.4 or higher Java Virtual Machine (JVM), meaning you can use it on Windows, MacOS, Linux, and zOS. Java runtimes are included as part of the distribution. Simian can be used as part of the build process during development or as a guide when re-factoring.

Use Simian for
the monkey work

Get Started

Collaborating for Better Software

Quandary Peak Research is sharing Simian Similarity Analyzer with the software community, and will eventually encourage contributions to the source code from fellow nerds & enthusiasts. Let us know about your adventures with Simian, share some feedback and help us improve the tool.

Busy street in Los Angeles