Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] forth

2006-02-08 by Thomas Keller

John KG9DK wrote:

>I have been following the thead on Basic, "C" and asm for programing 
>and then forth was mention.  I would like to know more about forth in 
>regards to the avr devics. 
>
[additional text deleted for brevity]

>Another question is how much time do you 
>have to invest in learning an language and which one would be suited to 
>a causal user.
>  
>
   That all depends on you..  For some people, learning a new language 
is an easy, and even a recreatiohnal activity.  For others oit is like 
pulling teeth.  Learning programming languages is not at all similar to 
learning natrual languages, primarily because programming langiuages 
have much more rigid grammars, and becasue programmaing languages do not 
requiore the range of expression of natural languages.

   For a beginner with no programming experience at all, I would propose 
that you tackle assembly language first.  ASM is very easy to relate to, 
and more importantly, it also he;lps you to relate to the hardware, 
whatit does, and how it does it.  This understanding can be crucial to 
your success as a programmer, particular a p[rpogrammer 0of embedded 
processors.

   Realistically, higher level languages such as C, Forth, BASIC, etc., 
only make sense for large, complex projects, in my estimation.  The fact 
that the languages were specificalklky designed to HIDE the underlying 
machine architecture and operations from you make them less than ideal 
when programming on a platofrm where understanding and relating to the 
hardware is eesential, such as embedded processors.

   Understanding the insd and outs of communicaitng with, and 
controlling,m the various internal peripheral modules is the real gisat 
of embedded programming.  The further away from that hardware the 
language holds you, the less clarity and efficiency of code you will 
likely generate.

    As for my personal take, if I am gogin to use anythign other than 
assembly, it would be C (and not C++). Forth, in my view, is an 
abomination, a "write only language."  Forth's strongest selling point 
is the user extensibility of the language.  The problem that this 
creates is that when a user extends the language for a specific program, 
s/he renders the program virtually unreadable for anyone else, since no 
one else has the same extensions they do.  Having to go through and 
learn and understand custom extensions on virtually *EVERY* program you 
read is a royal pain in the arse, not to mention a huge waste of time 
and energy.
[Having said that, I should point out that this is MNSHO, and your 
milage may vary]

[NOTE: MNSHO == My Not So Humble Opinion]

tom

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.