The origins

  1. Zopera Team (ZT) : When did you first discover Python ?

    Jim Fulton (JF) : 1994

  2. ZT : When did you decide to use it ?

    JF : 1994. I was working with an implementation of the /rdb database written in Perl by Walter Hobbs of Rand corporation. It had a Perl-based data-manipulation language that used the Perl interpreter. I was making it available to scientists at the US Geological Survey (USGS). The scientists found the Perl syntax too weird and Perl's willingness to treat any string as a number caused a lot of problems for data analysis. I was looking for a light-weight object-oriented language that I could use for manipulating data. I found Python.

  3. ZT : When did you decide to enhance it ? (Our googlemaniacs found informations only back to 1994 :) )

    JF : I guess the first actual enhancement was the abstract-object API, which I worked on with Guido in 1995. I had written a Python extension to access the Ingres database and was starting to work on a tool to generate extensions for calling Fortran libraries. The Python C API was very cool, but made it too hard to write extensions that were very flexible in the data passed to them.

  4. ZT : It looks like you have been a SmallTalk programmer,

    JF : Yes. Smalltalk is very cool. I built a visual chart editor for the USGS using GNU Smalltalk. I also spent a little time serving on the ANSI Smalltalk committee.

    There seems to be some neat work still going on with Smalltalk, especially Squeak.

  5. ZT : and that you might have think about making what became Zope using SmallTalk. Is that true ?

    JM : No. :)

  6. ZT : Why did you choose Python finally ?

    JM : I was a convert to Python by that time. ;)

  7. ZT : If the choice was to be made today, would you Python or try something with SmallTalk (using squeak or GNU SmallTalk) ?

    JF : I would almost certainly choose Python, for a number of reasons, including:

    • Python's syntax is much cleaner and easier to understand.

    • I prefer multiple inheritance. While multiple inheritance can be overused, it makes it easier in a lot of ways to work with multiple frameworks.

    There were a lot of other reasons that I wouldn't even have considered Smalltalk back in '96, such as lack of a solid portable inexpensive Smalltalk implementation, or poor support for non-GUI applications. I haven't really kept up with Smalltalk. Squeak is very interesting and the Smalltalk community has probably made a lot of progress in other areas.

    I definitely think Python can learn from Smalltalk.

    I try to do my part. ;)

Zope Corp

  1. ZT : When and how did you meet Paul Everitt ?

    JF : I met him at the first Python workshop, Spam I. We kept in touch through the Python Software Activity.

  2. ZT : What (reasons) got you decide to join the Digicool adventure ?

    JF : Well, I had been working for the USGS for some time. The USGS is a great organization, but for various reasons, I'd decided it was time to do something different. Boy, was Digital Creations different. 8v]

  3. ZT : How many employees are there in Zope Corp now ?

    JF : 27, most of whom are engineers.

  4. ZT : How many of them are working on Zope core ?

    JF : All of the engineers.

  5. ZT : and how many working as consultant for your direct customers ?

    JF : All of the engineers.

    Really, the best way to improve a tool is to apply it. Certainly not everything we do for a customer goes into the core, but we often improve the core to make Zope work work better for customers.

  6. ZT: How many hours do they have to venerate you in one day ;-) ?

    JF : None, I hope.

Zope & Business

  1. ZT : Do you have a vision of the future of web development that you follow since many years, or do you try to follow industry standards and to keep best of them ?

    JF : I'm an object zealot, and Zope has always been about employing the power of object technology and Python to make building web solutions to complex problems as easy as possible.

    We do, of course, follow industry standards. We put a lot more emphasis on the standards that our customers need or that make our lives easier. The same is true, of course, for the Zope community.

  2. ZT : We heard that Zope gains in functionnalities thanks to development made for customers (ZOracleDA). But isn't it frustrating for a CTO not to be able to schedule priorities and resources in function of ideas rather than in function of customers demands.

    JF : It can be frustrating, OTOH, it's often more frustrating developing software in a vacuum. Fortunately, Zope Corporation and the Zope community at large have the creativity to advance the product while meeting, or sometimes anticipating customer needs.

    A lot of good ideas were developed for the Content Management Framework (CMF) while solving very specific customer problems. I think that this was more successful than the previous Portal Toolkit effort, in part, because it was driven by specific customer needs. The CMF is a cornerstone of out consulting projects.

  3. ZT : This looks like a consulting company adapting its software withoud lead idea rather than a software edition company, isn't it ? Did you open-source the project to fill this lack ?

    JF : No. No.

    Our consulting business is built around Zope, not the other way around. Zope is a platform that provides real benefits for our customers and that allows us to build customer solutions in a fraction of the time needed by other approaches. Open-sourcing Zope was the best way to strengthen the platform, which, in turn, strengthens our consulting business.

  4. ZT: When answering to RFP, do you use components made by the community ?

    JF : Yes.

  5. ZT : How do you customers appreciate this ?

    JF : They realize that reuse lowers their costs and risks.

  6. ZT Are there components that you made for customers that were never open-sourced ?

    JF : Sure. Some components are very specific to a customer, and may even embody customer-proprietary technology or ideas.

    From time-to-time we also create technologies that we don't make available as open-source, but we do share the source with our customers and other testers.

Zope future

  1. ZT : What about I18N in the ZMI ?

    JF : Zope 3 will have I18n support built-in. All Zope 3core code will be internationalized.

  2. ZT : What do you about an interoperability of J2EE into Zope ?

    JF : Zope can interoperate, to some degree, with J2EE today. We have experience integrating with BEA via a shared Oracle database.

    As soon as Jython 2.2 is available, I expect there to be a community effort to port Zope 3 to it. I plan to actively support this effort. Having Zope run on Jython should provide a number of opportunities for greater J2EE integration.

    We are also starting an effort to integrate with external transaction managers, which would allow us to coordinate transactions with J2EE applications.

    Another option for integration with J2EE is via CORBA. Unfortunately, J2EE requires CORBA call-by-value support, which has been lacking in Python CORBA bindings. The recent open-sourcing of fnorb might provide an opportunity for fixing this. (Hint hint;)

  3. ZT : About having Zope acting like a SOAP server ?

    JF : This is definitely something we're interested in. See, for example: http://dev.zope.org/Wikis/DevSite/Projects/WebServicesForZope.

  4. ZT : Zope and XML : what are the plans ? Is Zope going to act like an XML Server for large databases in the future ? What about implementing w3c standards : XSLT, XPATH, XQUERY ?

    JF : The Zope community has taken the lead in general XML technologies. There's a lot of interesting work going on, including XML management and support for standards like RDF, XSLT and XPATH.

  5. ZT : When will we have a query language inside Zope, kind of OQL ?

    JF : Well, we have Python and the catalog query languages now. These satisfy a lot of needs.

    Stephan Richter is working on the ZOQL project, which seeks to provide a SQL-like query and object-manipulation language for Zope. This should be great for ad-hoc processing.

  6. ZT : What schedule do you expect for Zope 3 ?

    JF : Zope 3 will be largely a community effort, so I can't make any promises, however, I am very hopeful that Zope 3 will appear in a usable form this summer.

  7. ZT : What is the most exciting feature that you would like to be in Zope 3 ?

    JF : There are so many, it's hard to pick, including:

    • Component architecture and the new development model

    • Integration of CMF

    • Integrated I18n support

    • Separation of configuration from code

    • New cataloging and meta-data models

    to name a few, but I have to say I'm most excited by the new Component architecture.

Jim Fulton Photo is property of lwn.net. Source : http://lwn.net/2001/features/oreilly2001/