Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!purdue!bouma From: bouma@cs.purdue.EDU (William J. Bouma) Newsgroups: comp.lang.forth Subject: forth standard Summary: why so primitive? Keywords: gripes, observations Message-ID: <7224@medusa.cs.purdue.edu> Date: 21 Jul 89 19:14:16 GMT Organization: Department of Computer Science, Purdue University Lines: 42 I really love the structure of forth. It is elegant in its simplicity as anyone who has used, (or especially written), it knows. But I feel that the standard is lacking in many ways and wonder if any of you agree with me? People have questioned here why forth has failed to catch on as a general purpose language. I think it is beacuse the standard is at such a low level. People are used to using files these days. Why does the standard still deal with primitive junk like BLOCKS and BUFFERS? Sure, given the primitives, someone who knows forth quite well can hack together a usable abstract file system. But people want that stuff to be available when they start using the language. I also think they would like to have their i/o be compatible with that in someone else's system rather than everyone having different words to do the same function. People want a language that is flexible and self documenting. For the most part, forth is that way. But there are stupid and needless exceptions. For example, DO seems quite inflexible in requiring you to use I and J as the loop variables. And if you want to nest 3 deep you have to define a new word which indexes directly into a system stack. Why not just say DO I ... where I could be any variable name? People want to have a rich set of data types available without having to load seperate packages that are incompatible with every else'. Suggestions have been made in this group to have a seperate floating point stack. Why bother? Just have one stack with data types tagged. Sure it will be a bit slower, but think about what is gained. Besides, forth doesn't burn unless its on a special chip anyway. Words could also be provided that don't do type checking for an increase in speed. Well, I was just dissapointed to look at the forth 83 standard and see that basically nothing had improved from the forth 79 that I knew. Only a few of the words have changed. Forth as it still stands seems mainly good for interfacing to hardware or for cramming much functionality into a limited memory space. Most of the people who talk about using forth seem to be dealing with computers at the hardware level. -- Bill || ...!purdue!bouma