Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #4626 > unrolled thread

Forth Performance Question

Started byTS <thinksquared@gmail.com>
First post2011-08-06 20:43 -0700
Last post2011-08-12 20:53 +0200
Articles 14 on this page of 54 — 21 participants

Back to article view | Back to comp.lang.forth


Contents

  Forth Performance Question TS <thinksquared@gmail.com> - 2011-08-06 20:43 -0700
    Re: Forth Performance Question "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-07 01:02 -0400
      Re: Forth Performance Question Chris Hinsley <chris.hinsley@gmail.com> - 2011-08-16 12:09 +0100
        Re: Forth Performance Question stephenXXX@mpeforth.com (Stephen Pelc) - 2011-08-16 14:08 +0000
    Re: Forth Performance Question mhx@iae.nl (Marcel Hendrix) - 2011-08-07 07:45 +0200
      Re: Forth Performance Question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-08-07 16:18 +0000
    Re: Forth Performance Question Bruno Gauthier <bgauthier@free.fr> - 2011-08-07 07:53 +0200
    Re: Forth Performance Question Julian Fondren <ayrnieu@gmail.com> - 2011-08-07 01:01 -0500
    Re: Forth Performance Question Albert van der Horst <albert@spenarnc.xs4all.nl> - 2011-08-07 12:50 +0000
    Re: Forth Performance Question stephenXXX@mpeforth.com (Stephen Pelc) - 2011-08-07 11:46 +0000
    Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-10 17:03 +0000
      Re: Forth Performance Question Julian Fondren <ayrnieu@gmail.com> - 2011-08-10 13:35 -0500
        Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-11 15:05 +0000
          Re: Forth Performance Question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-08-11 16:26 +0000
            Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-12 08:15 +0000
              Re: Forth Performance Question "Elizabeth D. Rather" <erather@forth.com> - 2011-08-11 22:29 -1000
                Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-12 10:09 +0000
                  Re: Forth Performance Question Julian Fondren <ayrnieu@gmail.com> - 2011-08-12 08:15 -0500
              Re: Forth Performance Question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-08-12 09:31 +0000
          Re: Forth Performance Question crc <charles.childers@gmail.com> - 2011-08-11 10:27 -0700
          Re: Forth Performance Question Julian Fondren <ayrnieu@gmail.com> - 2011-08-11 13:18 -0500
          Re: Forth Performance Question "Elizabeth D. Rather" <erather@forth.com> - 2011-08-11 12:00 -1000
            Re: Forth Performance Question Howerd <howerdo@yahoo.co.uk> - 2011-08-11 15:13 -0700
            Re: Forth Performance Question Charles Childers <crc_nospam@retroforth.org> - 2011-08-11 20:52 -0400
            Re: Forth Performance Question "Rod Pemberton" <do_not_have@noavailemail.cmm> - 2011-08-12 02:19 -0400
              Re: Forth Performance Question Julian Fondren <ayrnieu@gmail.com> - 2011-08-12 02:10 -0500
                Re: Forth Performance Question "Elizabeth D. Rather" <erather@forth.com> - 2011-08-11 21:48 -1000
              Re: Forth Performance Question "Elizabeth D. Rather" <erather@forth.com> - 2011-08-11 21:41 -1000
            Re: Forth Performance Question Hugh Aguilar <hughaguilar96@yahoo.com> - 2011-08-23 18:52 -0700
      Re: Forth Performance Question Charles Childers <crc_nospam@retroforth.org> - 2011-08-10 23:33 -0400
        Re: Forth Performance Question Ron Aaron <rambamist@gmail.com> - 2011-08-11 08:59 +0300
        Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-11 13:48 +0000
          Re: Forth Performance Question Charles Childers <crc@retroforth.org> - 2011-08-11 10:30 -0400
      Re: Forth Performance Question Ron Aaron <rambamist@gmail.com> - 2011-08-11 08:46 +0300
      Re: Forth Performance Question arc <arc@vorsicht-bissig.de> - 2011-08-12 12:20 +0000
        Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-12 13:59 +0000
          Re: Forth Performance Question stephenXXX@mpeforth.com (Stephen Pelc) - 2011-08-12 15:11 +0000
            Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-12 17:49 +0000
              Re: Forth Performance Question stephenXXX@mpeforth.com (Stephen Pelc) - 2011-08-12 19:38 +0000
              Re: Forth Performance Question "Elizabeth D. Rather" <erather@forth.com> - 2011-08-12 12:41 -1000
                Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-13 03:35 +0000
                  Re: Forth Performance Question "Elizabeth D. Rather" <erather@forth.com> - 2011-08-12 17:52 -1000
                  Re: Forth Performance Question Paul Rubin <no.email@nospam.invalid> - 2011-08-12 23:55 -0700
                  Re: Forth Performance Question Albert van der Horst <albert@spenarnc.xs4all.nl> - 2011-08-14 09:01 +0000
                    Re: Forth Performance Question Paul Rubin <no.email@nospam.invalid> - 2011-08-14 01:36 -0700
                      Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-15 01:43 +0000
                        Re: Forth Performance Question Hugh Aguilar <hughaguilar96@yahoo.com> - 2011-08-15 16:59 -0700
                          Re: Forth Performance Question Mark Wills <markrobertwills@yahoo.co.uk> - 2011-08-16 03:25 -0700
                            Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-16 11:22 +0000
                              Re: Forth Performance Question Hugh Aguilar <hughaguilar96@yahoo.com> - 2011-08-16 14:37 -0700
                                Re: Forth Performance Question Arnold Doray <thinksquared@gmail.com> - 2011-08-19 14:11 +0000
                                  Re: Forth Performance Question Hugh Aguilar <hughaguilar96@yahoo.com> - 2011-08-22 19:52 -0700
              Re: Forth Performance Question Zbiggy <zbigniew2011REMOVE@gmail.REMOVE.com> - 2011-08-13 02:28 +0200
          Re: Forth Performance Question Zbiggy <zbigniew2011REMOVE@gmail.REMOVE.com> - 2011-08-12 20:53 +0200

