Re: Metalanguages in environments where code is data. Re: GNU Script isn't fixing something that's b

Gerald W. Lester ()
Tue, 8 Nov 1994 02:19:22 GMT

In article <>, (Axel Wienberg) writes:
>In article <> gwlester@CAPTAINHOOK.CPU.COM (Gerald W. Lester) writes:
> If you write modular applications where the application runs as
> multiple processes, tcl is good (at least good enough to control an
> oil and gas production facility in the Gulf of Mexico).
>You are speaking hypothetically, aren't you?

No! It is real, it is working, it is growing, and the client loves it!

> I'd defining large as over 100,000 lines of tcl/tk code.
>How did they do that ?! Can you tell us some of the experience,
>like, is it still maintainable, how reliable is it, how flexible is
>it, how much external documentation/specification do you need to
>understand the code, ... ?

Standard structured design techniques. Break things down into
systems/modules. Define the interfaces and write the modules (most as separate
programs using message passing).

It has been running for several months now. It appears to be very
reliable. Of course with less than a year running we don't have enough data to
really say (previous VMS based systems we've done measure down time in

The system is extreamly flexiable. Most changes are done and *tested*
in only a day or two.

We have very little external documentation. However every program has
a comment block at the beginning and every procedure has a comment block at its
begining. Most procedures are only a dozen or so lines long and don't need
more comments. Longer procedures have additional embedded comments. In
general I find the code easier to follow than C/Fortran/Pascal because their is
less of it.

I'm attaching a little write up that mentions the project.

----------------------------- A T T A C H M E N T -----------------------------

Let me tell you a little about what we do. After giving some background, I
show where tcl/tk comes in.

Our primary business is Systems Integration Consulting, especially in
the area of Supervisory Control And Data Aquisition (SCADA) systems. Our
traditional area of business is in Oil & Gas Production and Pipelines, but we
also do SCADA outside of that, from Electric Utilities to Food Processing control

Our current generation SCADA system is based on a product from HP called RTAP.
This is toolkit for building SCADA systems, not a complete SCADA package. One
is expected to write the remaining applications, including the GUI, to make it
a SCADA system. What we have done is to bring all of RTAP's API (call
interface) up into tcl as tcl commands (this is the only C/C++ programming we
do anymore). All of our GUI and any application programs we now write are in
SCL Plus (tcl/tk with our RTAP extensions). Our current system is a
distributed client/server model.

We have deployed this system at client sites, the most notable one being the
Shell Auger production platform in the Gulf of Mexico. Auger is a Tension Leg
Platform (TLP) that is expected to produce 150 million cubic feet of natural
gas and 40,000 barrels of crude oil per day. The total cost of Auger was
$1.35 billion, of which about $5 million was for the control systems we put on
the platform. Our control systems operate all aspects of the platform.

We currently have produced over 250,000 lines of tcl/tk code, counting
comments. This, to the best of my knowledge, is the largest tcl/tk project to

A second area of business that we are in is tcl/tk training and consulting.
The expertise that we developed for our SCL Plus product
(the tcl/tk based SCADA system) provided the opportunity to move into this area.
We offer both public and private/custom tcl/tk training.

If you will send me your address and phone number, I can send you more
detailed information about what we do, including our tcl/tk offerings, and
information on the Auger project.

* Gerald W. Lester ! Voice: (504)-889-2784 *
* Computerized Processes Unlimited ! FAX: (504)-889-2799 *
* 4200 S. I-10 Service Road, Suite #205 ! E-Mail: *
* Metairie, LA 70001 ! Hours: 09:00-17:00 CDT *