[Zope] RE: Any comments from ex-PHP developers?

Wankyu Choi wankyu@neoqst.com
Wed, 18 Dec 2002 06:04:39 +0900


>Thx a bunch Wankyu for sharing you thoughts on PHP vs. Zope. As a
matter of 
>fact, I'm playing with PHP + FastTemplate + MySQL, and it looks 
>interesting. I still need more about what Zope would offer in addition
to this.

Okay, just trust me on this one: a lot, just WHOLE LOT more. That much I
can say. Don't judge anything until you REALLY get your hands dirty with
Zope. 

A bit of my experince will speak volume. I started this set of projects
(re-doing millions of PHP code; three-to-four years 24/7 worth of work)
a year ago. First, of course, in PHP. Tried PHPNuke/PostNuke...didn't
like them that much. Started building my own: NeoPortal. One day, just
stumbled upon this Zope thing they were talking about. It was not love
at first sight. I really didn't like Zope that much the first time I met
it. BUT loved how Python worked. Yes, I took up Python. Didn't know
beans about the language before then. Bought a book titled 'Web
Programming in Python': a great well-written book on web
developing/template engines, etc. It even got its own Portal project
(named Slither). Guess what? I immediately took to the idea and started
extending it. A month or so passed by. Again, I came to see Zope in an
article. Okay, I thought, I might learn a thing or two from it.... Spent
a week or so playing with Zope. I didn't get back to Slither. I came to
live with Zope. Why reinvent the wheel? 

You need to get your hands dirty first. Zope doesn't look enticing at
first sight. You have to look INTO it and get soaked in it to really
feel what it's like working in Zope.

>Pro's
>- Zope makes it easier to separate logic and presentation : honestly, I

>don't see the difference between PHP scripts outsourcing display to 
>templates and Zope + DTML/ZPT

Again... BIG difference I should say. You don't get the hang of what
Zope and its power tools like DTML/ZPT can do for you unless you really
get to them. 

Zope is an application server. Not just a template engine. For example,
you'd have to spend months to get the likes of Zope's
acquisition/security machinery. That alone, I don't want to use any
other tool when developing web application. Take NeoBoard again for
example. That threaded look, I pulled my hair to implement it in PHP. In
Zope, I didn't even try. Acquision machinery/ZPublisher did all the
work.  

>- Python is truly OOP : What is missing in PHP4? Multiple inheritance?

Half of what any good OOP introduction book would say... is missing from
PHP4. But, if you don't feel what's missing, that means you don't need
them anyway;-)

And Zope objects are persistent. You don't get that from PHP. Just
imagine you create an object and that object comes with its own
persistent database. What a boon. I don't even use session variables
anymore.  

>Con's
>- there are a lot more PHP developers than Zope developers, hence more
docs 
>and more help in case of need

Yes. It's like when I switched over to PHP from Perl back in 1997 to
1998, when no more than a couple of books were on the market (with
dubious quality at that.)

With Zope... well.. doc strings in Zope code are my best resources
now;-&

> Zope uses its own DB instead of a filesystem. But then, nobody
complains 
>when data are saved in other DBMS's, so why do they complain about
ZODB?
>- ZPT is a bit slow, but maybe as slow as PHP and some templating
engines

Like I already mentioned, ZODB, in itself, is a good thing. But it's not
a database you normally see. Not an RDBMS like MySQL. You don't put your
files and images into MySQL tables, for example. ZODB is supposed to
take them all. The whole site goes into ZODB: db + filesystem, sort of.
There are a couple of ways out like LocalFS and its likes, but basically
that's what you do with ZODB. 

The stock ZODB that comes with ZOPE puts everything in one single file
(called file storage). It gets bigger and bigger as you add data. You
can't incrementally back it up. Zope supports versions. You create a
counter and it bloats it up since ZODB stores all of your counter
object's previous versions until you pack it away. 

That portal project I mentioned above... I have too many users now with
their data in MySQL, on the filesystem... all that data adds up to
dozens of giga bytes. I don't think I want to put all that data (and
their duplicate versions) into this ZODB file storage until I get a more
flexible storage like directory storage.

Again, what counts is your priorities. If you don't need what Zope
offers, you might want to stay with AMP. 

Finally, as any good language or platform, you get what you give with
Zope. (But once you get there, you don't wanna get back;-)

Best Regards,
Wankyu Choi
---------------------------------------------------------------
      To the dedicated staff at NeoQuest, language is not a problem
          to be dealt with, but an art waiting to be performed.
  ---------------------------------------------------------------
  Wankyou Choi
  CEO/President
  NeoQuest Communications, Inc.
  3rd Floor, HMC Bldg., 730-14, Yoksam-dong, Kangnam-gu
  Seoul, Korea
  Tel: 82-2 - 501 - 7124 Fax: 82-2-501-7058
  Corporate Home: http://www.neoqst.com
  Personal  Home: http://www.zoper.net, http://www.neoboard.net
  e-mail:   wankyu@neoqst.com
---------------------------------------------------------------