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


Groups > comp.lang.forth > #41049

Re: Forth programming style...

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: Forth programming style...
Date 2015-08-02 00:22 +0200
Organization A noiseless patient Spider
Message-ID <mpjgo5$511$1@dont-email.me> (permalink)
References (1 earlier) <37e85f47-5cf3-4033-9e9d-bfc31c582edc@googlegroups.com> <1a2e838f-e3f7-4f99-a321-9a02c1d6d6cb@googlegroups.com> <84a2fcaf-807e-46a0-8c38-e68515a83c67@googlegroups.com> <654e3729-7fce-4a04-a707-a0d5f7ab6050@googlegroups.com> <55357ad6-5a4b-4ef6-b46b-7d05f9c5b3cf@googlegroups.com>

Show all headers | View raw


Mark Wills wrote:

> I want to say something about phrases. I believe the concept of
> phrases exist in Forth, much more than other programming languages.
> I believe that very experienced Forth programmers can analyse code
> and recognise common phrases and understand what they are doing at
> an almost unconcious level, similar to an epxerienced music reader
> reading a stave. I believe Elizabeth can do this. I, alas, cannot.
> I have to read each word and conciously compute what is happening.
> I have to execute the code in my head, word by word. I believe
> Elizabeth and some of the others here (Stephen, Anton, Bernd,
> Hugh) do not. They understand it at a more unconcious, instinctual
> level. Experience really pays off in Forth.

For my part, yes.  However, for me, that did not take long to get there.  
I'm talking about the few days to get sufficiently comfortable with the 
stack, as Elizabeth writes.  Of course, you still get better with more 
experience.

If you avoid getting comfortable with the stack, you'll just never get 
comfortable with the stack.  One thing I did at the start of learning Forth, 
and I'd recommend that for everybody: I did read others code, especially the 
sources of the system I've been using at that time (VolksForth).  Each word 
had a stack comment and a shadow block describing what it does.  There were 
no locals, and the shadow block entry had to be as short as the word itself 
or it wouldn't fit (usually, it was smaller).

You actually have to read others code to start really understanding a 
language.  If you write your own code and read it soon afterwards, you 
remember your thinking behind the code, so you still don't have to 
understand your code.  After 6 months, you have forgotten that, and if the 
code then is unreadable, it is because you never could read your code.

So by reading code from others, you'll not fall into the trap of thinking 
you can read it, because you had just written it.  You really have to read 
it, it's not your code.  And if the code has only a little small comment, 
you can't avoid reading the code itself.  If it has a lot of comments, you 
read the comments, and actually avoid reading the code, too.

The code is in a very different language.  It is much more comfortable to 
skip learning that different language if you find a (lazy) way how to.

The biggest power of our brain lies in the unconscious parts.  And they can 
learn a lot.  Push all the hard work to the unconscious parts, and do the 
easy stuff conscious.

When Elizabeth talks about "riding a bicycle", I don't know how much she 
actually knows about that.  I like the analogy, but most people learn to 
ride when they are pretty young.  And then they forget that experience.  I 
remember very little about that, most of it involved a parking lot with not 
many cars, but it was going a little downhill, and my mother pushed me to 
get up to speed so I could learn riding at a speed where my bike was pretty 
much stable.

I, after I bought a recumbent bike, have the experience of learning how to 
ride a bicycle as adult.  That's a process I remember, and as adults learn 
considerably slower than prepubescent childs, I not only remember it, it 
also took long enough to understand what happened (not just an afternoon as 
my childhood experience took).  After about 1000km, everything was fully 
automated, and the bicycle at whatever speed just did what I wanted it to 
do.  Magically, because no conscious decision of how to turn the handlebar 
was made anymore.

You want it, the bike does it, and the middleware in your brain just works.  
That's how to ride a bike works.  When you learn a language (regardless of 
human or computer language), you should get to the same point: a 
considderable part of the thinking must be automated.  You don't have the 
time to translate word by word into your target language, then rearrange the 
words using the grammar rules, and then say them.  This takes way too long.  
Automate the important things, and you can speak fluently.  Even with a 
limited vocabulary and grammar.

