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