That Other Use for Squeak

Florin X Mateoc mateoc_florin at jpmorgan.com
Mon Jul 3 19:04:00 UTC 2000


Marcel wrote:

>Today, to have 'light-weight' programming, the tasks must generally be
non-real-world ( logo-turtles, adding numbers, writing linked-lists routines).
Scripting complete applications has more to >do with application idiosyncracies
than with programming, and is typically totally procedurally instead of object
oriented.  I don't think it has to be this way.

But all programming tasks are inherently procedural (at least in part). Please
note that what I call here a procedure is not a "method" in Smalltalk sense,
rather a code path. When putting them together in an "application" we glue all
these procedures to be triggered by some external (user) event. In a complex
application with a huge number of such procedures we have to distribute the code
and state in manageable modules, objects, whatever.

The procedural part of this process is the one that resembles solving math
problems (and unfortunately children are repeatedly told (in US schools) that
math is very difficult).
The distribution part is the "art" part, with much fuzzier rules. Hopefully we
can also control redundancy in this distribution stage. Only this part of the
programming process makes things different in OO. (This also maps into how I
write code: I usually start in a workspace, then grow that procedure until it
becomes too large, then I factor it into classes/methods and continue there)

A religiously OO view of the world does not mention the procedures (code paths -
which are the things that get the job done, the things that you debug, the
things that you profile, the things that you optimize), but I think it would
help students if they realized they have to do two conceptually diferent things
- (re)invent the algorithm(s), then partition the ensemble into small (reusable)
pieces.

Florin



This communication is for informational purposes only.  It is not intended as
an offer or solicitation for the purchase or sale of any financial instrument
or as an official confirmation of any transaction. All market prices, data
and other information are not warranted as to completeness or accuracy and
are subject to change without notice. Any comments or statements made herein
do not necessarily reflect those of J.P. Morgan & Co. Incorporated, its
subsidiaries and affiliates.





More information about the Squeak-dev mailing list