[net.lang] 1000 lines of code in APL

gnu (03/25/83)

I've written and/or maintained several applications in APL that were more
than 1000 lines.  I know at least a hundred people who do that for a living.
These applications were all used for day-to-day business on large
time sharing systems -- one was the electronic mail system, another was
the source-code control system (designed for programmers, integrated
with the editor, rather than the designed-for-internal-trickiness Unix
hack).  Some of these applications were utterly unmaintainable, some were
a joy to maintain.  It depended on who had had their hands in the code
and what they knew about structure and style.  

All languages have "features" that get in the way of good structure.
All programmers have to fight with these features to produce maintainable
programs, if they realize that maintainability is vital.  Frankly,
I saw a lot more comments in APL code than I find in typical Unix code.

The style that APL taught me was:  design your data structures FIRST.
That's because the language would automatically iterate (or, in newer
APL's, recurse) based on the structure of the data you handed it.
This has been invaluable in later life, since the data structure
really does determine the applicable algorithms and their speed.

	John Gilmore, Sun Microsystems