[Zope-dev] Fwd: Defining Zope 3.

2009-04-20 Thread Patrick Gerken
Hi,

I usually love gmail, but in these last discussions I have trouble to
understand, where I should write my reply to, since I can not see a
thread. So I write a reply to the first mail and reference to various
mails below. Sorry for that confusion to the people who use real mail
readers!

I would like to comment on this stuff with a bit of an outsider view.
Somewhere in 2005-2006 I got a bit disconnected from zope and its
evolvement.
I was stuck to, I think, 2.8, and lots of Zope2 specialities that
exist in Zope2 and not in Zope3.
I disliked the things that were in Zope2 but not in Zope3. I must
admit, that's a bit of fan boy attitude that I must get rid of. But in
the time 2005, 2006, Z3 was the new kid on the block, everybody was
wondering who would need how much time to migrate to the new zope.
Zope3 was the big rewrite that will be the standard soon.

Now I was told that Zope3 is not being seen as a replacement of Zope2.
That stuck me as odd. Philips book does not say, that Zope3 will
replace Zope2. But he suggests to try to use as much Zope3 technology
through five, to have an easy migration. That at least suggests that
Zope3 is the future while Zope2 is not.
When I go to www.zope.org and click on Zope 3 on the left, I reach a
wiki page that states that Zope 3 improves the development experience.
There is nowhere written that Zope3 replaces Zope2. But it also suggests it.
The English entry of the wikipedia states clearly that Zope3 is not
the successor, an older version even points to suggestions from Jim,
where is a discussion about the possible future:
http://mail.zope.org/pipermail/zope3-dev/2006-February/018415.html

I did not check wikipedia, nor did I skim the last three years of
mailing list traffic, I wonder, did I not do enough thoroughly
research in 2008?

=

I came back to Zope Land in October 2008. I became responsible for a
number of web apps that are based on Zope2, all programming logic in
Script Python, and all data in MySQL. Actually even security was
implemented on its own based on attributes in sql. I considered this
an outdated development model. But I am beginning to understand that
this is wrong, that's my damn fan boy attitude. Everybody said, Zope3 is
better so Zope2 models that were not taken over clearly must suck.

Funnily, I tend to gravitate to products that handle zope2 development
this way. 2005/2006 I was also doing stuff, there all I did was
considered customization and should be handled in script python. The
developers went big ways to make this better and better, they even
added svn support for the scripts! But I disliked it, fan boy that I
am, and was thinking: Hah, when Zope3 comes along and Zope2 will be
outdated, they must rethink their strategy, then they see that this
has no future.

I disregarded the business decisions these companies made with the way
they did Zope development and considered it inferior. But these
companies have based their development model on this. They allow
customers who do customizations in code, and depend on Zope, to take
care that their customers cant break their system. This is their competitive
advantage that they cant afford to loose.

That is a different culture and mind than the ones who do typical
Zope3 development. For the Zope3 developer, the only ones who program
are the programmers and keeping the code in file system and
unrestricted is much much better because you have all the development
tools at hand to have higher productivity and safety. Think versioning
system and easy search and replace over multiple files.

With this in mind, Zope2 and Zope3 are totally different things.
People who use Zope2 and want to continue using it have different
goals than the Zope3 developers. I think, both have the right to have
their own communities. A different name would help separating these
communities. People who do both Zope2 and Zope3 stuff would just be in
two communities.

=

When I started big extensions in October 2008, I wanted to do it
future proof, Zope3ey. I knew of grok, thought of it as something on
top of Zope3 and repoze, that seemed to be something different
altogether.
I wanted to do a smooth migration. As much as possible should be
written on top of the Zope3 part in Zope2, so that one day I would
just run it on Zope3 directly. I didn't want to use grok, because I
feared it would add another complication, and I wanted to do one new
thing at a time. It didn't work out exactly like that. Stumbling and
stumbling but finally succeeding I ended up reimplementing nearly
everything. My goal still was to get it all going on Zope3 one day,
but I stayed with Zope 2.10. Now after reading the threads, I start to
believe that this was the wrong way. I think now grok is not so much
on top of Zope3, and maybe I should have taken a deeper look into
that. But how shall somebody, who does not wade through the 

Re: [Zope-dev] Fwd: Defining Zope 3.

