PythonInterfacesAreNotJavaInterfaces

ThoughtStorms Wiki

PhillipJEby is having an interesting discussion on scaling PythonLanguage up to large-scale applications; particularly where you think in terms of a FrameWork which he describes interestingly like this :

A framework is a library that calls the framework user's code. Ie. something with CallBacks)

The story is here :

. http://dirtsimple.org/2004/12/python-interfaces-are-not-java.html

And this should also be read in the context of his pieces comparing JavaLanguage with PythonLanguage which I link from ProgrammingLanguagePlatformWar.

I wrote a typo-filled response on the blog. Some more considered thoughts ...

Eby writes : Also, notice how I can refer to other interfaces as I describe the parameters, which allows me to have absolute precision in the specification, but without having to immediately explain what those other concepts are.

I think that's exactly what's so difficult with the Javic view. In the name of "absolute precision" I have to load my short-term memory up with place-holders, Interface names I don't yet understand or have any intuition about, while I'm struggling to understand this bit of the spec. One of the most powerful tools for simplifying any sort of explanation or activity is to try to LimitToLocalReferences.

Let's read the big picture in a separate, higher-level language such as a class-diagram. And then, when demonstrating code (a lower level language), we should try to show particular concrete example cases which include the minimum number of references to distant parts of the program. If the code can't do that, ie. if you need to learn 5 or 6 different classes / interfaces to understand one "action" within the framework, the framework is probably not well designed (UsableAPI)