For some fun how important automating things is, watch some of the late 70s 
Jackie Chan movies of the "Drunken Master" epoch.  It's all about learning 
Kung Fu.  Kung Fu is such a stunning martial art, because the practicers 
learn many complicated movements by heart.  That takes an awful lot of time, 
and it's the reason why a master in his 50s can easily beat a much stronger 
learner in his 20s (and that's someone who already learns for 10 years or 
more!).

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
net2o ID: kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Forth programming style... Mux <Yvo.Zoer@gmail.com> - 2015-07-21 15:40 -0700
  Re: Forth programming style... Julian Fondren <ayrnieu@gmail.com> - 2015-07-21 17:28 -0700
    Re: Forth programming style... Julian Fondren <ayrnieu@gmail.com> - 2015-07-21 17:39 -0700
      Re: Forth programming style... Mark Wills <markwills1970@gmail.com> - 2015-07-22 00:48 -0700
        Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-21 22:25 -1000
          Re: Forth programming style... onewingedshark@gmail.com - 2015-07-22 15:13 -0700
            Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-22 13:24 -1000
            Re: Forth programming style... stephen@mpeforth.com (Stephen Pelc) - 2015-07-23 08:28 +0000
        Re: Forth programming style... Raimond Dragomir <raimond.dragomir@gmail.com> - 2015-07-22 02:38 -0700
          Re: Forth programming style... Mark Wills <markwills1970@gmail.com> - 2015-07-22 03:14 -0700
            Re: Forth programming style... humptydumpty <ouatubi@gmail.com> - 2015-07-22 03:45 -0700
              Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-22 08:37 -1000
              Re: Forth programming style... Paul Rubin <no.email@nospam.invalid> - 2015-07-22 12:51 -0700
                Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-07-22 10:14 -1000
                Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-07-23 06:23 +0000
                Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 16:59 -0700
                Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 20:18 -0700
                Re: Forth programming style... "HAA" <someone@microsoft.com> - 2015-07-28 21:06 +1000
                Re: Forth programming style... "Alex McDonald" <blog@rivadpm.com> - 2015-07-28 12:38 +0100
            Re: Forth programming style... "HAA" <someone@microsoft.com> - 2015-07-23 00:02 +1000
            Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-22 21:21 -0700
              Re: Forth programming style... "WJ" <w_a_x_man@yahoo.com> - 2015-07-23 09:05 +0000
                Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 16:47 -0700
                Re: Forth programming style... Mark Wills <markwills1970@gmail.com> - 2015-07-24 01:24 -0700
                Re: Forth programming style... franck.bensusan@gmail.com - 2015-07-24 03:48 -0700
                Re: Forth programming style... Paul Rubin <no.email@nospam.invalid> - 2015-07-24 18:15 -0700
                Re: Forth programming style... "HAA" <someone@microsoft.com> - 2015-08-01 13:21 +1000
            Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-22 21:48 -0700
            Re: Forth programming style... Raimond Dragomir <raimond.dragomir@gmail.com> - 2015-07-22 22:28 -0700
              Re: Forth programming style... Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-02 00:43 +0200
            Re: Forth programming style... Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-02 00:22 +0200
              Re: Forth programming style... hughaguilar96@gmail.com - 2015-08-01 16:41 -0700
                Re: Forth programming style... "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-01 22:01 -0400
              Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-08-02 05:50 +0000
                Re: Forth programming style... Bernd Paysan <bernd.paysan@gmx.de> - 2015-08-02 16:33 +0200
            Re: Forth programming style... "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-01 22:04 -0400
              Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-08-02 08:54 -0500
                Re: Forth programming style... "Rod Pemberton" <boo@fasdfrewar.cdm> - 2015-08-03 04:51 -0400
                Re: Forth programming style... "Elizabeth D. Rather" <erather@forth.com> - 2015-08-03 17:36 -0500
        Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-07-22 10:16 +0000
      Re: Forth programming style... mhx@iae.nl - 2015-07-22 10:02 -0700
    Re: Forth programming style... anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2015-07-22 10:09 +0000
  Re: Forth programming style... Syd Rumpo <usenet@nononono.co.uk> - 2015-07-22 12:16 +0100
    Re: Forth programming style... Raimond Dragomir <raimond.dragomir@gmail.com> - 2015-07-22 07:59 -0700
  Re: Forth programming style... glidedog@gmail.com - 2015-07-23 04:24 -0700
  Re: Forth programming style... "Ala'a Alawi" <amalawi@gmail.com> - 2015-07-23 19:32 -0700
    Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 21:33 -0700
      Re: Forth programming style... borota@gmail.com - 2015-07-23 22:09 -0700
        Re: Forth programming style... hughaguilar96@gmail.com - 2015-07-23 22:57 -0700
        Re: Forth programming style... "Ala'a Alawi" <amalawi@gmail.com> - 2015-07-24 09:26 -0700
      Re: Forth programming style... "Ala'a Alawi" <amalawi@gmail.com> - 2015-07-24 09:26 -0700

csiph-web