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

Reply via email to