Path: csiph.com!usenet.pasdenom.info!gegeweb.org!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: Don't be a bit-twiddling monkey Date: Sun, 25 Jan 2015 17:35:24 -0500 Organization: Aioe.org NNTP Server Lines: 74 Message-ID: References: <55204dd8-646b-4caa-bd35-adc3b38bb43f@googlegroups.com> NNTP-Posting-Host: i+Urkql2cL38hhKqzSWEjg.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; 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:36021 On Sun, 25 Jan 2015 02:22:26 -0500, Elizabeth D. Rather wrote: > On 1/24/15 9:57 AM, Rod Pemberton wrote: >> On Sat, 24 Jan 2015 11:42:08 -0500, Julian Fondren >> wrote: >>> KMP: You are inquiring about something for which there is a >>> lot known, and about which you can learn a lot, but it won't >>> get you closer to "understand closures". >>> >>> Likewise, you can find exchanges in clf where one person will >>> say "I'm implementing a forth so that I can better understand >>> Forth" and people will point out that this is not exactly a >>> direct route. >> >> As one in that position, it's more like "I'm implementing a forth >> and I'm learning forth along the way, even though I don't care to >> learn that much about forth" and people here will point out that >> you don't need to understand how forth works in order to program >> in forth therefore learning how forth works is useless. Which, >> I think is somewhat absurd ... At least, that's my grasp on what >> others here have tendency to say. > > I use a lot of things I couldn't possibly build, and only have a general > idea of how they work: computers, for example; my iPhone; my car. Most > excellent pianists couldn't possibly build a piano. It is quite possible > to learn how to write excellent Forth applications without understanding > all the internals, and certainly without building one. > > I don't mean to discourage anyone from writing their own Forth. It's > just that the most successful path is: > > 1. Learn how to use Forth to write programs. Keep at it until you're > comfortable and your programs are pretty clean. You will then understand > how Forth is used. > > 2. Dig further into the internals, by reading the source of the Forth > you use (as well as its documentation). You will then understand how > Forth works. > > 3. If you *then* want to write a Forth from scratch (either for a new > platform or just for the fun of it), you will find it a much more > rewarding and satisfying project. And what you produce will be much > better than anything you could have written before. That's all fine advice for a novice who is intent on learning forth. > I have some trouble understanding the motivation you describe as "I'm > implementing a forth and I'm learning forth along the way, even though I > don't care to learn that much about forth." I guess you don't recall ... It came about through another project. At first, it was just a simple interpreter, not even remotely Forth-like in C then NASM, both, finally C only. Next, things progressed over many years, in starts, stops, various spurts, numerous additions, rewrites, etc. > It sounds masochistic. I've programmed many things without much reason because someone else requested it, or paid for it, or setup a competition, or because I wanted to, or because I needed to, or because I need something to do, or to try out ideas new to me, or because it's a passion or impulse, or simply because I can, etc. Deciding to do something code-wise is one of the areas where programming can be devoid of all logic or reason. If you want to call that masochistic, that's fine, but I suspect you've coded for all those same reasons at some point and perhaps for others. I.e., I think it's part of the definition of being a computer programmer. Rod Pemberton