Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #15556

Re: Forth as a polarising language

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: Forth as a polarising language
Date 2012-09-09 15:57 +0200
Organization 1&1 Internet AG
Message-ID <4730306.fNe2lVOm3c@sunwukong.fritz.box> (permalink)
References (11 earlier) <7xk3w58rwq.fsf@ruckus.brouhaha.com> <42098575.CBZ8BYJVEi@sunwukong.fritz.box> <7xzk5148ba.fsf@ruckus.brouhaha.com> <9166513.gd9qQuK4mJ@sunwukong.fritz.box> <7xzk50m3uf.fsf@ruckus.brouhaha.com>

Show all headers | View raw


Paul Rubin wrote:
> I've never understood what is going on with those UI's.  Part of the
> problem may stem from the tragedy of X windows.

I had no problem creating a non-lagging UI on top of X 15 years ago.  X 
is not the problem.

> But I'm sure that
> those developers have played video games, and what are video games
> other than no-lag GUI's?

Indeed.  That's why I was quite grumpy at that time with GUIs - games 
like Doom or Quake had 3D textured environments, without lags, and to 
show a simple file selector takes seconds? WTF? 15 years later, it still 
takes awfully long...

> Meh, I think the rage these days is 3D printing.  I don't know about
> wood carving but I know some people making metal stuff, and except for
> very simple parts turned on a lathe, everyone uses CNC or printing
> now, even for one-off pieces.

Maybe.  The creative wood carvers I know of still use chainsaws.  And 
the rest uses CNC, but they are not creative.

> Take a look at www.bathsheba.com and tell me
> how to make stuff like that with hand tools or chainsaws.

The tool is named slightly different with this sort of material (it's 
more something like a dentist drill), but people do quite astonishing 
things with these tools and their hands.

>> I don't consider dynamically typed languages as "strong typed",
> 
> That is a terminology thing--there doesn't seem to be a clear
> uniform definition of that term.  Luca Cardelli's view is that
> dynamic types are strong in the sense that they prevent type errors
> from
> launching the program into undefined behavior.  I would surely say
> that Scheme is a safer language than C or Forth for this reason.

"Undefined" behavior is something language lawyers tend to use.  A 
computer is a fully deterministic state machine, there is no undefined 
behavior.  If you write outside the bounds of an array, you are 
overwriting other stuff, it's not undefined.  People who do security 
exploits get very well-defined behavior out of their programs - 
unwanted, but well-defined.

So a Lisp program won't segfault while a C or Forth program will.  The 
Lisp program still prints error messages which disrupt the normal 
control flow of that program.  From the program's point of view, this 
behavior is still "undefined", it won't know what to do.  Termination is 
a good idea.

In contrast, a Haskell program with such a type error even doesn't 
compile.  That's what I consider strong typing.

>> because they do try hard to figure out what the programmer wanted,
>> and convert data automatically if possible.
> 
> I don't think automatic conversion is characteristic of dynamic types.
> It seems pretty horrendous to me that PHP converts digit strings to
> numbers if you do arithmetic on them.  Scheme and Python raise errors
> if you do that.

But they treat integers/bignums/floats as interchangeable.

>> People in general (BDSM doesn't count) prefer positive
>> feedback.
> 
> It's just like a musical instrument, where when you first start
> playing all you can get is awful noise.  People get good with those
> instruments anyway.

The more popular instruments are ones where you get a reasonable tune 
out at first try.  There are BDSM-style people who love to be punished 
or do painful things.  They are a minority, they don't count.  The 
majority of people prefers positive to negative feedback.  They won't 
get good on alphorns.

> Yeah, interactive shells are a big help for quick prototyping.  I
> somewhat regret that I never used any of the grand Lisp environments
> (i.e. the MIT Lisp machines) back in the era when anybody cared about
> them.  Python has some nice interactive shells and I do use those.
> Paradoxically the current prescription for "serious" Python
> programming is test-driven development (TDD): you are supposed to
> write a test suite
> for the code before you write the code itself.

I've the impression that too many people confuse "serious" with "no 
fun", "hierarchies" and as consequence "BDSM" style stuff.  Having tests 
for your code is good.  However, when I write something like the binary 
heap, it is first explorative coding, and then writing tests.  The 
"writing tests" after all should be explorative, too, because with 
normal test-driven programming you end up with a test that doesn't test 
what it should and a program that doesn't deliver what it should.  Which 
means two times the possible bugs, and therefore much longer debugging 
time.

> So that seems like a
> beat-back against interactive, exploratory development.  If those
> tests have a 50% hassle factor and a type system gets rid of half of
> it while adding 5% of its own,

That's an optimistic assumption.  My experience is that the type system 
gets rid of 5%, while adding 200% of its own.  Yes, I've used the 
"wrong" strong typed languages, like VDHL.  Where even the test were 
bugged by VDHL - the programmer wrote something like

i := i + 1;

and then had to rewrite that into

i := when i = 15 then 0 else i + 1;

or whatever the correct syntax is (it's too long ago), because VHDL 
otherwise caused an exception (it *did* compile).

This lot of own hassle added makes people feel that they have achieved a 
lot when the program finally compiles, but in fact it was all only 
introduced by the type system itself.

>> The thing I was doing was a battery monitor... On a tiny micro deeply
>> embedded in some small device.
> 
> Sure, that's an important thing to be doing, but it's a niche; and
> sure, it's a reasonable place for Forth, but it could also be
> programmed directly in assembly code.

Forth is the assembly code of the b16, and yes, I've done something like 
that using "real" microcontroller assembly code (PIC17): It is a 
nightmare.

>> The only larger chip without embedded micro is the power management
>> circuit from Dialog, and it has no micro for mere stupidity.
> 
> I wonder if it's actually there but inaccessible?

I've been working there, trust me, they didn't have one.  The other 
micros are mostly inaccessible, either.  I forgot that the audio 
processor (to drive the headphone and the speaker) also has a micro/dsp, 
this one is even quite accessible.

>> The price budget for a battery monitor of course is more in the 30¢
>> region or even below.  Forget about your $3 ARM.
> 
> In a high volume device like a phone, I'm surprised the battery
> monitor isn't jammed into a corner of some multi-function ASIC rather
> than being a separate part.

That was the project I was doing.

> I don't think such niches are uninteresting.  There just aren't all
> that many progammers (compared to the general programmer population)
> working in them.  That's what makes them niches.



>> (Ti apparently uses an MSP430 in their battery monitor, and they
>> write
>> the program in C.  It's more than 16k long as resoult, which means
>> the chip exceeds the 30¢ budget).
> 
> I don't understand why the code bloat.  Are you comparing against your
> B16 processor?  Are you really saying there's an 8x difference in code
> density for B16 Forth vs. MSP430 C when the applications are doing the
> same things?

Not exactly.  I had the figures from Ti's part and how large their 
program was.  It's not "same thing" as in 1:1 translated program, it is 
"same thing" as in "same resulting precision" of the battery monitor.  
I'm sure the Ti guys are not stupid and know what they are doing.  I'm 
however convinced that their approach has flaws which they then need to 
work around.

> I'm pretty doubtful there is that big a difference, and
> I suspect that either the MSP430 code is using libraries carelessly,
> or else it's doing fancier stuff than the B16 code.

I don't have a source listing of Ti's program.  It just was that Apple 
made pretty clear that they don't believe at all I will fit the program 
into 2k, not at all, and meeting the specs.  We therefore added another 
2k RAM to the prototype, which I then didn't use.  The sort-of same 
program written in PIC17 assembly language was 8k long.  Of course, the 
b16 program was a complete rewrite from scratch.

I've heard this "it's not possible", "you must be comparing apples to 
bananas" and all that stuff often enough.  Redefining the problem until 
a small program can solve it is part of Forth's philosophy, it's not 
just the code density of 5 bit per instruction that matters.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-08-29 23:00 -0700
  Re: Article Mark Wills <markrobertwills@yahoo.co.uk> - 2012-08-30 01:47 -0700
    Re: Article anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-08-30 12:13 +0000
  Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-08-30 11:31 -0400
    Missing from USENET - was [Re: Article] Richard Owlett <rowlett@pcnetinc.com> - 2012-08-30 10:37 -0500
      Missing from USENET - was [Re: Article] Mark Wills <markrobertwills@yahoo.co.uk> - 2012-08-30 10:30 -0700
  Re: Article hughaguilar96@yahoo.com - 2012-08-30 19:56 -0700
    Re: Article awegel@arcor.de (Alex Wegel) - 2012-08-31 12:35 +0200
  Re: Article "Greg Bailey" <greg@greenarraychips.com> - 2012-08-31 17:51 -0700
    Re: Article Whammo <sidciavic@gmail.com> - 2012-08-31 18:22 -0700
    Re: Article Mark Wills <forthfreak@gmail.com> - 2012-09-01 01:04 -0700
      Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-02 16:18 -0700
    Re: Article Alex McDonald <blog@rivadpm.com> - 2012-09-01 01:48 -0700
    Re: Article rickman <gnuarm@gmail.com> - 2012-09-02 18:38 -0400
    Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-02 16:59 -0700
    Re: Article Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-09-03 13:07 -0500
      Re: Article Alex McDonald <blog@rivadpm.com> - 2012-09-03 14:25 -0700
      Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-04 17:04 -0700
        Re: Article Ron Aaron <rambamist@gmail.com> - 2012-09-05 06:23 +0300
    Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-03 18:17 -0400
      Re: Article "Elizabeth D. Rather" <erather@forth.com> - 2012-09-03 12:37 -1000
        Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-04 04:48 -0400
          Re: Article Alex McDonald <blog@rivadpm.com> - 2012-09-04 03:39 -0700
            Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:48 -0400
          Re: Article awegel@arcor.de (Alex Wegel) - 2012-09-04 13:18 +0200
            Re: Article Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-04 16:03 +0200
              Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 03:29 -0400
            Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 03:24 -0400
          Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-04 08:12 -0700
            Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:06 -0400
          Re: Article Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-09-04 11:35 -0500
            Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:40 -0400
              Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-05 13:28 -0700
          Re: Article "Elizabeth D. Rather" <erather@forth.com> - 2012-09-04 08:32 -1000
            Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:22 -0400
              Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 10:08 -0700
                Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:07 -0400
                Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 13:39 -0700
              Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-05 13:35 -0700
            Re: Article "Ed" <invalid@nospam.com> - 2012-09-07 17:24 +1000
            Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-07 05:28 -0400
              Re: Article Mark Wills <markrobertwills@yahoo.co.uk> - 2012-09-07 03:28 -0700
              Re: Article Ron Aaron <rambamist@gmail.com> - 2012-09-07 13:31 +0300
                Re: Article jacko <jackokring@gmail.com> - 2012-09-07 06:33 -0700
                Re: Article Howerd <howerdo@yahoo.co.uk> - 2012-09-07 09:06 -0700
              Re: Article Howerd <howerdo@yahoo.co.uk> - 2012-09-07 09:03 -0700
        Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-04 16:45 -0700
      Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-03 21:38 -0700
        Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 02:51 -0400
          Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 10:49 -0700
            Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:20 -0400
        Re: Article "Rod Pemberton" <do_not_have@notemailnot.cmm> - 2012-09-05 16:06 -0400
          Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 13:32 -0700
            Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-05 13:50 -0700
              Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-05 22:34 -0700
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-07 14:05 -0700
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-08 01:53 +0200
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-07 18:22 -0700
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 00:08 +0200
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-08 17:34 -0700
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 15:57 +0200
                Re: Forth as a polarising language Mark Wills <markrobertwills@yahoo.co.uk> - 2012-09-09 08:12 -0700
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 22:07 +0200
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-09 15:14 -0700
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-10 01:52 +0200
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-09 19:17 -0700
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-10 15:01 +0200
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-10 07:00 -0700
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-11 01:07 +0200
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-10 18:47 -0700
                Re: Forth as a polarising language Elizabeth D Rather <erather@forth.com> - 2012-09-10 16:08 -1000
                Re: Forth as a polarising language anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-11 07:51 +0000
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-11 19:24 +0200
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-11 21:40 +0200
                Re: Forth as a polarising language "Elizabeth D. Rather" <erather@forth.com> - 2012-09-09 14:58 -1000
                Re: Forth as a polarising language Paul Rubin <no.email@nospam.invalid> - 2012-09-09 18:24 -0700
                Re: Forth as a polarising language Anonymous <nobody@remailer.paranoici.org> - 2012-09-09 13:42 +0000
                Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-08 10:34 +0200
                Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-08 07:06 -0400
                Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:14 +0200
                DEFER (was: Forth as a polarising language) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-08 16:47 +0000
                Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:22 -0400
                OOP (was: Forth as a polarising language) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-08 11:38 +0000
                Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-08 08:19 -0400
                Re: OOP mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:41 +0200
                Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:24 -0400
                Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-09 12:03 +0200
                Re: Forth as a polarising language "A. K." <akk@nospam.org> - 2012-09-09 13:20 +0200
                Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-10 08:33 -0400
                Re: OOP mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:54 +0200
                Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:12 -0400
                OOP (was: Forth as a polarising language) mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:28 +0200
                Re: OOP (was: Forth as a polarising language) mhx@iae.nl (Marcel Hendrix) - 2012-09-08 16:56 +0200
                Re: OOP (was: Forth as a polarising language) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-08 15:00 +0000
                Re: OOP (was: Forth as a polarising language) Roger Ivie <rivie@ridgenet.net> - 2012-09-08 11:56 -0500
                Re: OOP Doug Hoffman <glidedog@gmail.com> - 2012-09-09 04:20 -0400
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 00:15 +0200
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 00:50 +0200
                Re: Forth as a polarising language mhx@iae.nl (Marcel Hendrix) - 2012-09-09 03:12 +0200
                Re: Forth as a polarising language Bernd Paysan <bernd.paysan@gmx.de> - 2012-09-09 16:01 +0200
                Re: Forth as a polarising language "Elizabeth D. Rather" <erather@forth.com> - 2012-09-09 14:54 -1000
                [OT] Newsreader problem - was [Re: Forth as a polarising language] Richard Owlett <rowlett@pcnetinc.com> - 2012-09-10 06:33 -0500
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 08:16 -0400
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 08:28 -0400
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-09-10 12:43 +0000
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 09:24 -0400
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Richard Owlett <rowlett@pcnetinc.com> - 2012-09-10 08:12 -0500
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Doug Hoffman <glidedog@gmail.com> - 2012-09-10 09:32 -0400
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] "Elizabeth D. Rather" <erather@forth.com> - 2012-09-10 07:40 -1000
                Re: [OT] Newsreader problem - was [Re: Forth as a polarising language] Richard Owlett <rowlett@pcnetinc.com> - 2012-09-10 14:42 -0500
                Re: Forth as a polarising language Doug Hoffman <glidedog@gmail.com> - 2012-09-10 07:59 -0400
                Re: Forth as a polarising language rickman <gnuarm@gmail.com> - 2012-09-10 12:27 -0400
                Re: Forth as a polarising language "Elizabeth D. Rather" <erather@forth.com> - 2012-09-10 07:44 -1000
                Re: Forth as a polarising language rickman <gnuarm@gmail.com> - 2012-09-10 12:30 -0400
            Re: Article "Ed" <invalid@nospam.com> - 2012-09-09 14:13 +1000
              Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-11 11:26 -0700
                Re: Article "Paul E. Bennett" <Paul_E.Bennett@topmail.co.uk> - 2012-09-11 21:02 +0100
                Re: Article vandys@vsta.org - 2012-09-11 20:37 +0000
                Re: Article "Ed" <invalid@nospam.com> - 2012-09-12 20:01 +1000
              Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-11 16:50 -0700
                Re: Article Mark Wills <forthfreak@gmail.com> - 2012-09-12 00:45 -0700
                Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-12 18:44 -0700
                Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-12 20:26 -0700
                Re: Article "Ed" <invalid@nospam.com> - 2012-09-12 20:47 +1000
    Re: Article Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-09-06 19:28 -0700
      Re: Article John Passaniti <john.passaniti@gmail.com> - 2012-09-07 09:57 -0700

csiph-web