[Zope] Any comments from ex-PHP developers?

Wankyu Choi wankyu@neoqst.com
Tue, 17 Dec 2002 23:17:49 +0900


Hi,

I don't consider myself an *ex*-PHP developer, but just wanted to share
my thoughts.

I developed and still develop all those serious applications in PHP and
even wrote a couple of books on the language with Wrox. PHP has a lot to
offer in various aspects, and does have its own set of advantages over
Python and Zope.

However, when it comes to that old theme of web developers, separating
presentation and logic, I cannot but admit that Zope beats PHP hands
down (of course, unless you DTMLify all of your Zope applications and
gave them 'welcome-to-my-jungle' looks^^) In a way, PHP encourages
mixing presentaion and logic. I fell for that 'immediate convenience'
for a number of occasions and came up with applications that do all
kinds of presentaion and logic mix-ups.

One good example is PHP NeoBoard vs. Zope NeoBoard.  PHP NeoBoard has
been in heavy use since 1999. I stopped developing it in PHP once I
realized I could do it in less than two days in Zope. And I did. Ported
(not even ported, just borrowed concepts from) PHP NeoBoard to Zope in
less than a few hours. My jaw just dropped at that moment I saw a
'better' NeoBoard work after a few hours of coding in Zope. It took me
more than a few moths to get there in PHP. Just compare the length of
the code: Zope NeoBoard 1.1b has tons of more  features than PHP NB 3.0
does with far fewer lines of code.

Guss it's not entirey fair to compare Zope and PHP in all aspects since
we should see Zope as a developing platform/application server not a
langauage. But as a web development platform, yes, I came to choose Zope
over PHP. All I developed for basic foundation on which to develop other
applications in PHP: Zope already got it. One good example: you don't
have to seek a template engine. Zope already has it. I have yet to find
a better template engine than ZPT. I still marvel at the elegance in its
design.  Just spend a couple of hours with ZPT, you'll know what I mean.

Another strong point of Zope is... It's based on Python: complete OOP
langauge. Rumor has it that even PHP5 wouldn't be 100% oop-ish. What's
missing in PHP in terms of object-orientedness, you get more than you
need with Python and Zope. Personally, I'd go for Python over even Java
for OO-ness. Python simply helps you  (even forces you to) code in far
cleaner and more extensible way. In terms of OOP-ishness, two more
points for Python and Zope.

For the sake of fairness, however, Zope has a few drawbacks (and ZPT for
that matter). 

1. 'THE' PHP community is hundreds of times bigger than that of Zope.
(Hundreds? Guess some Zopistas wouldn't agree.... that's sad but true.
For instance, in Korea, I can even count everyone that can do any
serious stuff in Zope with my two sets of fingers. PHP? Everywhere you
look.) You'd know what I mean by this. I had a real hard time figuring
out how I go about doing the same stuff in Zope as I did in PHP.
Documentation/community support/etc, ammunitions that you desperately
need in this somtimes-very-very-cold opensource world, is far weaker
than those of PHP.  (It might be a blessing in disguise since from the
opposite end, that means you'd be rarity with Zope expertise: huge
demand and little supply^^  To extend that Korean market anology, we
have so many PHP developers that we even hear 'PHP developer' jokes as
American people do lawyer jokes;-)

2. It comes with its own object database, which is something really new
to PHP developers. I have yet to find a good and Zope-friendly way out
of it, as a matter of fact. I have tons and tons and tons of data that
I'm still wary of putting into ZODB.  (Okay some Zopistas, here, would
say, hey that' not true! But yes it's true in my case. Suppose you have
100 giga bytes of data. More than 50% of it should be dynamically loaded
into and unloaded from memory.  All I got, as of now, is a single-file
ZODB storage. Having a single 100-giga byte file... I just can't take
take. I do want a version-less file-based ZODB storage, which, again, as
of now, is non-existent. I'm looking towards Directory storage, but it's
still in beta. ZEO? Well, I don't have the hardware to go with that
option. I've been doing this; no problem with LAMP - Linux, Apache,
MySQL, PHP combo. But with Zope, it IS a problem now. What I really,
desparately want from ZOPE is a bit more leeway in selecting strorage
options. Maybe... ZOPE3/ZODB4 combo? )

3. Elegance (separating presentaton and logic: MVC model) sacrifices
performance: I found ZPT is way slower than DTML and mixed-up PHP code
(but you'd get into similar dilemma if you opt for any template engine
in PHP since that would take a whole lot more time to render, anyway.)
I used to choose performance over anything else, thus the mix-up of
presentation and logic. I changed that attitude. I got sick and tired of
re-doing all the applications I developed years ago, months ago,  weeks
ago, and even days ago: I can't immediately figure out what I was doing
in that block of code in PHP NeoBoard 3.0, for example. I tried my own
template engine with PHP NeoBoard 3.0, an attempt that miserably failed.
I did a message board, community club application, e-commercing
application, web-base mail application, etc: the works in PHP. I'm
RE-doing them all in Zope. Why? Thought it'd be better to redo them all
from scratch than extending or even modifying the mess.

Zope and PHP are good tools in their own rights. One might be preferred
in some areas and the other in the others. Simply put, one can't beat
the other in all aspects. 

What comes on top of your priority list, that's what counts, IMHO.

Hope this helps.

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
---------------------------------------------------------------  

-----Original Message-----
From: zope-admin@zope.org [mailto:zope-admin@zope.org] On Behalf Of
Frederic Faure
Sent: Tuesday, December 17, 2002 10:01 PM
To: zope@zope.org
Subject: [Zope] Any comments from ex-PHP developers?


Hi,

I'm currently looking at PHP + templating engines and Zope, and would
like 
to know if there are any developers in this list who used to work with
PHP, 
and decided to switch to Zope to develop web apps, and, if yes, the
reasons 
you switched.

Thx
Fred.


_______________________________________________
Zope maillist  -  Zope@zope.org
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )