Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: Epic Fail Date: Sat, 05 Apr 2014 15:25:46 -0400 Organization: Aioe.org NNTP Server Lines: 54 Message-ID: References: <59821196-a483-4026-98ea-d0b3f09f3055@googlegroups.com> NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.forth:29303 On Sat, 05 Apr 2014 12:42:53 -0400, wrote: > I remember in the 1980s that Forth was a serious contender against C for > the micro-computer and micro-controller markets. I really don't remember that. I read every issue of Byte magazine from the early 1980's through early 1990's, both articles and advertisements. The Byte issue on Forth was the first time I recollect seeing anything about Forth. I'm not saying it wasn't there, but I don't recall it today. I read numerous other PC and electronic magazines also, but not as thoroughly or completely. I don't recall seeing Forth in those either. > I wrote a program for the Apple-IIe that could do symbolic calculus > (derivatives, but not integrals); Resurrect that. Fix it up. Make it a small smartphone app. Compile it. Sell it. Earn money from advanced high school students and university students too lazy to do their calculus. Laplace transforms will simplify the program, if you didn't use them originally. > [...] > program like this would have been impossible in C due to C's gross > code-bloat. ... > Specifically, PolyForth was an epic fail. The major problem was that it > was limited to 64K (application program, compiler, editor, everything!). > This was on MS-DOS, which allows up to 640K. It was abundantly obvious > that nobody at Forth Inc.[...] understood how the 8088 segment-registers > worked [...] Segmented memory models are a problem for most high-level languagess, C included. Most programming expect a linear or flat address space or memory pool, with contiguous addressing of data items. Most of the older languages use (single) pointers, i.e., not multi-part or split. > The ANS-Forth standard really nailed the coffin shut! It was abundantly > obvious that ANS-Forth was just SwiftForth. The standards document was > full of wishy-washy "may or may not" statements. So what exactly was > standardized? The reason why it was so wishy-washy is that the #1 rule > of the ANS-Forth committee was that SwiftForth had to be standard > without any modification. All of these statements effectively say > "such-and-such may be SwiftForth or it may make sense." The early C standard has much the same problem. It was standardized from microprocessors which had a similar architecture but also from mainframes with a bunch of non-standard architectures. So, officially, there is lots of "undefined behavior" or "environment specific" in C, which is actually common, widely implement, and working in C today because microprocessors have it. Much of the differences are in how pointers are handled. So, you can't fully escape history. Rod Pemberton