Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!nrl-cmf!cmcl2!rutgers!bellcore!tness7!tness1!uhnix1!nuchat!sugar!ficc!karl From: karl@ficc.uu.net (karl lehenbauer#) Newsgroups: comp.lang.forth Subject: Re: type checking Summary: a million lines of code does not a good forth application make Message-ID: <1457@ficc.uu.net> Date: 12 Sep 88 15:17:00 GMT References: <8808121826.AA23206@jade.berkeley.edu> <1575@crete.cs.glasgow.ac.uk> <7071@well.UUCP> Organization: Ferranti International Controls Lines: 58 In article <7071@well.UUCP>, jax@well.UUCP (Jack J. Woehr) writes: > Well, some people who *call* themselves computer scientists talk > trash like that ... but rarely someone from the *control industry* > which your mail addr seems to peg you as, friend! > > Do you mean to tell me that in 1988 you are doing control applications > and are not using Forth? Neither does the Forth language nor any Forth environment to my knowledge adequately support the development of millions of lines of code by hundreds of programmers, which is the scale of the activities at this mail address. I asserted that Forth was a good environment but not so good of a language. You Forth fanatics are all in love with the environment, so you're willing to overlook the problems with the language, such as the lack of data types, inability to determine if words have their parameters set up properly (again, no types and no ability to specify number of arguments passed to or received by a word) and lack of an infix notation (important, I think, to broaden the popularity of the language). Disk I/O could be improved (standardized and add some sort of standard or quasi-standard file support) There needs to be some sort of stdio-type thing. String processing is pretty abysmal. Floating point standards are nonexistent. Most Forth environments are not well integrated with the native operating system, when Forth is not used as the native operating system. In most cases, it is hard or impossible to execute a Forth program from a command line as a simple application, as one does all the time with C, assembly or whatever programs. There is no widespread ability to call Forth from other languages or to call code written in other languages from Forth. One might say, "yeah, but why would I want to do this?" Consider it a good neighbor policy. Those other languages are able to interact, I can call C from LISP, why not Forth? And as for realtime, most Forth environments are not realtime, because they use a polyForth-style polled task switcher rather than a preemptive exec. Believe me, I understand the appeal of Forth for programming. I used Forth to do a dual-processor, multitasking control system and it was wonderful to be able to type the words into the console and scan the points, switch the relays and such. Indeed, the ability to quickly turn around a change or a test, one the order of a minute instead of several hours once it was in the field certainly saved my butt. Nonetheless, it should be possible to improve the language while maintaining the thing everyone likes: the environment. There are those who will continue to argue that no data types, postfix notation and such make the language better. People and companies vote with their time and money, however. Their resources remain solidly behind the C/FORTRAN conventional language axis. Forth remains a curious, tho' interesting and capable, footnote, and will continue to be one at least until it appears viable to the mainstream of the computer community. Are they just a bunch of old retreads who wouldn't know a fish if we hit them in the face with one? Possibly. :-) But we shouldn't dismiss their indifference as being entirely due to their ignorance: We too may be considered to have failed for not having adequately communicated to them the language's capabilities and utility, or for the arrogance of not having taken seriously their suggestions, criticisms and complaints. Taking the attitude that anyone who disagrees is a fool or a bloody fish-face only helps to perpetuate Forth's outcast status. -- -- +1 713 274 5184, uunet!ficc!karl -- Ferranti International Controls, 12808 W. Airport Blvd., Sugar Land, TX 77478