From: "Chuck Guzis" <cclist at
sydex.com>
On 1/30/2006 at 1:15 PM Roger Merchberger wrote:
Ontopically, I was thinking learning Forth was
going to be my next big
project, but I'm debating that some more and I think my free time will go
a different direction; mainly getting back into 6809 assembly.
I first saw Forth as STOIC under CP/M. Intriguing idea, but it struck me
as a "quick and dirty" easy-to-implement language. I don't think I'd
want
to implement a General Ledger package in it, but for fool-around small
projects, it's probably fine. My impression is that the suitability for a
task decreases quickly as the task size increases.
--Chuck
Hi
It is interesting that one of Forth's main virtues is
saving large projects that get lost in unmanageable 'C'
code. It has been brought in several times to save
software projects that were just running on and on.
As Richard mentions, it is an un-typed language. For
many, this puts it in a lower class of programming language.
In Forth, you have the freedom to pass any parameter
as an address, even if it is totally in error.
It's main advantage for larger projects is that one
transforms the language into a language that makes sense
for that project. One can even add type checking if
it is required. It also tends to help the programmer
write smaller simpler modular code that is more easily
tested and debugged. This can significantly increase
the output of the programmer for large projects.
Since the language is often redefined around the project,
it often requires strong project leadership or, when
using a large number of programmers, the programmers
tend to run off into tangents that don't match the main
flow of the project.
It is also called a programmer amplifier. A good
programmer will write better code but a bad programmer
will write really bad code.
It has typically been used in control applications but
data base systems and many other applications have been
written using it. Usually, it is used for prototyping of
a project and later replaced by something like 'C' code
to keep a more maintainable code. It isn't that the
code is really any more difficult to maintain than other
languages, it is just that it is so much different looking,
it takes someone the is proficient in it to read and
understand what is happening.
Still well written code can be handle by almost anyone.
One of the people I know wrote a piece of code to
handle some form of encoding/decoding ( I forget which one ).
When he handed the code in, the manager passed it back
to him and said that he must have made a mistake. What
the manager thought he'd gotten was a spec sheet for
the encoding and not the code to do it. This is what
is meant by transforming the language to the application.
If all programmer's output looked like this, the concept
of maintaining code would completely change.
Well written code should read this well in any language
but most languages get in the way and hide the application.
Sorry for rant, it is just that of all the programming
languages that I've ever used, I am the most productive
in Forth. I use it for almost all of my home projects,
when I'm not forced to use some other language.
Dwight