[Zope3-dev] Re: Who would use this crazy thing called Zope 3?

2006-02-13 Thread Holger Froebe
Hi Martin,

as one of the 2nd wave of Zope3-guys (which means my
business is app development/maintaining in a day2day-Job, 
not developing the core) I assure you that the Z3-Ship
is in safe waters since autumn 2005 - the 3.2 release.
Since I work with Plone 2.1 AND Zope3.2 (for different projects),
I'll try to show you both sides of the story. 

First try at some (crude) analogies from Plone-World: 
Try to remember when Plone 2.0.4. was out - and you'd ask me
if it's a safe bet to switch from Plone 1.0.x-series 
Your answer ? And what would be your answer if I'd ask you at PloneConf'05 how
much changed from Plone 2.0 to Plone 2.1 (yes, I followed your tutorial ;-)
Zope3-development is now more in the Plone2.0-2.1 phase, but left
Plone1.0.x-2.0-stage for awhile.

Back to Z3-world:
The main concepts like ZODB, interfaces, adapters, events
will not change drastically - this time ended with the 3.0.x-
release (well, to be honest, with 3.1 ;-).

Now they do not make big refactorings but improvements, like
- discussing which stuff belongs to ZCML and which to Python
- howto make installation easier (eggs, setuptools) 
- howto separate the components even cleaner (Did I hear Death to zope.app ;-)
- ..

For staying in sync with changing Zope3-infrastructure
there's a concept called Generations. It's used for Zope3
itself as well as in the SchoolTool-Project. For an intro
into the concept have a look at http://mg.pov.lt/blog/zope3-generations.html

My recommendation if you're unsure:
Ask the Zope3-Gods like Jim or Philipp or Stefan himself. Ask them
personally. They even show up on Plone events ;-) Ask on this list, if you're
unsure for a certain feature.

After awhile you see your fears approaching and 
with every step you'd get more comfortable with it and
develop a feeling of your own about the development
dynamics of Z3. At least that was my experience
and it didn't change in the last 12 months when
I started with Z3. So if you'd ask me - Zope3 is a safe bet and a very
friendly territory indeed. 

But you're right that there is no such
thing as a comprehensive, current + stringent doc of Zope3.
static-apidoc is a good start, but you're pointing right to
to consistency. Since it's written by different people,
there's no unique style, but it's getting better from
release to release. That will take some time, but 
remember 2004 when Limi started with the Plone Documentation Team 
and how far we're getting now. 

Happy Zope'ing,
Holger Froebe

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Who would use this crazy thing called Zope 3?

2006-02-11 Thread Lennart Regebro
 things. Extreme example: In Plone the core Plone product is called
 CMFPlone. It pisses Alexander off. Should we rename it 'Plone' and thus
 break every product that ever imported from CMFPlone? Should we make a
 jungle of aliases and deprecation warnings? Or should we live with our
 mistakes? In this case, the benefit is marginal and the potential
 confusion and breakage is high. That trade-off point moves with time,
 though, as the more major parts of the framework become right and as the
 user base increases. However, that same user base will not increase beyond
 those who are so well-informed that they know what they're getting
 themselves into, if the software gets a reputation for breaking your code.

 I guess the question is, how far along that curve is Zope 3? How far along
 does it want to be?

It's curvature point is  6.3 milliMartins. ;-)
There are methods for neatly deprecating things like this, and they
have been employed consitently in Zope 3, and quite consistetly in
later versions of Zope2. For example,  in Zope 2.8 the whole Zope
package was renamed Zope2. The Zope.py backwards compatibility handler
will be removed in Zope 2.11.  I'm not aware of this causing any
problems.

So to answer your question: If you make do not update your Zope
version for more than a year, then you may find that your products is
no longer compatible. The solution to that will be to jump two major
versions at a time, and remove any deprecation warnings you see.

For example. If you now use Zope 3.2 to write an application, and you
in the beginnig of 2008 decide to install Zope 3.6, which should come
out in November 2007, you may find that you get an import error, or
that a zcml statement you do is no longer recognized. The solution is
to instead try with Zope 3.4. It should work, but the import errors
and unkown statements should now instead be converted to deprecation
warnings, conveniently telling you what to do instead. You fix those,
and when there are no more deprecation warnings in your code, you
switch to 3.6. Maybe you have more deprecation warnings, so then you
fix them too. Then after that, you are all set for 3.6, 3.7 and 3.8.

That's the idea. But who know how things will look in 2008!? We could
all have been wiped out by an interplanetary virus or something... :-)


Rule #1 in computing: Things never go as you plan and the future
changes to fast for you to keep up. So don't try to do things to
accomodate the future, because it is never gonna look as you thought
it would. This is the basis of the YAGNI rule in XP development, and
this is the basis of my rule in computer management: Do what works
today. Don't wait for something that might work tomorrow, because it
ain't gonna.

--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: Who would use this crazy thing called Zope 3?

2006-02-11 Thread Philipp von Weitershausen
Chris McDonough wrote:
 I'm told that the ZODB is the de-facto way of storing content.  Maybe
 soon the default may be a filesystem. Mmm...
 
 
 My feelings are that there should be a classic Zope 3 release which 
 is exactly what exists now (it should make the assumption that ZODB  is
 present and the root object of the publication lives there,  present a
 management interface, etc.) and there should be a light  Zope 3
 release which is really just BoboNG which makes no  assumptions about
 the publication object.  Jim did some work on this  last year.  IMO,
 this would be Zope 3 without anything that currently  lives in zope.app.
 
 The reason for the light version would be to make it easier for 
 people who don't necessarily buy in to the ZODB or schema-based  content
 or through the web management, etc. to start using Zope  gradually
 without needing to bite all of it off at once.

+1

In fact, I would go as far as calling the light version Zope 3. If you
want more (the ZODB, etc.) then you just need to install those extension
packages to Zope 3. As said in a different post to the list, I think the
use of eggs would make this a lot easier and could help justifying the
additional step you need to take go get a classic Zope 3 installation.

I'm not entirely convinced that the line we'd have to draw between
classic and light Zope is exactly at the zope.app border now.
zope.app also contains non-ZODB specific things that Zope 3 should
still ship with. Which again shows how stupid the zope vs zope.app
distinction is.

Death to zope.app!

Philipp
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: Who would use this crazy thing called Zope 3?

2006-02-10 Thread Martin Aspeli



Forward compatibility is a myth, it doesn't exist.


I would tend to agree. However, the degree of compatability and the time  
spans in questions are under the development team's control. It may, at  
some point, become more important to ensure continuity than to perfect  
things. Extreme example: In Plone the core Plone product is called  
CMFPlone. It pisses Alexander off. Should we rename it 'Plone' and thus  
break every product that ever imported from CMFPlone? Should we make a  
jungle of aliases and deprecation warnings? Or should we live with our  
mistakes? In this case, the benefit is marginal and the potential  
confusion and breakage is high. That trade-off point moves with time,  
though, as the more major parts of the framework become right and as the  
user base increases. However, that same user base will not increase beyond  
those who are so well-informed that they know what they're getting  
themselves into, if the software gets a reputation for breaking your code.


I guess the question is, how far along that curve is Zope 3? How far along  
does it want to be?


Martin


--
(muted)

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com