php is great because it's a statically-typed language with types less expressive than pre-generics java and that lets invalid code run because it doesn't actually do static type checking at all

this toot inspired by my realising php doesn't support return type covariance and will crash out fatally if you try to do covariant things with return types, even though it has a keyword (self) that appears to be specifically intended for doing covariant things with return types

it turns out c♯ also does not support return type covariance

so c♯ sucks actually

@00dani Sorry can you give me an example of what you mean?

@AdrienneCohea sure! here's the simplest possible case:

class Base {
public Base getSelf() {
return this;
}
}
class Derived extends Base {
public Derived getSelf() {
return this;
}
}

this is well-typed from a theoretical perspective, and it typechecks in java and scala, but not in in c♯

@00dani @AdrienneCohea c# can't type check this???
Heck... What error does it give?