home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / lang / forth / 3951 < prev    next >
Encoding:
Text File  |  1993-01-21  |  8.6 KB  |  214 lines

  1. Newsgroups: comp.lang.forth
  2. Path: sparky!uunet!starnine!mikeh
  3. From: mikeh@starnine.com (Mike Haas)
  4. Subject: Re: Documenting
  5. Message-ID: <C18Aso.GG5@starnine.com>
  6. Sender: mikeh@starnine.com (Mike Haas)
  7. Date: Fri, 22 Jan 1993 00:02:46 GMT
  8. References: <1492@eouk9.eoe.co.uk> <C0ry23.8Dy@starnine.com> <1j1qj5INN20a@charnel.ecst.csuchico.edu>
  9. Organization: StarNine Technologies, Inc.
  10. Lines: 202
  11.  
  12. In article <1j1qj5INN20a@charnel.ecst.csuchico.edu> fish@ecst.csuchico.edu (Kevin Haddock) writes:
  13. >In article <C0ry23.8Dy@starnine.com> mikeh@starnine.com (Mike Haas) writes:
  14. >>
  15. >>Forth uses blocks because it was almost always used in embedded
  16. >>controllers and on standalone computers which had little or no
  17. >>operating system.
  18. >>
  19. >
  20. >Ahem.  As I recall, the first Forths were all captured, not stand alone.
  21. >And they used screens.  The first experimentation done my Moore in
  22. >threaded interpreters was done in (I believe) Fortran.
  23.  
  24. Barf.  I'm not referring to whatever perturberation of TIL he used
  25. when Chuck was originally developing the concept that ultimately
  26. became Forth or what language he used.
  27.  
  28. I'm talking about the form Forth assumed after it was a little more
  29. mature and standardized (I said a LITTLE more).  And I stand by my statement.
  30. It WAS almost exclusively used on standalone machines that had no
  31. file system.  And that's why, even when implemented on a file-based
  32. platform, it took the shape of blocks-within-a-file.
  33.  
  34. There were few machines with any form of file system available to the
  35. common hacker, CP/M being one of the first.  Even then, many Forths
  36. used the drives on a block basis, ignoring the file system, insuring
  37. you were always open to doing a FLUSH with the wrong disk
  38. in the floppy drive (like your system boot disk) and wrecking
  39. it.  Even back then, screens caused problems with file-system
  40. oriented platforms.
  41.  
  42. >>It is nuts to suggest that blocks were implemented because they were
  43. >>thought superior to text files and to do so is rewriting history.
  44. >>
  45. >
  46. >Well, if you like, I could call someone who was there (C.M. perhaps)
  47. >or perhaps Elizabeth Rather would care to respond?  I think YOU
  48. >are rewriting history.  I would bet FORTH, Inc. still uses screens
  49. >even captured under operating systems in their projects.
  50.  
  51. I bet they do.  (I wouldn't brag about it).
  52.  
  53. >
  54. >> [...]
  55. >>
  56. >>Not using text files will indeed insure that many folks will never use
  57. >>any Forth tools.
  58. >>
  59. >There will always be plenty of people out there like you to help them
  60. >transition over!
  61.  
  62. That's not the point.  The important thing is that Forth will never be
  63. considered mainstream or popular as long as such non-industry-standard
  64. concepts are the PREVELANT way of doing things.
  65.  
  66. (I COULD have added "because of people out there like you who stand
  67. by this dead horse" but I won't cause I'm a nice guy.)
  68.  
  69. >
  70. >> [...]
  71. >>
  72. >>Gee, I bet you found that fixed-length records were better
  73. >>in databases, too.
  74. >>
  75. >They are FAR better!  Variable length records are only usefull in
  76. >sparse arrays (i.e. a long string that is almost always empty or close
  77. >to empty).  In the real world this happens maybe 10% of the time.
  78. >This can be easily handled in a heap data file or in a series of
  79. >fixed record length files of graduating lengths.  To force EVERYTHING
  80. >into a variable length format is the height of folly.  I just
  81. >finished a stint of working with Advanced Revelation (i.e.  Pick)
  82. >and it takes a BIG performance hit due to this.  Perhaps if you
  83. >want to prototype, have an application that suffers major changes
  84. >constantly, have a one-time deal, or if you have hardware support for
  85. >your heap management (smalltalk engines) you could get away with it but
  86. >otherwise don't subject your customers to live with that overhead
  87. >for the life of the project!  It takes 2 386-33's and eithernet to
  88. >do an application that an XT could do with PolyFORTH (probably on a
  89. >floppy!).
  90.  
  91. Fixed-length records have their place, but also of large importance
  92. is the idea of efficient use of media (another area where blocks
  93. fall flat on their face).  Any database of significant size will
  94. waste space on empty fields in a fixed-length record system.  And there
  95. ARE methods which make variable-length record access incur
  96. minimal performance overhead... it just takes work & talent to
  97. make it so.  AFter all, ever file system is, in effect, a variable-length
  98. record database.
  99.  
  100.  
  101.  
  102. >
  103. >
  104. >>environment on standalone computers, but it is no operating system.
  105. >>Nothing but Forth can operate under it's auspices.
  106. >>
  107. >>
  108. >
  109. >O.K. if that is what it takes for you.  Port the Prolog in Forth
  110. >over and write in that!  How about the BASIC?  Assembly language?
  111. >write your own?  Whatever floats your boat.
  112.  
  113. Gee, how about C?  Or running MS Word under Forth?  I repeat...
  114. Forth is not an operating system.
  115.  
  116. >
  117. >>Can you point me to one I can use on my Amiga or Mac?
  118. >DOS doesn't run on Amiga or Mac (w/o emulation).  I suppose you call
  119. >that an O.S.?
  120.  
  121. Actually, it IS a debatable question whether MSDOS is an operating
  122. system, but I don't want to debate that here.
  123.  
  124. The point is that each of these three provide a generalized environment
  125. which supports launching of independantly developed applications which
  126. do not have to be written in any particular language, and usually
  127. exist in "compiled" form.
  128.  
  129. >>  One that
  130. >>uses some IPC to interface with popular applications?
  131. >What does an IPC have to do with it?  You have the best IPC of
  132. >all.  One that does not require BINARY compatibility.  If your
  133. >program wants binary compatibility it can (find) the words it
  134. >needs to interface and lay the addresses in a vector table.
  135.  
  136. But to be (find)-able, it must have been compiled into the
  137. dictionary, and therefore had to exist in source form.  This
  138. is not "binary" compatibility.  I cannot hand you a binary
  139. component for use in your forth.
  140.  
  141. >>  One that
  142. >>provides a full GUI with resizeable windows, menus, graphics,
  143. >>photo-quality storage...
  144. >
  145. >Oh, and DOS really does that doesn't it.  How about Unix?  There are
  146. >programs that run under those that provide that.  That does not
  147. >constitute an OS.
  148.  
  149. What does it constitute, then?  BTW, AmigaDOS and MacOS DO provide this
  150. in their base functionality sets.
  151.  
  152. >What you are saying is because Forth has not had
  153. >such a large following to produce such fluff that it does not constitute
  154. >an O.S.  What about hanging 60 users off an 8 mhz processor?  Can yours
  155. >do that?  What about networking 350 computers together in a network and
  156. >transmitting any event of interest from one point to any other in less than
  157. >2 seconds (with low speed rs-232 links no less)?  
  158.  
  159. These are just things that PROGRAMS do.  Standalone computers can
  160. be made to do these things.
  161.  
  162. >I just think we have
  163. >different definitions of what comprises an O.S.  Actuall to get down
  164. >to brass tacks it really should mean a set of programs that allow you
  165. >to OPERATE the SYSTEM.
  166.  
  167. Yes, there is a "definitions" problem... the one you want to use
  168. for Operating System is one from the 50's.  
  169.  
  170. It may be possible to write an OS in Forth, but itself is only
  171. a Forth environment.  It allows you to compile Forth programs and
  172. run Forth programs.  It is no more an operating system than BASIC.
  173.  
  174. >
  175. >
  176. >>Usre of blocks in no way increases one's efficiency.  In fact, it hinders it
  177. >>because you have to develop all your own print software, backup software,
  178. >>stuff that normal OS files live easy with.
  179. >>
  180. >
  181. >subjective.  Such tools exist under forth, just not as complex as you're used
  182. >to.
  183.  
  184. Like I said, you have to roll your own.  And your options are always more
  185. limited.  With files, you can choose from any of a prolifera of
  186. standard, accepted and proven text editors.  Standard ones like
  187. VI and EMACS, or GUI-based ones, even MS Word, WordPerfect, etc.
  188. And the new one coming out next month.  Or next year.  Commercial
  189. ones, shareware ones, freeware ones.  And the same holds true for
  190. print software as well as backups, comparing two sets of source
  191. to find the latest.  WHich of course brings up SOURCE CONTROL
  192. SYSTEMS, something that has never been developed for screens, but
  193. tons exist for text files.
  194.  
  195. There is nothing subjective about the advantages of files over
  196. screens.
  197.  
  198. >>It's a helluva lot easyier to insert a new function in the middle of
  199. >>your program with files.
  200. >
  201. >Also subjective.  You are crowding your screens too much or not structuring
  202. >your lexicons properly.
  203.  
  204. I'm going to start laughing soon.  There are a million legitimate reasons
  205. why someone might want to add a new definition, and there is no
  206. insurance possible with screens no matter what you do.  Leave tons
  207. of blank space?  Then you are wasting disk space and even THAT blank
  208. space can be used up.
  209.  
  210. Screens are great for embedded controller type projects.
  211.  
  212. For modern Forth developing software on modern platforms, they are a joke.
  213.  
  214.