2009-04-20 Thread Martijn Faassen
Hey Patrick,

Patrick Gerken wrote:
[snip]
 I did not check wikipedia, nor did I skim the last three years of
 mailing list traffic, I wonder, did I not do enough thoroughly
 research in 2008?

I think the strong impression was given that Zope 3 was going to be the 
new bright future and that Zope 2 was going to be replaced by Zope 3, 
one way or the other. It doesn't matter what exactly was said, the 
impression was given.

The path that this took has evolved over time. The original ideas about 
Zope 3 being able to run Zope 2 code, perhaps with a migration script, 
never went anywhere. But along another path in some ways we are already 
in that future, as Zope 2 apps use a large amount of Zope 3 approaches 
and code.

One thing that happened recently is that we extracted the concept of the 
Zope Toolkit from Zope 3. We'd now say that Zope 2 uses the Zope 
Toolkit. It could use more of the toolkit, it could use the toolkit 
better, and the toolkit itself is imperfect, but it's going forward, and 
that's good.

[snip]
 I disregarded the business decisions these companies made with the way
 they did Zope development and considered it inferior. But these
 companies have based their development model on this. They allow
 customers who do customizations in code, and depend on Zope, to take
 care that their customers cant break their system. This is their competitive
 advantage that they cant afford to loose.
 
 That is a different culture and mind than the ones who do typical
 Zope3 development. 

Yes, I think that this is an important realization; that development 
using the ZMI, while flawed in many ways, is also *superior* in other
ways to the development model that Zope 3 (and the Zope Toolkit) use.

I talked a bit about that here:

http://faassen.n--tree.net/blog/view/weblog/2008/09/19/0

One response to this is to try to make the development model of the Zope 
Toolkit less challenging for developers. That's Grok. Another response 
is to make there simply less code to worry about when developing; that's 
BFG. Hopefully we'll manage to continue to evolve the Toolkit in the 
direction of increased simplicity too.

But there are other responses. One is to reconsider through the web 
development patterns and see how they might be supported in the context 
of the Zope Toolkit. I have some ideas...

 For the Zope3 developer, the only ones who program
 are the programmers and keeping the code in file system and
 unrestricted is much much better because you have all the development
 tools at hand to have higher productivity and safety. Think versioning
 system and easy search and replace over multiple files.

 With this in mind, Zope2 and Zope3 are totally different things.
 People who use Zope2 and want to continue using it have different
 goals than the Zope3 developers. I think, both have the right to have
 their own communities. A different name would help separating these
 communities. People who do both Zope2 and Zope3 stuff would just be in
 two communities.

I think it's valuable for those communities to share code and 
approaches, but yes, I think a different name (for either Zope 2 or Zope 
3, where Zope 3 would be the road of least resistance) would help make 
clear the vast differences between Zope 2 and Zope 3. There are a large 
number of overlaps too, but fundamentally the Zope 2 TTW web development 
model is quite different.

[snip]
 I think now grok is not so much
 on top of Zope3, and maybe I should have taken a deeper look into
 that. 

In the past, when Zope 3 meant both Zope Toolkit and Zope 3 the thing 
you install and start developing with, Grok was on top of Zope 3 in 
part. Now we simply state that Grok is built on top of the Zope Toolkit. 
It mostly adds an alternative configuration mechanism to the Zope 
Toolkit (through Martian), and tries to make it easier to hook up 
applications this way.

 But how shall somebody, who does not wade through the mailing
 lists, make an informed decision? 

No. This is why I think good information on the web and a consistent 
message are both important. We're not there yet for both. I think we 
need a home page that says: want to get started with Zope? Here are the 
options. That is being worked on.

 If the Zope3 App Server with its zmi
 is becoming more of an implementation to show whats possible with the
 ZTK, why should it be called Zope3?

I don't think it's to show what's possible. I think it is a development 
platform that pre-integrates the Zope Toolkit and adds a bit 
(documentation, installation methods, a user community).

 People start to get annoyed of this discussion, since some started to
 say bad words. I for one am happy about this discussion, because I
 hope that It might result in a better common understanding and after
 that a better public statement, whats happening, what frameworks are
 around and which have what advantages and disadvantages.

Me too!

 Also, I want be be in the Zope foundation, so that Lennart makes me
 drunk