From daemon Fri Apr 6 18:42 MEZ 1990 Return-Path: Received: by vip.uucp; Fri, 6 Apr 90 18:42:30 +0100 Date: Fri, 6 Apr 90 18:42:30 +0100 From: root (Superuser) Message-Id: <9004061742.AA20679@vip.uucp> Apparently-To: ertl Status: R >From mcsun!vax1.tcd.ie!trolfs Fri Apr 6 18:16:19 1990 remote from tuvie Received: by mcsun.EU.net via EUnet; Fri, 6 Apr 90 18:07:46 +0200 (MET) Message-Id: <9004061607.AA09564@mcsun.EU.net> Received: from csclna.cs.tcd.ie by kestrel.Ukc.AC.UK with UUCP id aa05220; 6 Apr 90 16:28 BST Received: from swift by csclna.csclna.cs.tcd.ie id ac28873; 6 Apr 90 16:23 GMT Received: from vax1.tcd.ie by cs.tcd.ie; Fri, 6 Apr 90 16:08 GMT Date: Fri, 6 Apr 90 16:03 GMT From: On-Line Information Service Subject: OLIS: ABOUT4TH_2 file To: vip!ertl X-Vms-To: IN%"ertl@vip.uucp" The March Designers Debate is a good beginning point for an illustration of the value of a philosophical perspective on the question of a computer language's place in the "greater world of millions of computers...". I do not know why there is a tendency in the computer world to take every language and apply it to every kind of computer job, or argue that it could be so applied. I take it for granted that some languages are better suited for some kinds of tasks (for various reasons as shall be seen), and that even given an objective measure of a language's suitability for a particu- lar task, programmers do vary in the kind of language structure best suited to them. Few individuals are talented enough to work equally well in all environments. Forth does not need to become generally accepted (in the sense that it be- comes a numerically popular language) in order to be highly successful and respected. Forth advocates should recognize that the language has a most valuable role to fulfill without having to insist that it can, could, or should be applied to every kind of problem addressed by computers. The is- sue is not whether or not stack orientation or postfix notation is good or bad, easy or difficult. One does not disparage the laser scalple because it is applicable to only certain kinds of surgery, and only a few people will ever know how to use it! Computer languages are tools only. It is the value of what they produce that establishes their fitness in the world (this is true of human language in general). If we survey the vast range of potential applications for computers (and I am thinking not only of different kinds of applications but acutal concrete individual implementations), we find that the vast majority are subtile variations on well known themes of accounting, word processing, financial modeling, data base management, etc. None of these applications typically demands the "ultimate performance" of its base hardware in terms of speed or code size. Hardware is growing faster constantly, and most applications are handled at reasonable speed by most modern compilers. Certain applica- tions demand that a piece of hardware be brought to its optimum state of performance for some task (or set of tasks) even that this particular ap- plication is unique, and may never be exactly duplicated. Things like spacecraft control, robotics, telescopes, and sometimes process control of more mundane sorts, tend to lend themselves to solutions where faster and smaller is better no matter how fast the underlying hardware, and even if the software would have to be re-written in any other installation. I submit that Forth, as a language, is optimized for individuality. It is not that ideas and algorithms cannot be shared, or that some underlying standards cannot be agreed to (indeed they must be if it is to be called a 'language' in the first place). But Forth's greatest power comes from its inherent ability to "take the standard as a starting point and branch out from it." as Charles Moore said. You are not so at liberty to invent your own vehicle in any other language as you are in Forth (and Forth-like languages), and this power is most useful in unusual kinds of applications, because for these applications doing something that has never been done be- fore is the rule rather than the exception. But many of the bread and butter applications of the world are best served by languages that implement well understood algorithms in well understood ways. I am thinking here not only of mathematical algorithms but of every- thing from file handling to error trapping and the user interface. This is true not merely because most people aren't used to postfix notation or stack operation, but also because these algorithyms were first developed and described (some long before computers as we know them) in infix and non-stack oriented languages. The descriptions (and implementations) work adequately to satisfy most of the kinds of applications we give to comput- ers. They serve to aid maintenance and further development (in these kinds of installations) by providing many programmers with varying skills and ex- perience a large common pool of tools. By contrast, Forth's base (its common orientation) of algorithyms is small. As a result, Forth programs tend to be more different from one another than do programs in other languages. The trade off in power is worth it since the base that does exist gives one absolute control over the hardware of the implementation. This ideally suites it for applications that have (as one purpose among many) to push each single implementation to its hardware and software limits. Forth shines (and should be highly respected) for its power in its applica- tion sphere. And for those who are so inclined, there is no reason that more mundane applications should not also be coded in Forth. But for many programmers, a language's "standardness" is itself an aid in certain kinds of work. Largely thanks to Cobol's structure, I can find my way to a piece of offending code in a 10 megabyte 2000 file haystack in a matter of minutes; even though the code was written years ago by someone currently earning twice my salary! Yet I can both appreciate and respect Forth and those that are skilled in it. It will never, in my opinion, be a language for everybody. But for those whose talents to lend themselves to it, it is a language of great power. Might it not be divine compensation that a language optimized for rare and exhotic applications appeals to but a few individuals? Most of us do live by coding accounting and database management applications. How many telescopes are there? Yet even an observatory must keep books! Be Well Matthew Rapaport P.S. Beware Forth advocates! One of Forths outstanding arenas should be weapons guidance and the like. I'm suprised that Forth isn't "bigger" by now for this reason alone. But they will find out...eventually...