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]
tomMessage
Re: [AVR-Chat] forth
2006-02-08 by Thomas Keller
Attachments
- No local attachments were found for this message.