PEAK is a Python framework for rapidly developing and reusing application components. While Python itself is already a very high-level language, PEAK provides even higher abstractions, largely through the clever use of metaclasses and other advanced Python techniques. In many ways, PEAK does for Python what J2EE does for the Java™ language.
IncompatibleError
I mean, PEAK is built on itself. Just like Zope. I hear that at least twisted would use Zope3 interfaces, but when does this stuff really get integrated ?
“I mean, PEAK is built on itself. Just like Zope. I hear that at least twisted would use Zope3 interfaces, but when does this stuff really get integrated ?”
its a independant framework. not meant to be integrated with anything else
that’s exactly what I mean.
The core of the java component concept is: everything certified as enterprise is compatible with everything else[1].
Having a common component infrastructure shared from everything found on PyPI would be wonderful, but looking now I see three (well, something beetween 4 or 2) different concepts of, say, interfaces. I’m just advocating reduction of different efforts to one comon denominator, maybe a SIG would help.
[1]
and sure, now nobody is respecting that anymore javaland is balcanized.
Sorry, but please read the article. PEAK has PyProtocols as its component, and its main job is to “adapt” Zope, Twisted, or PEAK interfaces to others. (It can do other cool stuffs, like adapting COM, CORBA, or XPCOM, but there is no code written, yet.)
It even has “transitive adaptation”, means if A is adapted to B and B to C, A can be automatically adapted to C.
And it is hoped that some day interface would go into Python core.
http://peak.telecommunity.com/PyProtocols.html
PyProtocols is an extension of PEP 246, which defines the standard ‘adapt()’ protocol. Zope 3 interfaces now also support this standard protocol, so when Twisted uses Zope 3 interfaces, all of the major packages using interfaces will have PEP 246 compatibility.
There are some major differences in the capabilities of PyProtocols interfaces and Zope 3 interfaces; which ones you use will largely depend on the functionality you need. But if you want to be interoperable, you’ll have to settle for the least common denominator functionality defined by PEP 246.