>>53
Templates in Sepples aren't so much generics as they are a demented compile-time language which can be used to implement generics. Having a Turing-complete static language is fucking overkill, and opens the floodgates for terribly monstrous over-engineered attempts to add functionality to an otherwise lacking language (ie, Boost et al).
Java's generic support has the exact opposite problem -- they're just glorified type-checking sugar. There's no support to do any kind of compile-time specialization. Because all parametrized instances of a template are reduced via type erasure to the same class, you can't safely use static members of a generic class. Type erasure also means that you have to explicitly state which interfaces parameter types must implement before you can have any reasonable interaction with them.
Rather than comparing it to C# (since I don't really have much knowledge of C#'s generics, but I hear they've got some pretty cool shit in 3.5; too bad Mono's only at 2.0) which has a fairly similar generics model; I'd take it a step further and put Sepples/Java/C# generics next to a duck-typed language or a type-inferred language, which make everything essentially a generic, or allow implicit generics, respectively.