Path: utzoo!attcan!utgpu!watmath!iuvax!mailrus!ames!uhccux!dunn From: dunn@uhccux.uhcc.hawaii.edu (John Dunn) Newsgroups: comp.lang.forth Subject: Re: Success of FORTH in the marketplace Message-ID: <4391@uhccux.uhcc.hawaii.edu> Date: 21 Jul 89 16:48:34 GMT References: <33300@apple.Apple.COM> Reply-To: dunn@uhccux.UUCP (John Dunn) Organization: University of Hawaii Lines: 48 >This is gonna be kind of inflammatory ... you can flame me back, but I've > >I'd like to see fewer claims along the lines of "It's a great floorwax, so >it must also be a great toothpaste!" and more stories like "I successfully >used FORTH to do an important project X," optionally ending with, "I also >made a million bucks doing it," or "... and thus I saved my company's >bacon." > >So what have YOU successfully used FORTH for? > Well, I wrote a paint package called "Lumena" and founded a company called Time Arts Inc. on the product, and indeed have made several million. (to the IRS: it was folded back into the company, I still have holes in my socks!). I normally don't get on soapboxes, especially on religious issues. To me the proper way to decide what language to use is to decide what kind of project you will be doing with it. Each has its advantages, and none is inherently *better*. But a few words about why I prefer to program in forth might be useful to others. My main area of interest is real-time use of pc's for art applications, including music (I wrote MusicBox, which was reviewed in July's KEYBOARD in 8086 assembley because I needed maximum speed). What I have known from the beginning, and have seen verified many times is that getting the computer to do the tasks I want is the *easy* part. The hard part, the real art of programming, is in writing the interfact between the computer and the artists. Artists work in intuitive, right-brain space. While doing art, it is an imposition to ask them to go into verbal, left- brain mode to pick the next tool, do the next manipulation, etc. This is where FORTH really shines. You can write the basic interface as you (in left-brain space) think it should work. Then keep changing it on the fly until it has the right artistic *feel*. Programming in C or any of the other compiled languages simply does not allow the tight programming-testing loop FORTH gives. I've tried them all, including Turbo-C. The only thing that comes close is LISP, which is also incrementally compiled (or can be), but is too machine-intensive to produce applications on a PC. My rule of thumb is, if the user interface is a large part of what the program is about, program in FORTH. Otherwise a programmer-friendly language such as C would be preferable for portability reasons, and because FORTH tends to be difficult for a project group of more than 2 people to deal with. Often it is a good idea to put FORTH interface code on top of C application code. --John Dunn