3 ms·
I regard, `Callable[Blah..., ...., ..., [Blah, Blah....]]` essentially a hostile gesture to the data profession. Guido wanted to create a procedural imperative
by mjburgess 5y ago
I regard, `Callable[Blah..., ...., ..., [Blah, Blah....]]` essentially a hostile gesture to the data profession.
Guido wanted to create a procedural imperative language that used runtime tricks to look simple. What he actually created was a highly (ad-hoc) polymorphic language with extraordinary power.
This is the inverse story to javascript: there brendan wanted to hide the lisp. Here, guido accidentally created one.
Since realising this guido has gone about doing everything to hobble efforts to realise the underlying efficacy of the python model -- and shove it back into the procedural box he had intended it to be in.
Given python3, this appears to be a remarkable contradiction. Python2 was what guido wanted, when python3 came along and "software engineers" won over "educators", playing the "lets keep it dumb and procedural" game was conclusively dead.
I have a lot of respect for Guido's vision, but this approach to typing has frustrated me. It feels like he's fighting a proxy-war on procedural-python, using the type system to force the rest of us to concede.
- joconde 5y agoWhat exactly is wrong with Callable though? The argument and return types can be structural types. It doesn’t really make the function less powerful if you only constrain the input to have the exact interface you need, and nothing more.