Page 3 of 3 — ← Prev page 1 2 [3]


#4804

FromArnold Doray <thinksquared@gmail.com>
Date2011-08-13 03:35 +0000
Message-ID<j24rdb$p4h$1@dont-email.me>
In reply to#4796
On Fri, 12 Aug 2011 12:41:23 -1000, Elizabeth D. Rather wrote:

> It's very difficult to write a book that's good at being a basic
> introduction to a language and also takes on advanced programming topics
> like networking or writing web servers.  One has to walk before one can
> run.

I'm afraid that's just not true for other languages. 

For example, consider the "The Java Handbook" a really old book by 
Patrick Naughton for Java v1, one of the first out, which walks the user 
through a functional web server towards the end of the book. It also 
walks the user through a functional, painting applet with clone brushes.

Or O'Reilly's wonderful (and free) OCaml book, which has *numerous* 
realistic and interesting examples - eg a Basic interpreter. This is also 
not a new book.

Or Paul Hudak's "The Haskell School of Expression: Learning Functional 
Programming through Multimedia", which teaches Haskell by creating a DSL 
embedded in Haskell.

Or Conrad Barski's "Land of Lisp", which teaches CL through game 
programming.

(Even Leo Brodie's book ends with 3 interesting examples.)

These books teach language X from scratch, using interesting examples 
(either standalone or a running example), with increasing complexity.

I'm guessing that for embedded development (currently Forth's main 
stronghold, and the focus of commercial Forth organizations like MPE and 
Forth Inc) this approach is unimportant at best or a distraction at 
worst. Fair enough. 

But for general application development, IMO this pedagogical approach is 
crucial, since it helps beginners to both learn the language and build 
something useful. 

For this latter to happen, you really need well documented libraries 
(either native to Forth or from the host OS), since it will take too long 
to just "roll your own". Which I suppose is what you imply in your 
comment. 
















[toc] | [prev] | [next] | [standalone]


#4805

From"Elizabeth D. Rather" <erather@forth.com>
Date2011-08-12 17:52 -1000
Message-ID<V7ydnXaGc4tuadjTnZ2dnUVZ_gSdnZ2d@supernews.com>
In reply to#4804
On 8/12/11 5:35 PM, Arnold Doray wrote:
> On Fri, 12 Aug 2011 12:41:23 -1000, Elizabeth D. Rather wrote:
>
>> It's very difficult to write a book that's good at being a basic
>> introduction to a language and also takes on advanced programming topics
>> like networking or writing web servers.  One has to walk before one can
>> run.
>
> I'm afraid that's just not true for other languages.
>
> For example, consider the "The Java Handbook" a really old book by
> Patrick Naughton for Java v1, one of the first out, which walks the user
> through a functional web server towards the end of the book. It also
> walks the user through a functional, painting applet with clone brushes.

