>One of the main benefits of static typing is to detect errors at compile time
Obviously. But a static type system that lacks power and expressiveness is very constraining and can detect very few classes of errors. Hence the example of java, a very inexpressive static type system.
>BTW, static typing goes way before Java :)
Again, obviously. Why are you saying random obvious things to me?
Because they seem to elude you, especially if you think Racket was given an "Java-style static typing".
One of the main benefits of static typing is to detect errors at compile time which is a benefit of typed Scheme compilers too.
BTW, static typing goes way before Java :)