Good job on being one of the very few HLL programmers to grasp the concept of
mixed-precision integer arithmetic! Assembly language programmers understand
this idea easily, but I almost never meet an HLL programmer who gets it.
I have a long history programming in Forth. Now I'm writing my own language,
which I call Straight Forth. This not ANS-Forth (or Forth-200x) compliant, but
I'm competing against the standard which I think has gone astray. The primary
feature that I'm adding to Forth is closures. Also, I'm getting rid of a lot of
1970s-vintage cruft from Forth, such as DO loops --- my language will actually
be much smaller and simpler than ANS-Forth or Forth-200x.
Straight Forth will only be for micro-controller programming (such as for the
PIC24). One of the problems with ANS-Forth is that it is a "jack of all trades
and a master of none." It is promoted as a language for desktop-computer
programming, but it really doesn't compete with the myriad languages available
(this is the point I was making in regard to my slide-rule program that was a
major PITA for me to write in Forth, even though I know Forth better than
most). OTOH, Forth is the best language for micro-controllers --- if the Forth
community would focus on what they are good at, they might succeed.
Straight Forth will have Scheme as its "sister language" for desktop-computers
and laptops. There are a lot of programs that get written as part of a
micro-controller project, typically involving transforming data that goes to or
from the micro-controller and the desktop-computer, from one format to another.
Scheme will be used for this. For example, when I worked at Testra I wrote a
program to convert AutoCAD dxf files into CNC gcode --- I wrote that in
UR/Forth (everything at Testra is in UR/Forth) and it was another major PITA
that would have been much easier in Scheme (or pretty much any of the many good
desktop-computer languages available). Most likely I will specify Racket
because it is popular and it has a good IDE (I'm actually using Gambit to write
Straight Forth though, because it is a lot more powerful). I think that it is a
good idea to have each language used for what it is good for (Straight Forth
for micro-controllers and Scheme for
desktop-computer scripting), rather than press one language into multiple jobs
most of which it is not well-designed for. I largely picked Scheme because it
has closures, and there is beaucoup documentation on programming theory
available that uses Scheme as the example language --- most of my users will
come from a C or Forth background and hence won't know what closures are, so
requiring them to learn Scheme at the same time that they become Straight Forth
users will kill two birds with one stone, in that they will get an appropriate
language for scripting and they will find out about closures. There are other
languages that have closures, but none that have so many good books available
discussing the subject. To program in Straight Forth the users will have to
understand closures, as that is what it is all about.
I like Scheme! There is no money to be made as a Scheme programmer though. The
only way to make money is by selling circuit-boards that do something useful
--- and those boards have to be programmed somehow, which is where Straight
Forth comes in. Boards are a product that can be sold. Software is not a
product --- it just adds value to the hardware that it runs on, but the
hardware is the product that gets sold for money. Sometimes programming is a
service, but this typically involves writing programs that are run once and
become obsolete immediately thereafter --- I did this in the past writing
IBM370 assembly programs for direct-mail back in the days when the postal
service was still used. Software is no longer a product that comes in a
shrink-wrapped box containing disks and manuals (such as WordStar for the CP/M
computers) --- that world no longer exists. The only thing that matters
nowadays is hardware --- circuit-boards are what the
bean-counters count.
regards --- Hugh
Message: 6
Date: Tue, 20 Nov 2012 08:56:34 -0500
From: Hendrik Boom <hend...@topoi.pooq.com>
To: users@racket-lang.org
Subject: Re: [racket] LC53
Message-ID: <20121120135634.ga28...@topoi.pooq.com>
Content-Type: text/plain; charset=us-ascii
On Tue, Nov 20, 2012 at 11:02:06AM +0000, Norman Gray wrote:
>
> Hugh, greetings.
>
> I think list members might experience a certain amount of surprise at your
> conclusions...
>
> On 2012 Nov 20, at 02:34, Hugh Aguilar wrote:
>
> > For a numerical program it is necessary to have mixed-precision arithmetic.
> > [...] Scheme, Python, Ruby, C/C++, Fortran, Java, etc., don't have this
>
> ...that Fortran is unsuitable for numerical programming,
Starting with Fortran, high-level languages have forgotten that the
product of two numbers should be accurately available as a
number with twice the precision.
NOw if the numbers were approximate to start with, this is no big deal,
but if they were exact (as integers usually are), it can be crucial for
some numerical algorithms. It mystifies me why this situation has
persisted for over half a century.
> > this is the kind of program that Scheme was designed for.
>
> ...and that Scheme was designed as a scripting language.
He didn't actually say Scheme was designed as a scripting language,
though his message suggested it. He said it was designed to write
programs like his slide-rule program. He also said that is *was* and
excellent scripting language (which is true).
For the record, Scheme appears to have been designed as a successor to
the Planner and Conniver systems (hence the name), which were AI
languages noted for sophisticated control structures. Hence the whole
continuation mechanism, which makes explicit control of various kinds of
data- and strategy-dependent scheduling mechanisms.
-- hendrik
>
> It might be worth getting a little further along in your study of a couple of
> Scheme dialects, before arriving at quite such confident conclusions.
>
> Best wishes,
>
> Norman
>
>
> --
> Norman Gray : http://nxg.me.uk
> SUPA School of Physics and Astronomy, University of Glasgow, UK
>
>
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users
____________________
Racket Users list:
http://lists.racket-lang.org/users