wmb@MITCH.ENG.SUN.COM (Mitch Bradley) (03/01/91)
The thing that Forth taught me about Computer Science is that syntax is a waste of time. Not only is syntax a waste of time, in lots of cases it is harmful, because it boxes you in and prevents you from doing something next year. Some Forth programmers have argued that most of CS is a waste of time. I do not concur. Mitch
bouma@cs.purdue.EDU (William J. Bouma) (03/02/91)
In article <9103011826.AA19197@ucbvax.Berkeley.EDU> Mitch Bradley <wmb%MITCH.ENG.SUN.COM@SCFVM.GSFC.NASA.GOV> writes: >The thing that Forth taught me about Computer Science is that syntax >is a waste of time. Not only is syntax a waste of time, in lots of >cases it is harmful, because it boxes you in and prevents you from >doing something next year. What a lame thing to say! (esp. comming from someone who I agree with 98% of the time) Syntax is a major conveyor of meaning. How could anything be communicated (esp. programs) without syntax? Forth may have flexible syntax, but it definitely has syntax. Perhaps you meant that Forth teaches that syntax should be driven by semantics rather than the other way around? That I could partially agree with. But "syntax is a waste of time" is like saying that information in general is worthless. >Some Forth programmers have argued that most of CS is a waste of time. >I do not concur. If this newsgroup be any indication, many Forth programmers know even less about CS than they do about programming. -- Bill <bouma@cs.purdue.edu>
John.Passaniti@f201.n260.z1.FIDONET.ORG (John Passaniti) (03/04/91)
> The thing that Forth taught me about Computer Science > is that syntax is a waste of time. Not only is syntax > a waste of time, in lots of cases it is harmful, because > it boxes you in and prevents you from doing something next > year. I had to think about what you wrote before I understood it. I was going to argue that Forth did have a syntax-- otherwise, how could I hop between implementations without (much) relearning? But I realized those words I know and love aren't so much a syntax, but rather a convention. I don't know if I agree that syntax is a waste of time or is harmful. That's getting on the edge of Forth as a religion, and I guess that when it comes to programming languages, I am an atheist. I turned my hatred for being boxed in by other languages into a love for understanding (computer) languages. After all, you don't have to like the syntax of a language like Pascal or 'C' in order to appreciate how to write a compiler for it. And when you understand that, you aren't far from understanding how to processing natural languages. Forth's greatest strength is its greatest weakness. While you can find "professional" Forth implementations, the lack of real standards across them means a Forth programmer has to expect some learning when going to a new implementation. Until that is minimized, I can't see Forth being popular in computer science courses. (Incidentally, I have 'C' programs that I can take with confidence between different machines, different compilers, and different operating systems. I can give them to others without terribly much worry that they will work as expected. I simply can't do that with Forth-- at least not yet.) > Some Forth programmers have argued that most of CS is > a waste of time. If I had to stab at why, I'd guess that most of the Forth people I know are more interested in practical applications than theory. Not that anyone cares, but my computer science career was cut short when the theory got to be boring, and the lure of doing practical and immediate work caught me. -- John Passaniti - via FidoNet node 1:260/230 UUCP: {smart-host}!ur-valhalla!rochgte!201!John.Passaniti INTERNET: John.Passaniti@f201.n260.z1.FIDONET.ORG
cwpjr@cbnewse.att.com (clyde.w.jr.phillips) (03/04/91)
In article <9103011826.AA19197@ucbvax.Berkeley.EDU>, wmb@MITCH.ENG.SUN.COM (Mitch Bradley) writes: > The thing that Forth taught me about Computer Science is that syntax > is a waste of time. Not only is syntax a waste of time, in lots of > cases it is harmful, because it boxes you in and prevents you from > doing something next year. > > Some Forth programmers have argued that most of CS is a waste of time. > I do not concur. > > Mitch I agree. What I find worthwhile in CS has been anticipated in FORTH. But what I find useful in the real world has little to do with CS and much more to do with the things I stated in my original post which tho I implied were CS issues, they are not. FORTHS memory management/overlay solution relates to CS. It's *optional* typing and builds does does not. I do find forth more useful than CS to do real work 8^). I really argue that we don't want FORTH in CS but want CS to be more relevant to real world programming issues. But then it wouldn't be science... Clyde
schmidtg@iccgcc.decnet.ab.com (03/04/91)
In article <13640@medusa.cs.purdue.edu>, bouma@cs.purdue.EDU (William J. Bouma) writes: > In article <9103011826.AA19197@ucbvax.Berkeley.EDU> Mitch Bradley <wmb%MITCH.ENG.SUN.COM@SCFVM.GSFC.NASA.GOV> writes: >>The thing that Forth taught me about Computer Science is that syntax >>is a waste of time. Not only is syntax a waste of time, in lots of >>cases it is harmful, because it boxes you in and prevents you from >>doing something next year. > > What a lame thing to say! (esp. comming from someone who I agree > with 98% of the time) Syntax is a major conveyor of meaning. How > could anything be communicated (esp. programs) without syntax? Forth > may have flexible syntax, but it definitely has syntax. > > Perhaps you meant that Forth teaches that syntax should be driven by > semantics rather than the other way around? That I could partially > agree with. But "syntax is a waste of time" is like saying that > information in general is worthless. Interesting, I would categorize LISP as a language with a somewhat "weak" syntactical structure, yet much of LISP's power results from this. In LISP, everything is pretty much a lump of "LISPstuff" where meaning is imparted not by syntax, but rather by program structure, much like it is in FORTH. Both languages are "applicative" in that side effects are avoided by LISP's list management structure and in FORTH by the stack. This encourages functions which are self contained expressions, much like mathematical functions. What is important is the transformation performed by the function, little or no meaning is conveyed by the "weak" syntax. In fact, LISP and FORTH have much in common in this regard. Whether or not syntax important depends upon the problem one is trying to solve. I do not believe syntax is a necessary requirement for a general purpose language, in fact it is an additional constraint. It is easy to implement specialized languages on top of FORTH for just this reason. FORTH allows the programmer to decide how much syntax is required for a given application. On the other hand, a specialized language such as YACC, is 99% syntax and this is fine if all you want to do is to write programs which accept a certain grammer. >>Some Forth programmers have argued that most of CS is a waste of time. >>I do not concur. > > If this newsgroup be any indication, many Forth programmers know > even less about CS than they do about programming. > -- > Bill <bouma@cs.purdue.edu> I wonder what prompts you to say this, as I have seen no evidence of what you are describing within this newsgroup. Keep in mind that Computer "Science" is still in it's infancy. It is not some "holy grail" which may not be questioned. Certainly tradition has a lot to do with the languages which are being promoted in contemporary C"S" courses and unfortunately for C"S", FORTH has not been part of this tradition mainly due to its "grass roots" non-academic origin. This accounts for much of the frustration which FORTH programmers have, since they are always having to defend FORTH against the more "legitamate" languages. I find it interesting that some of the current trends towards "object oriented" languages and "rapid prototyping" have been enjoyed by the more experienced FORTH programmers for years. Once again, drawing parallels between FORTH and LISP. Both were concieved by an individual, not by committee. LISP's inventor was a professor at MIT, FORTH's inventor was a frustrated programmer. Interesting to speculate on FORTH's current status if Chuck Moore had been in the right place at the right time! Both languages were intended to be "general purpose", although LISP has gravitated to the AI community and FORTH has gravitated to the embedded processor arena (I still consider FORTH to be an excellent "general purpose" language and I am sure many would say this about LISP too). The point that I am trying to make is that FORTH has not received the widespread acceptance that it deserves, it has had no "Academic sugar daddy" or equivalent -- it's inventor was kind enough to place the language in the public domain rather than turn it into an exclusive enterprise. As a result, proponents of FORTH have had to maintain a somewhat defensive posture with respect to the academic establishment. Simply because one questions the tenets of traditional C"S" does not make one deserving of being labeled as "ignorant". Greg Schmidt Senior Software Engineer ALLEN-BRADLEY Inc. -- ============================================================================= Greg Schmidt -> schmidtg@iccgcc.decnet.ab.com ============================================================================= "People with nothing to hide have nothing to fear from O.B.I.T" -- Peter Lomax ----------------------------------------------------------------------------- Disclaimer: No warranty is expressed or implied. Void where prohibited. =============================================================================
jwoehr@isis.cs.du.edu (Jack J. Woehr) (03/05/91)
In article <13640@medusa.cs.purdue.edu> bouma@cs.purdue.EDU (William J. Bouma) writes: >>(Mitch Bradley:) >>Some Forth programmers have argued that most of CS is a waste of time. >>I do not concur. >(Bill:) > If this newsgroup be any indication, many Forth programmers know > even less about CS than they do about programming. RAAHHHTT ONNNN! We don't need no steenking Computer Science! Realtime programmers am us!!! Seriously, Bill, it seems to me from my admittedly worm's-eye view that about 66% of Comp Sci is parser and expression theory. Forth ain't got no expressions. We are right and the rest of the world is wrong, now get with the program, dude!!! -- # ..!apple!dunike!nyx!koscej!jax # "Therefore, the L-RD G-d # # ..!hplabs!hp-lsd!oldcolo!jax # sent him FORTH ..." # # {apple,hplabs,pacbell,ucb}!well!jax # - Genesis 3:23 # # JAX on GEnie SYSOP RCFB 303-278-0364 # Member ANS Forth X3J14 TC #
bouma@cs.purdue.EDU (William J. Bouma) (03/06/91)
In article <3554.27d21955@iccgcc.decnet.ab.com> schmidtg@iccgcc.decnet.ab.com writes: >Interesting, I would categorize LISP as a language with a somewhat >"weak" syntactical structure, yet much of LISP's power results from >this. In LISP, everything is pretty much a lump of "LISPstuff" where Ah, I am known around here as "Mr. Lisp"! (But this is a Forth group) Lisp has more syntax than Forth. It is always "(function arg arg ...)". True it is a simple syntax, but I wouldn't call it weak. You can see what I mean by trying to send to the Lisp interpreter something not encased in parenthesis. In Lisp it is easy to see what arguments are to what functions. You can have functions with optional numbers of arguments and keyword arguments. Forth cannot do this because of its weaker syntax. What Forth can do that Lisp cannot is transparently return more than one value from a function. ie. Lisp cannot have a function a2 which takes two arguments and a function b2 which returns two values and say "(a2 (b2))". This comes for free in Forth because of the lack of syntax. As always, tradeoffs depending on what you want to do. To say absolutely (as some have) "syntax sucks" is idiotic. >meaning is imparted not by syntax, but rather by program structure, Can you clarify the difference? I think our discussions up to now have all been pretty consistent about what syntax means. The way I see it the structure is the syntax. Perhaps I just don't follow what you mean. Assembly language basically has no syntax. But I find Lisp code easier to read than ASM because its syntax conveys meaning to me. I convey to the Lisp interpreter what is a separate list by the syntax of enclosing it in parenthesis. While it is true that a list of machine code has meaning without having any syntax, that does not negate the fact that syntax conveys meaning. >I wonder what prompts you to say this, as I have seen no evidence of what >you are describing within this newsgroup. Keep in mind that Computer >"Science" is still in it's infancy. It is not some "holy grail" which >may not be questioned. Certainly tradition has a lot to do with the How long have you been reading it? 8^) Perhaps I was a bit harsh. I was certainly not implying that CS is perfect. Only that some of the Forthers criticizing it don't seem to know much about what they are attempting to criticize. Several times in this group I have seen people praising the virtues of Forth over that of other languages, but it is apparent that they have had very little experience with other languages. >it interesting that some of the current trends towards "object oriented" >languages and "rapid prototyping" have been enjoyed by the more experienced >FORTH programmers for years. "object oriented" programming had been going on for a long time before so called "software engineers" jumped on the bandwagon and made the term popular. That is not unique to Forth programmers. It easy to look back now and say Forth was ahead of its time in this area. But why didn't someone publish about constructs in Forth to support OOP before any of the OO specific languages had been built? >LISP has gravitated to the AI community and FORTH has gravitated to the >embedded processor arena (I still consider FORTH to be an excellent "general >purpose" language and I am sure many would say this about LISP too). I do not think Forth is a very good general purpose language. The reason is same one (I believe) that has kept and will keep Forth from being accepted generally. The lack of a type system is what has kept Forth down. A language that deals only with characters and integers is a joke. It is no coincidence that Forth gravitated to the embedded processor area, they don't need to deal with anything besides integers and characters. Forth will not be accepted academically or be useful generally until it adopts a general consistent way to deal with a wide variety of types. Though Lisp is still used a lot in AI (whatever that is) it has gravitated back to general purpose. Lisp has been my main programming language for 4 years and I don't think I have ever written any "AI". >The point that I am trying to make is that FORTH has not received the >widespread acceptance that it deserves, it has had no "Academic sugar daddy" 8^) Perhaps. Perhaps it just isn't that deserving of attention from people who aren't tring to interface to hardware or aren't limited to 64K of memory. -- Bill <bouma@cs.purdue.edu>
bouma@cs.purdue.EDU (William J. Bouma) (03/06/91)
In article <1991Mar5.155721.24659@isis.cs.du.edu> jwoehr@isis.UUCP (Jack J. Woehr) writes: > Seriously, Bill, it seems to me from my admittedly worm's-eye >view that about 66% of Comp Sci is parser and expression theory. Forth >ain't got no expressions. We are right and the rest of the world is >wrong, now get with the program, dude!!! (Where have I been?) Even if language recognition were useless I would still think it was worth studying. How can we know the right way of doing something unless we explore all the possibilities? I found it very interesting to discover what languages can be recognized by computer and how to write code to do such. That Forth is so easy to parse makes it boring. Parsing is fun! If people want to criticize an area of CS, try Software Engineering. -- Bill <bouma@cs.purdue.edu>
adam@visix.com (03/07/91)
In article <1991Mar4.211633.5080@visix.com>, adam@visix.com writes: |> LALR parsing sucks ... syntax sucks. In article <13699@medusa.cs.purdue.edu>, bouma@cs.purdue.EDU (William J. Bouma) writes: |> To say absolutely (as some have) "syntax sucks" is idiotic. In article <1991Mar4.211633.5080@visix.com>, adam@visix.com writes: |> (If you want your programs to look like algebra or natural language, |> you have to parse them. But parsing costs power and efficiency.)
cwpjr@cbnewse.att.com (clyde.w.jr.phillips) (03/08/91)
In article <13700@medusa.cs.purdue.edu>, bouma@cs.purdue.EDU (William J. Bouma) writes: > In article <1991Mar5.155721.24659@isis.cs.du.edu> jwoehr@isis.UUCP (Jack J. Woehr) writes: > > Seriously, Bill, it seems to me from my admittedly worm's-eye > >view that about 66% of Comp Sci is parser and expression theory. Forth > >ain't got no expressions. We are right and the rest of the world is > >wrong, now get with the program, dude!!! > > (Where have I been?) > > Even if language recognition were useless I would still think it > was worth studying. How can we know the right way of doing something > unless we explore all the possibilities? I found it very interesting > to discover what languages can be recognized by computer and how to > write code to do such. That Forth is so easy to parse makes it boring. > Parsing is fun! > > If people want to criticize an area of CS, try Software Engineering. > -- > Bill <bouma@cs.purdue.edu> It's such a pleasure to see a discussion with passion, humour, knowledge and wisdom and with none of the egoist malarky so prevelent in discussion of *almost anything these days*. Let's pat each other on the back. 8^) I feel that language recognition is a fine pursuit but FORTH I feel is correct in asserting that computer programming should not force "expression" in the manner that CS compliant languages do. This is classic FORTH philosophy as "expressed" by Jack above. 8^) I feel that FORTH is a right for it's uses. I agree that we should know as much as we can before claiming we have a "correct solution" but this is a rare luxury. ie I'll use FORTH till something "more correct" grabs me...so keep up the good work and maybe we'll share some fruit later on. Writing code to parse particular dialects or expression domains may have applicability to FORTH in the future, as we evolve into browser and free form language domain usage. Regardless it will be used in "mainstream" application and so it should. I have a question, tho. Is "natyral" ( i like that sp mstke , my computer wouldn't ) language recognition a part of parser/expression theory and or does it pose a eventual threat to all other forms of constricted language parsing? Clyde