Skip to content.

plope

Personal tools
You are here: Home » Members » chrism's Home » The Zope 2/Zope 3 Dilemma
 
 

The Zope 2/Zope 3 Dilemma

I would like to start developing code using Zope 3. Unfortunately I haven't been able to convince anyone to pay me to do so.

With the recent release of the second Zope 3 alpha it seems to be a reasonable time to start trying to develop under Zope 3 "in anger". Zope 3 has a lot of nice features and is clearly much cleaner and saner than Zope 2 is. I would also like to contribute to the project as a community member.

But at this point, my paycheck depends on doing consulting for a variety of customer projects. My customers are wisely risk-averse and creating software on top of something so new (the expanded mnenonic of "Zope X3a2" is "experimental Zope 3 alpha 2", which doesn't particularly evoke confidence that things won't still change radically) is something that I just haven't been able to convince any of them to allow me to do. Even if there was a "Zope3 1.0" release, for better or worse, I don't see a way to convince my customers to try it until Zope 3 is made backwards compatible with Zope 2, so they don't need to do a complete rewrite of all of their code in order to move forward. The amount of work required to make it Zope 3 backwards compatible with Zope 2 is just completely mind-boggling; I just wouldn't even know where to start and I suspect that even if I did, I would go broke trying to make it so. Someone is going to need to fall on the sword for that to happen.

I was lucky when I started working for ZC, because effectively they paid me to learn Zope 2. As of now, I have no such sponsor for Zope 3, and I lack the time (and frankly the intellectual curiosity) to learn to write code in Zope 3 on my own. I also have a tremendous committment in code to Zope 2 that I need to continue to support, so taking on a Zope 3 project "for fun" seems like it would be biting off more than I can really chew. I suspect there are a lot of people in the same situation.

That said, I suspect there are people that are new to the Zope world that would benefit greatly from just forgetting entirely about Zope 2, and going straight to Zope 3. I hope there is a critical enough mass of these people who will push Zope 3 forward and maybe I'll be able to catch up a little later. If this doesn't happen, I fear I will never get to do any Zope 3 coding. :-(

Created by chrism
Last modified 2004-05-28 01:46 PM

Poor man's solution...

Backward compatibility through mod_rewrite?

1085777971

I hope there's a critical mass too. I'm sortof in the same situation. Although... I'm hoping that I might be able to translate a recent project from Zope 2 to Zope 3 with (relative) ease, if I can make the time. So much on my plate at present.

Backwards compatability

I guess one of the most important parts of any framework or 'platform' is backwards compatability, and its important for Zope as well. I've been considering several approaches for making my pet project, the Issue Dealer, run on Zope 2 and Zope 3. One is rewriting parts of the product so that it makes use of Zope 2 or Zope 3 libraries, depending on what it is installed on; another option is to write a compatability layer (which works one way, from Zope 2 to Zope 3), which lets Zope 2 applications run on the Zope 3 platform with little (if any) modifications. Maybe someone else would be interested in developing such a layer as well?

As for learning the new technologies, well, I guess that's something to keep in mind when charging customers and setting up budgets.. :)

SchoolTool

One possibility that might open up is SchoolTool (http://schooltool.org). It is an open source student information system, primarily for use in schools in underdeveloped countries. The development is being funded by Mark Shuttleworth (formerly of Thawte) and led by Steve Alexander. The work that has taken place up to this point uses the ZODB (3.1) and is pretty heavily influenced by Zope 3 patterns. The focus so far has been on using a REST interface on the server and a wxWindows client, but the consensus seems to be that a full HTML interface is needed soon, and it seems pretty clear that Steve would like to move over more Zope 3 code for that purpose, but it is still up in the air. I'm not exactly sure what is going on behind the scenes, but we seem to be at a point of indecision.

So it is something to keep an eye on. Perhaps you will be able to get paid to do some Zope 3 work and help out teachers in Africa at the same time.

Same here

Indeed, I have the same dilemma. Plus, I am not even a true Python programmer to start with! I played with a demo Plone 1.01 site in Jan 2003 that I used to sell the idea of Zope to my company. Since that time, the project was delayed and it is supposed to take off this summer/fall. Since I sold the Python solution to my boss using Plone, so I don't see myself saying : I 'think' Zope 3 is so much cleaner (deep down, I believe in that strong suspicion of mine because I have been watching a bunch of zope UG's over the past 18 months and I have come to trust and respect what I believe are amongst the finest software thinkers around that is, you Python/Zope/Plone folks) so let's forget about Plone 2 and start using Zope 3. Plone 3 will be there (aligning on Zope 3 ??) in 18 months, so then we can make portals more easily (really ??).

If I go the Z3 way, am I exposing myself to a lot of suffering that nobody else but me will be willing to assume. That is, do all the "behind-the-scenes" work that makes the application so much cleaner, easier to maintain and robust, but that nobody sees, while leaving out the "nifty" stuff that everybody sees ... Shit, I need to know more Python freaks in my neighbourhood!

I don't think people in a consulting position like Chris or people working in corporate environments that swear by "billing hours" are in a very good position to be bleeding edge. People in NGO's, gov't or universities are probably a safer bet.

The problem: Theory vs practical application

I suppose one of the reasons why people who currently develop on Zope 2 are in this dilemma (and I bet every single Zope 2 developer is, unless they are part of the Zope 3 developer group) is a possible disconnect between the Zope 3 developers and the commercial world of consulting on top of Zope.

I would say that some of the most important people in the Zope 3 world are brilliant when it comes to developing this foundation in the "academic" isolation they are in, but there is not enough people (myself included) who know both Zope 3 well enough and do enough nitty-gritty commercial developments to keep their heads above water financially, people that can jump up and yell if there are development decisions that either trade off ease of use for some kind of code purity or decisions that increase the learning curve for people coming from Zope 2.

And no, this is not meant as some kind of insult to the Zope 3 developers, I am just formulating a perception that I have had ever since the Zope 3 project started.

Mix Zope 3 into the Zope 2 stew-pot

From a practical point of view I think the most realistic approach, high pain threshold notwithstanding, is to try to use as much of Zope 3 in Zope 2 projects as possible. I know Chris already knows this because he was there when we (at ZC) started doing it, but its worth a reminder ;^). At least with X 3.0, there is now a commitment to maintain BW compatibility going forward, which is I think the main difference between now and then. So at least the pieces you borrow now won't get totally rewritten in a month, maybe.

