Bernd Paysan wrote:
> John Doty wrote:
>
>> But you are just trying to define the problem away: language, as
>> understood by linguists, is what engages the human "language instinct",
>> and that's a powerful mental "muscle". Weaker definitions only suit a
>> weak language, one that cannot as effectively employ human mental
power.
>
> That's under the theory that the human mind thinks in terms of language
> only. A rather stupid theory IMHO;
That's not my theory. But for a linear textual notation like Forth, the
language facility is the high road into the mind.
> if it would be true, 90% of our brain
> would have been wasted (maybe it *is* wasted with most of the
> population). "A picture says more than 1000 words" already tells you
that
> people have severe difficulties to map graphical thoughts into language.
Yes, and that's no doubt why most people prefer GUI to text interfaces,
and why spreadsheets are an immensely popular way to program among
nonprogrammers. But a linear textual notation is not a picture, so it
can't go that route. It can, however, have grammar.
> They have the same problems with other thoughts, that's why mathematics
> invent their own way of communication instead of using normal language.
They do, but successful mathematical notations have very rigid grammar,
completely unlike Forth.
>
> Your critic that Forth forces the user to think like a computer IMHO is
the
> strength of Forth. In order to program a computer, I have to think like
a
> computer, I can't use the imprecise, inaccurate thinking I do when
talking
> to other people (often the main message is between the lines, e.g. when
> joking). The computer needs to be told exactly what it must do and in
which
> order.
The level of detail depends on what you want to accomplish. Why not
develop your own semiconductor process and do the job in custom VLSI?
That gives you much more exacting control than relying on a commercial
processor. What a programmer calls precise control is an artifact of
treating the computer as a black box. But often, it makes good sense to
draw the line between what's under your control and what's a black box
at a different level.
>
> Forth allows me to do that easily, because it is rather unambiguous
about
> how the computer understands it
In Standard Forth this is only true for experts, I think.
> (unlike e.g. C, where different
> implementations can even have different precedence rules for some
> operators, or at least had in the transition between K&R and ANSI
I have a fair amount of legacy code in K&R C, and I've never encountered
this.
> - today,
> I only use GCC, and won't see the problem anymore). I view my brain as a
> flexible entity, and I can wrap it around the problem, not the other way
> round. That's why the language that fits me allows me to wrap the
language
> around the problem, too.
>
> Even if Larry Wall is right, and the majority of the population likes a
> computer language that allows them to talk to the computer like they
talk
> to humans (imprecise ;-), I hate his language.
But Perl's published accomplishments are legion, while Forth's are
almost nonexistent. Do you want to be a hermit, or do you want the
leverage an informal collaboration with a million other people can
provide?
Mathematica shows that there is no dilemma for Forth here: you do not
have to choose between a language readable to humans and a more precise
notation. In Mathematica, you can choose readable high level (e.g. a/b)
or precise low level (e.g. Times[a, Power[b, -1]]) representation of
expressions, essentially at edit time. You can edit in whichever form
you choose, and then convert the expression (or even just part of it) to
a different form for readability.
Putting the linguistic smarts in an editor while keeping the underlying
notation simple and rigorous seems a Chuck Mooreish idea, no?
> Perl IMHO is gibberish (it
> resembles a cat walking over a keyboard much more than any natural
> language), and the semantics is so imprecise that most Perl programs I
had
> to maintain (typical write-once-run-a-few-times programs) were a bag of
> bugs, which were better replaced completely (in my case by Forth
programs).
You can write bad code in any language. Better to compare
accomplishments. One impressive published Perl program that's very
important to me is spicepp.pl. While I wouldn't know how to start
writing a Perl program, I have found this one easy to customize. And its
author actually apologized to me a couple of years ago for what a bad
piece of code it is! I don't think so...
> If Larry Wall's language design is a consequence of the psychology of
most
> programmers, I don't want to know what madness lies behind that ;-).
Maybe
> there's no accident that Larry won the obfuscated C contest twice.
Throw bricks all you want: Perl is a language that's accomplishing much
in my world, while Forth drove its users away and is now mostly forgotten.
--
John Doty, Noqsi Aerospace, Ltd.
http://www.noqsi.com/
--
History teaches that logical consistency is neither sufficient nor
necessary to establish practical, real world truth. Those who attempt to
use logic for that purpose are abusing it.


|