1.1.2 What PEAK is part of: Python Enterprise

The value proposition of J2EE is that you can have industry standards, whose implementations are supplied by competing vendors, to address the ``ilities" across a variety of concerns, such as data storage, component assembly, messaging systems, and so on. But J2EE encompasses over a dozen technologies of varying complexity and immense APIs. Java is also not a compact language, nor is it especially suited to rapid development. Last, but not least, the sheer scope of J2EE ensures that implementations are resource-hungry, and complex to install, manage, and maintain, especially for the smaller enterprise, or small department within a larger enterprise. If you wish to do more with less, J2EE is probably not for you.

Python, on the other hand, is an easy-to-use language that ``fits your brain", and comes with ``batteries included". Often an idea that takes half a dozen classes and several hundred lines of convoluted code to express in Java, can be expressed in two classes and less than a hundred lines of crystal-clear Python. Indeed, Python is so expressive that it can take far less time for one to write an alternative implementation of a J2EE technology in Python, than it takes to understand that technology in the first place! Many J2EE technology concepts were actually developed independently in Python applications and libraries, long before they appeared in Java. But, compared to Java's marketing juggernaut, Python tools for the enterprise have had relatively little market exposure.

And so, there is an increasing movement in the Python world to develop and/or promote serious alternatives to J2EE technologies for use with Python, so that developers can leverage Python's lower total cost of ownership in application development and maintenance. The authors of PEAK see PEAK as part of this larger ``Python Enterprise" movement, along with the Zope 3 application server, and other Python APIs and technologies. Zope 3 can be seen as an alternative to Java servlets, JSP, and EJB containers for ``session beans" and ``message-driven beans". PEAK supplies tools for creating the equivalents of ``managed beans" and ``entity beans", and for implementing parallels to other J2EE technologies such as JNDI and JMS. It is designed to integrate well with the Zope 3 object publishing architecture, and with other Python Enterprise technologies. (A detailed comparison of all the technologies in the J2EE and Python Enterprise worlds is outside the scope of this tutorial, but may be addressed later in a separate white paper.)