[Other good examples snipped]

> (Even Leo Brodie's book ends with 3 interesting examples.)
>
> These books teach language X from scratch, using interesting examples
> (either standalone or a running example), with increasing complexity.
>
> I'm guessing that for embedded development (currently Forth's main
> stronghold, and the focus of commercial Forth organizations like MPE and
> Forth Inc) this approach is unimportant at best or a distraction at
> worst. Fair enough.
>
> But for general application development, IMO this pedagogical approach is
> crucial, since it helps beginners to both learn the language and build
> something useful.
>
> For this latter to happen, you really need well documented libraries
> (either native to Forth or from the host OS), since it will take too long
> to just "roll your own". Which I suppose is what you imply in your
> comment.

I agree that examples are useful.  FORTH, Inc.'s approach is to include 
a number of examples with our products, oriented towards the kinds of 
applications they are targeted for.  For example, SwiftForth for Windows 
includes many examples involving Windows features such as graphics, use 
of DLLs for various functions, etc., as well as more generic examples of 
desktop computing.  SwiftX, the cross-compiler for the embedded market, 
includes sample applications controlling the boards shipped with each 
system.

Java, your first example, is specifically designed for web services, so 
it makes sense for any book on Java to offer similar examples.  To some 
extent that is also true of the others you mention.  However, Forth as a 
basic language is very general.  It is also, as you have noted, 
different in many ways from languages derived from the Fortran/Algol 
tradition, so the text has more work to do at the primer level.  That is 
why FORTH, Inc., at least, focuses on providing examples appropriate to 
the target market for each of our products, rather than in the books.

Cheers,
Elizabeth

-- 
==================================================
Elizabeth D. Rather   (US & Canada)   800-55-FORTH
FORTH Inc.                         +1 310.999.6784
5959 West Century Blvd. Suite 700
Los Angeles, CA 90045
http://www.forth.com

"Forth-based products and Services for real-time
applications since 1973."
==================================================

[toc] | [prev] | [next] | [standalone]


#4807

FromPaul Rubin <no.email@nospam.invalid>
Date2011-08-12 23:55 -0700
Message-ID<7xbovtpzpv.fsf@ruckus.brouhaha.com>
In reply to#4804
Arnold Doray <thinksquared@gmail.com> writes:
> Or O'Reilly's wonderful (and free) OCaml book, which has *numerous* 
> realistic and interesting examples - eg a Basic interpreter. This is also 
> not a new book.
>
> Or Paul Hudak's "The Haskell School of Expression: Learning Functional 
> Programming through Multimedia", which teaches Haskell by creating a DSL 
> embedded in Haskell.

If you're reading books like those, I don't understand why Forth is
giving you any trouble.  You just have to accept that it's a very low
level language, like assembler.

In fact for your purposes it's probably unsuitable, except as an
exercise.  Embedded stuff really is Forth's niche these days.  If you
want to write EDSL's on bigger machines, you probably want Haskell or
Lisp depending on whether you want a static type system.

[toc] | [prev] | [next] | [standalone]


#4854

FromAlbert van der Horst <albert@spenarnc.xs4all.nl>
Date2011-08-14 09:01 +0000
Message-ID<lpwudo.920@spenarnc.xs4all.nl>
In reply to#4804
In article <j24rdb$p4h$1@dont-email.me>,
Arnold Doray  <thinksquared@gmail.com> wrote:
>On Fri, 12 Aug 2011 12:41:23 -1000, Elizabeth D. Rather wrote:
>
>> It's very difficult to write a book that's good at being a basic
>> introduction to a language and also takes on advanced programming topics
>> like networking or writing web servers.  One has to walk before one can
>> run.
>
>I'm afraid that's just not true for other languages.

I don't think Elizabeth wanted to imply that it has not been done,
or that it isn't a worthy goal.

