Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utcs!mnetor!seismo!rochester!ritcv!cci632!rb From: rb@cci632.UUCP Newsgroups: net.lang.forth Subject: Re: What's so good about FORTH? (lo Message-ID: <208@cci632.UUCP> Date: Fri, 11-Jul-86 20:03:08 EDT Article-I.D.: cci632.208 Posted: Fri Jul 11 20:03:08 1986 Date-Received: Wed, 16-Jul-86 05:22:17 EDT References: <650@ucbcad.BERKELEY.EDU> <3700005@uiucdcsp> <468@astroatc.UUCP> Reply-To: rb@ccird1.UUCP (Rex Ballard) Organization: CCI, Rochester Development, Rochester, NY Lines: 69 Summary: The beauty of a blank page and primary colors. In article <468@astroatc.UUCP> philm@astroatc.UUCP (Phil Mason) writes: >In article <3700005@uiucdcsp> johnson@uiucdcsp.CS.UIUC.EDU writes: >> >>The main reason that Forth is popular is its programming environment. >>Interactive programming environments that support an incremental >>development of an application is the best way for one or two people. This is very significant. Forth gives a great deal of power to a small number of people. One of the reasons you don't see lot's of discussion about forth generally, is because so few people are NEEDED to build a system with the same level of complexity. >Forth is great for reusable software tool writing. This can also be a disadvantage in some ways. Without careful management and good communications, it is very easy to have literally hundreds of almost identical wheels, all re-invented by different people. >>Forth has other advantages, as has been mentioned, principally its >>efficiency, ability to run on small machines, and ability to do low-level >>I/O. THIS is the BIGGEST advantage of Forth. Just as a great artist can take the primary colors plus white, and produce pictures that may have a thousand different colors, so the Forth programmer can take a very small number of primitives, and produce software two to three orders of magnitude more complex. >>Of course, Lisp programming environments have provided >>these features for nearly two decades, but have only become generally >>available fairly recently. >>As memory becomes cheaper, there will be no >>good reason not to use these other languages instead of Forth, and the >>many, many disadvantages of Forth will kill it. For ANY given amount of memory and speed, it will always be possible to pack more functionality in Forth than in a "sophisticated" language. The secret here is coding STYLE, rather than the language itself. The first Forth implementation I worked with had 26 primatives in machine language. Everthing else was Forth. How much can you do with 26 letters and a little punctuation? >I really enjoy LISP. There's nothing wrong with it; but, I'd never want to >write real-time software in it and I'd never want to port the langauge to >another computer. I've never seen a standard implementation of LISP that >deals with the low-level environment of the machine it runs on. With >Forth, you can reach the low-level, high-performance end of the machine >and still have a self-contained environment that is stand-alone. No >operating system needed, no monitor ROM - Forth is ROMmable and >self-contained. On the other hand, Forth can be made to run under any >operating system, if desired. If Forth programmers could find a good way to package their byproducts into something that organized the BULK of GOOD DOCUMENTATION, and good routines, Forth might be more accepted for general use. I've seen "image mode" documentation for some BASIC IMPLEMENTATIONS that make the UNIX manuals look like well organized "quick reference guides". Many such documents have come out organized by SCREEN. Alphabetical order helps when you are trying do decode someone elses code, but "packages" are needed for using tools and routines not built "in house" (by the original programmer). Unfortunately, Forth is SO easy and SO flexible, that efforts such as "object oriented design" techniques longer than the "code/test/integrate" phase. >Think Big, Build Small, Port Everywhere - - - > > Control the World with Forth. Just make sure that someone else knows what you're controlling :-).