Weird dependence version resolution (compare)

I found that Gradle consider 3.0.0-alpha49-SNAPSHOT as smaller than 3.0.0-alpha45.
It is very strange.

I tried use


And it compare it as I would expect

There are event able to compare alpha vs beta according

       private static final List<String> QUALIFIERS =
                Arrays.asList( "alpha", "beta", "milestone", "rc", "snapshot", "", "sp"  );

        private static final Properties ALIASES = new Properties();
        static
        {
            ALIASES.put( "ga", "" );
            ALIASES.put( "final", "" );
            ALIASES.put( "release", "" );
            ALIASES.put( "cr", "rc" );
        }

What Gradle is using for maven dependency compare?

I found this

It looks much simpler.
Why are you not using algorithms compatible with maven, since it is using a better working concept?