>
>For example, consider the "The Java Handbook" a really old book by
>Patrick Naughton for Java v1, one of the first out, which walks the user
>through a functional web server towards the end of the book. It also
>walks the user through a functional, painting applet with clone brushes.
>
>Or O'Reilly's wonderful (and free) OCaml book, which has *numerous*
>realistic and interesting examples - eg a Basic interpreter. This is also
>not a new book.
>
>Or Paul Hudak's "The Haskell School of Expression: Learning Functional
>Programming through Multimedia", which teaches Haskell by creating a DSL
>embedded in Haskell.
>
>Or Conrad Barski's "Land of Lisp", which teaches CL through game
>programming.
>
>(Even Leo Brodie's book ends with 3 interesting examples.)
>
>These books teach language X from scratch, using interesting examples
>(either standalone or a running example), with increasing complexity.

I saved this list. These are probably very valuable books.

<SNIP>

Groetjes Albert

--
-- 
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

[toc] | [prev] | [next] | [standalone]


#4861

FromPaul Rubin <no.email@nospam.invalid>
Date2011-08-14 01:36 -0700
Message-ID<7xvcu0tmnf.fsf@ruckus.brouhaha.com>
In reply to#4854
Albert van der Horst <albert@spenarnc.xs4all.nl> writes:
> I saved this list. These are probably very valuable books.

You should add Learn You A Haskell for Great Good: http://learnyouahaskell.com

RWH is a little more advanced:  http://book.realworldhaskell.org

Both are readable online gratis.

[toc] | [prev] | [next] | [standalone]


#4905

FromArnold Doray <thinksquared@gmail.com>
Date2011-08-15 01:43 +0000
Message-ID<j29tke$2df$1@dont-email.me>
In reply to#4861
On Sun, 14 Aug 2011 01:36:36 -0700, Paul Rubin wrote:

> Albert van der Horst <albert@spenarnc.xs4all.nl> writes:
>> I saved this list. These are probably very valuable books.
> 
> You should add Learn You A Haskell for Great Good:
> http://learnyouahaskell.com

A fun, easy introduction, but a little thin on examples, IMO. 

I missed out "Practical Common Lisp": http://www.gigamonkeys.com/book/ 
(readable online) which has these examples: 

A Spam Filter
Parsing Binary Files
An ID3 Parser
Web Programming with AllegroServe
An MP3 Database
A Shoutcast Server
An MP3 Browser
An HTML Generation Library, the Interpreter
An HTML Generation Library, the Compiler

[toc] | [prev] | [next] | [standalone]


#4956

FromHugh Aguilar <hughaguilar96@yahoo.com>
Date2011-08-15 16:59 -0700
Message-ID<fc11b7ff-798b-49ac-9008-921f54dd9a04@h14g2000yqd.googlegroups.com>
In reply to#4905
On Aug 14, 7:43 pm, Arnold Doray <thinksqua...@gmail.com> wrote:
> On Sun, 14 Aug 2011 01:36:36 -0700, Paul Rubin wrote:
> > Albert van der Horst <alb...@spenarnc.xs4all.nl> writes:
> >> I saved this list. These are probably very valuable books.
>
> > You should add Learn You A Haskell for Great Good:
> >http://learnyouahaskell.com
>
> A fun, easy introduction, but a little thin on examples, IMO.
>
> I missed out "Practical Common Lisp":http://www.gigamonkeys.com/book/
> (readable online) which has these examples:
>
> A Spam Filter
> Parsing Binary Files
> An ID3 Parser
> Web Programming with AllegroServe
> An MP3 Database
> A Shoutcast Server
> An MP3 Browser
> An HTML Generation Library, the Interpreter
> An HTML Generation Library, the Compiler

I don't think that looking at example programs is all that useful for
learning. If you do want Forth example programs though, I have several
in my novice package.

For the most part, I recommend just diving in with an application
program of your own. If you don't know how to write something, look
for a useful word in the ANS-Forth document or look for an applicable
tool in the novice package. Don't port a program that you have already
written in another C, or you will end up writing C in Forth. It is
okay to port a Lisp program though, because writing Lisp in Forth is
not a bad way to be a Forther. For the most part though, I would
recommend writing a program that is new to you (and hopefully
interesting).

How about this: write a program to generate PostScript to print out a
nomogram for calculating parallel resistance. You can use my slide-
rule program as a guide, as that is similar. You can learn some
PostScript this way too!

I definitely recommend against "studying" a language by reading books,
prior to writing any program --- that will just bore you to death ---
you'll end up becoming another Gavino and boring all of us with
questions like: "Could Forth be used to fly a rocket to Mars?" ---
"When will Forth replace SQL?" --- etc..

[toc] | [prev] | [next] | [standalone]


#4978

FromMark Wills <markrobertwills@yahoo.co.uk>
Date2011-08-16 03:25 -0700
Message-ID<4e716532-dbc6-467c-875b-290d18915dc9@o11g2000yql.googlegroups.com>
In reply to#4956
On Aug 16, 12:59 am, Hugh Aguilar <hughaguila...@yahoo.com> wrote:
> On Aug 14, 7:43 pm, Arnold Doray <thinksqua...@gmail.com> wrote:
>
>
>
>
>
>
>
>
>
> > On Sun, 14 Aug 2011 01:36:36 -0700, Paul Rubin wrote:
> > > Albert van der Horst <alb...@spenarnc.xs4all.nl> writes:
> > >> I saved this list. These are probably very valuable books.
>
> > > You should add Learn You A Haskell for Great Good:
> > >http://learnyouahaskell.com
>
> > A fun, easy introduction, but a little thin on examples, IMO.
>
> > I missed out "Practical Common Lisp":http://www.gigamonkeys.com/book/
> > (readable online) which has these examples:
>
> > A Spam Filter
> > Parsing Binary Files
> > An ID3 Parser
> > Web Programming with AllegroServe
> > An MP3 Database
> > A Shoutcast Server
> > An MP3 Browser
> > An HTML Generation Library, the Interpreter
> > An HTML Generation Library, the Compiler
>
> I don't think that looking at example programs is all that useful for
> learning. If you do want Forth example programs though, I have several
> in my novice package.
>
> For the most part, I recommend just diving in with an application
> program of your own. If you don't know how to write something, look
> for a useful word in the ANS-Forth document or look for an applicable
> tool in the novice package. Don't port a program that you have already
> written in another C, or you will end up writing C in Forth. It is
> okay to port a Lisp program though, because writing Lisp in Forth is
> not a bad way to be a Forther. For the most part though, I would
> recommend writing a program that is new to you (and hopefully
> interesting).
>
> How about this: write a program to generate PostScript to print out a
> nomogram for calculating parallel resistance. You can use my slide-
> rule program as a guide, as that is similar. You can learn some
> PostScript this way too!
>
> I definitely recommend against "studying" a language by reading books,
> prior to writing any program --- that will just bore you to death ---
> you'll end up becoming another Gavino and boring all of us with
> questions like: "Could Forth be used to fly a rocket to Mars?" ---
> "When will Forth replace SQL?" --- etc..

I think books and example code help to get you up and running, and
usually, once you have got that initial leg-up, you'll be off on your
own.

Using Forth as an example, I don't think many people would come up
with the classical Forth arrays solution (using CREATE ALLOT etc)
independantly just by studying the list of available words. Something
more substantial is needed to get the paradigms of the particular
language across, especially in the case of Forth, which is very
different from any other language that I have encountered. I think I
wouldn't have stood a chance without Brodie. It was only when I read
that that things started to fall into place!

Mark

[toc] | [prev] | [next] | [standalone]


#4981

FromArnold Doray <thinksquared@gmail.com>
Date2011-08-16 11:22 +0000
Message-ID<j2djtr$2bg$1@dont-email.me>
In reply to#4978
On Tue, 16 Aug 2011 03:25:14 -0700, Mark Wills wrote:
> I think books and example code help to get you up and running, and
> usually, once you have got that initial leg-up, you'll be off on your
> own.
> 
> Using Forth as an example, I don't think many people would come up with
> the classical Forth arrays solution (using CREATE ALLOT etc)
> independantly just by studying the list of available words. Something
> more substantial is needed to get the paradigms of the particular
> language across, especially in the case of Forth, which is very
> different from any other language that I have encountered. I think I
> wouldn't have stood a chance without Brodie. It was only when I read
> that that things started to fall into place!
> 

Well put. 

For Lisp / functional languages it might be using map/folds effectively. 
For Haskell, using lazy evaluation to advantage. For Java/C++, design 
patterns. While there is certainly a place for primers that get the 
newbie off the ground on syntax, there is definitely also a place for 
books that do a lot more. IMO this is done most effectively in the 
context of a realistic/modern example application. I don't see many 
(any?) books doing that for Forth. 

Without this help, most programmers encountering Forth or perhaps even 
using it would not see it much more than a glorified assembly language.

[toc] | [prev] | [next] | [standalone]


#4997

FromHugh Aguilar <hughaguilar96@yahoo.com>
Date2011-08-16 14:37 -0700
Message-ID<11c1363f-c6ee-453d-a772-eeec2c18ddfc@s2g2000vby.googlegroups.com>
In reply to#4981
On Aug 16, 5:22 am, Arnold Doray <thinksqua...@gmail.com> wrote:
> On Tue, 16 Aug 2011 03:25:14 -0700, Mark Wills wrote:
> > I think books and example code help to get you up and running, and
> > usually, once you have got that initial leg-up, you'll be off on your
> > own.
>
> > Using Forth as an example, I don't think many people would come up with
> > the classical Forth arrays solution (using CREATE ALLOT etc)
> > independantly just by studying the list of available words. Something
> > more substantial is needed to get the paradigms of the particular
> > language across, especially in the case of Forth, which is very
> > different from any other language that I have encountered. I think I
> > wouldn't have stood a chance without Brodie. It was only when I read
> > that that things started to fall into place!
>
> Well put.

Implementing defining words (including arrays) with CREATE DOES> is
non-intuitive because it is a bad design.

Implementing defining words with :NAME is much more intuitive. You
first write code for a single instance of your data type. Your data is
stored in a global variable (defined with CREATE ALLOT) and your colon
words directly access that variable. After you get this working, then
you wonder how this could be implemented as a defining word such that
you can generate multiple instances of that data type, possibly with
variations in the literals used inside of the colon words. This is
pretty easy; you convert all of your colon words into :NAME words and
you convert all of the code in the colon words into code that compiles
code (use the XXX, words, as well as strings given to EVALUATE). As
for the literals, they become local variables in the defining word,
and you give these to LIT, or LIT+, or whatever.

In my novice package I have a defining word WBUF for ring buffers.
Also, in the WBUF.4TH file I have an earlier version written as colon
words and supporting only a single instance. The early version was
written to help me figure out the algorithm, and I knew from the get
go that I would eventually rewrite this as a defining word so that it
would be useful. You get to see both steps of the process though, from
the simple single-instance implementation to the more useful multiple-
instance defining word implementation.

I think that my approach is very intuitive. A person first writes
functions manually, and then writes functions that generate functions
automatically. People would be able to figure this out on their own
--- if their minds hadn't been already corrupted by Brodie and his
CREATE DOES> defining words. The danger of reading books about
programming is that you come to believe that the solution presented is
*the* solution, and your brain just shuts down so that you are unable
to think any further on the problem, and you fail to see the obvious
intuitive solution.

> For Lisp / functional languages it might be using map/folds effectively.
> For Haskell, using lazy evaluation to advantage. For Java/C++, design
> patterns. While there is certainly a place for primers that get the
> newbie off the ground on syntax, there is definitely also a place for
> books that do a lot more. IMO this is done most effectively in the
> context of a realistic/modern example application. I don't see many
> (any?) books doing that for Forth.
>
> Without this help, most programmers encountering Forth or perhaps even
> using it would not see it much more than a glorified assembly language.

That is not a bad way to see Forth --- that is how I saw Forth all
through the late 1980s and 1990s --- only within the last decade have
I begun to think of Forth as a high-level language, and I have yet to
determine if this is a useful way to think of Forth (considering that
we already have an abundance of high-level languages available
including Lisp).

If you are going to program micro-controllers, which is the principle
domain of Forth, then you are okay to continue indefinitely thinking
of Forth as an overgrown macro-assembler. Also, as a practical matter,
the few jobs in Forth that are available will expect you to think of
Forth this way --- mostly they are going to expect you to know
electronics (and this is largely why I'm not employed as a Forth
programmer anymore; because I don't know anything about electronics).

[toc] | [prev] | [next] | [standalone]


#5064

FromArnold Doray <thinksquared@gmail.com>
Date2011-08-19 14:11 +0000
Message-ID<j2lquh$1bl$1@dont-email.me>
In reply to#4997
On Tue, 16 Aug 2011 14:37:15 -0700, Hugh Aguilar wrote:

> That is not a bad way to see Forth --- that is how I saw Forth all
> through the late 1980s and 1990s --- 

I'm not saying it isn't. But surely not the only way?

> only within the last decade have I  begun to think of Forth as a high
> level language, and I have yet to determine if this is a useful way to 

What made you change your point of view? And why are you still undecided 
even after 10 years? 

[toc] | [prev] | [next] | [standalone]


#5146

FromHugh Aguilar <hughaguilar96@yahoo.com>
Date2011-08-22 19:52 -0700
Message-ID<5f66a2a4-b2c4-43b8-ad08-d8791e20d8fa@s35g2000prm.googlegroups.com>
In reply to#5064
On Aug 19, 8:11 am, Arnold Doray <thinksqua...@gmail.com> wrote:
> On Tue, 16 Aug 2011 14:37:15 -0700, Hugh Aguilar wrote:
> > That is not a bad way to see Forth --- that is how I saw Forth all
> > through the late 1980s and 1990s ---
>
> I'm not saying it isn't. But surely not the only way?

It is not the only way --- there is never only one way to do any job
(except perhaps picking your nose, and even then you get a choice of
fingers).

> > only within the last decade have I  begun to think of Forth as a high
> > level language, and I have yet to determine if this is a useful way to
>
> What made you change your point of view? And why are you still undecided
> even after 10 years?

Because I have yet to see a desktop Forth program that wouldn't have
been better written in Lisp (it is pretty tough for *any* language to
beat Lisp for desktop programming) --- on the other hand, of course, I
don't expect to ever see Lisp on a micro-controller.

I really think that Forthers should stick with programming micro-
controllers and stop mucking around in the desktop world --- better to
be good at one's bailiwick than a jack of all trades and a master of
none.

The problem, of course, is that micro-controller programmers also
write desktop programs, especially programs that work with data that
comes from or goes to the micro-controller. There is a desire to use
the same language for both high and low in order to share libraries
and generally minimize how much has to be learned. If I owned a
programming shop though, I think that I would use two languages, one
(Forth) for the micro-controller and one for the desktop computer. The
only desktop program that I would write in Forth, would be the cross-
compiler for the micro-controller (in the case of STAAPL, that was
written in Scheme rather than Forth, although I think that I would
stick with Forth).

[toc] | [prev] | [next] | [standalone]


#4803

FromZbiggy <zbigniew2011REMOVE@gmail.REMOVE.com>
Date2011-08-13 02:28 +0200
Message-ID<slrnj4bosv.8f8.zbigniew2011REMOVE@Tichy.myhome.org>
In reply to#4783
In comp.lang.forth, Arnold Doray wrote:

> Some things I didn't like:
> Nothing on network programming. Nothing on the existing opensource Forth 
> libraries, and their use. The application examples (Dairy/PhoneBook) are 
> neither interesting nor realistic. Perhaps a tiny Forth web server? Or a 
> HTML code documenter for Forth (like javadoc)? Or a game? Or implementing 
> a simple Ethernet packet protocol, like the one in Circuit Cellar 
> magazine? Your overall approach is to introduce words, but leave it to 
> the reader to do something with it. The book doesn't seem to impart to 
> the reader much about good Forth technique. Not much on string 
> processing. You don't teach how to write usable libraries. 

Reading the above, I'm wondering, perhaps 4tH
( http://thebeez.home.xs4all.nl/4tH/ ) will better suit your needs then?
-- 
...but I'm ready to learn ('bout) of the power of Forth

[toc] | [prev] | [next] | [standalone]


#4786

FromZbiggy <zbigniew2011REMOVE@gmail.REMOVE.com>
Date2011-08-12 20:53 +0200
Message-ID<slrnj4b59g.327.zbigniew2011REMOVE@Tichy.myhome.org>
In reply to#4776
In comp.lang.forth, Arnold Doray wrote:

> Most people learning a new programming language would 
> implicitly ask themselves "how do I do X in this language?" 
>
> In my own experience, it seems that people learn best by analogy, 
> mentally mapping what they know into the unknown.

IMHO it is wrong approach. Such way you will be still creating C-programs,
with the only difference, that they will be written using Forth-words.
Therefore neither you'll explore C-potential - because you won't be using
C-compiler - nor the Forth potential, because it still won't be
Forth-programm, although is has been created using Forth-compiler.

After (first) lecture of "Thinking Forth" I think, that there's a need for
a serious "mental switch" - and not for looking for (more or less exact)
analogies to the things known already.

Of course, you can have your own, different way of learning.
-- 
...but I'm ready to learn ('bout) of the power of Forth

[toc] | [prev] | [standalone]


Page 3 of 3 — ← Prev page 1 2 [3]

Back to top | Article view | comp.lang.forth


csiph-web