I think Zope 3 is not really done enough for the kinds of projects I would want to use it for. There are big pieces missing, such as catalog. I am working on that one however (in my own way). For me the best way to develop for Zope 3 is to develop general python modules. That way you could plug them into both Zope 2 and Zope 3 (or neither ;^). The big granted their though is that these are spare time projects, not for pay.

Actually this begs a greater question: How does one get paid in the open source world for R&D work? Seems to me like much of it is just donated either by crazy insomniacs or lucky people working for companies/universities kind enough to give some away. Oh yeah, and philanthropists too... Guess if you get enough net-fame points, you can just charge enough so that you only have to work for customers 20 hours a week or less... but then how do you make the Hummer payments and afford all that bling?

schtuff

I'm at least a little dubious of using Zope 3 code in Zope 2 if only because there really isn't much in Zope 3 that isn't in Zope 2 already. I guess things like schema and filesystem sync are part of Zope 3; these aren't in Zope 2. But Zope 2 has Archetypes and FSDump/skins. Amd so on. If I had my way, I imagine I'd be happier coding in Zope 3 with Zope 2 bits a safe distance away. But you're right; the only way I'll get to do Zope 3 coding soon is to use the Frankenstein mode for some customer projects.

As far as R&D goes, I think there's a bit of marketing dance that needs to happen for a product to attract R&D work. It needs to do something unique out of the box or have a "killer application". In the early life of Zope 2, this was Squishdot and (believe it or not) Zope.org. At the moment for Zope 2, it is Plone. Maybe someone will create something like that for Zope 3 soon and it will grab a hold of folks who will be able to convince their bosses to invest in it, even though it's new.

Beta 1 is out

Hopefully this reduces the "moving target" factor somewhat. Interesting points from the release:

"The API is frozen now for X3.0.0." ... "The beta period is scheduled to last for about 1 month."

I have a volunteer project planned, for which the implementation is entirely up to me, and it would be a very nice candidate for zope X3 using schemas... if only there were a catalog, which apparently is out of scope :-( Without a catalog, I may end up doing it in Zope 2 / Plone / Archetypes.