It is. What's with the languages and their communities trying to reinvent worse wheel and label it with a new word all the time?
if (thing is IFasterThing ft)
{
ft.FastPath(arg1, arg2);
}
The author’s mistake was assuming that interfaces are unique to Go. I think it’s still a helpful article as someone who works frequently with interfaces because, while I “discovered” the interface upgrade idea on my own, I had never considered the proxy problem.
Go’s interfaces are unique in that they are structural, which makes this problem more difficult to solve.