I have a `Gene` class that keeps track of genes. `Gene` has a method for calculating the distance between two genes. Are there any reasons to make it static?

Which is better?

`public static int geneDistance(Gene g0, Gene g1)`

or

`public int geneDistance(Gene other)`

Arguments for/against making it static? I understand what it means for a member to be static, I'm just interested in its implications for maximum cleanliness/efficiency/etc.

I repeat the same pattern for returning trimmed versions of two genes, finding matches between genes, finding matches between animals (which contain collections of genes), etc.