[nycphp-talk] PHP Object handling. A rant.

charles at charles at
Sat Jun 1 10:33:55 EDT 2002

Object oriented systems are notoriously hard to debug.

Smalltalks have excellent interactive debugging but that only works
if the IDE is present. On packaged apps. you don't ship the IDE. If
you do, the footprint becomes huge and your users have to be
Smalltalk developpers who know what to do with a Walkback Window.

The only ones who have a decent handle on the process are IBM with
VisualAge Smalltalk which is the same thing as saying OTI's
ENVY/Developper which is the engine. The entire stack and all objects
in RAM are serialized and streamed to a file when an application
crash occurs. That's a lot of over-head for a crash and those files
are huge and buggers to work with without the specialised tools.

What he's bitching about though, is the stateless nature of the web
and the fact that the entire system and the application that he's
working on has to be designed as a state machine which is forced to
recoved its relevant state information at every invocation and which
has to stuff its state information at every exit.

I say he's got it easy compared to programming in CICS or IDMS-DC
where the problems of releasing every resource between invocation are
compounded by a limit of 32k-words of memory per process.

Read a "Programming in Command -level CICS COBOL" for an
appreaciation of the problem.

His beef has dick-all to do with object-orientation and everything to
do with the fact that he doesn't know how to implement a state
machine or handle dialog flow.

Ripping out the object-oriented code won't help him. His problem is
that he's not thinking in objects so his logic flow is spanning
object methods and he doesn't know what to do.

State machines are perpendicular to structure in the same way that a
mobile is perpendicular to its hanging three dimensional structure or
that a true aquatic ballet is perpendicular to the position of the
swimmers in the pool. If you only look at the surface, you're missing
the true dimension of the problem and can't get the point of the

The GUI is a state machine but only for the GUI. The rest of the
objects implement their own state machines as required.

To wax poetic, as I once did in "The Hot-Line on Object-Oriented
Technology" software development is like choreographing the dance of
electrons in n-dimensions. This poor flat-lander has two left feet.


> From: Jerry Kapron <jkapron at>
> Organization: New York PHP
> Reply-To: talk at
> Date: Sat,  1 Jun 2002 01:25:48 -0400
> To: NYPHP Talk <talk at>
> Subject: [nycphp-talk] PHP Object handling. A rant.
> Is it really that bad? ->

More information about the talk mailing list