On 28/06/2018 14:31, Stephen Pelc wrote:
> On Thu, 28 Jun 2018 12:29:49 +0100, Gareth's Downstairs Computer
> wrote:
>
>> On 28/06/2018 11:30, Stephen Pelc wrote:
>>> On Wed, 27 Jun 2018 21:29:09 +0100, Gareth's Downstairs Computer
>>> wrote:
>>>
>>>> IMHO where Forth falls down it is because it is a write-only
>>>> language; programs other than the limited training exercises
>>>> being difficult to fathom out.
>>>
>>> This is a traditional calumny.
>>
>> No it is not. It is true. Forth is a favourite of badly or self
>> taught programmers because on the surface it seems very easy to get
>> started, and, although aficionados of FORTH will understand and
>> remember everything that they themselves have coded, the same is not
>> true for the unfortunate individuals who have to maintain the code;
>> maintenance being where most of the cost of software lies. This is
>> because FORTH is more an assembly language than a high level language.
>> Indeed, the instruction set of the English Electric KDF9 is remarkably
>> similar, and its publication may well have been the inspiration
>> for Charles Moore, the instigator of FORTH.
>
> This is just proof by repeated assertion. What qualifies you to make
> these assertions?
I am stating my opinions, as are you. What qualifies YOU to
make these assertions?
I've retired from 45 years as a real-time embedded softy, electronics
degree specialising in computers and communicaiton, one year spent
on instrumentation design for attaching to PDP11s.
? I have run a Forth software shop since 1981, so on
> a did/didn't basis, I've seen a lot of Forth code.
I year's experience repeated 36 times?
> As an embedded
> systems rogrammer, I've seen a huge amount of bad C code and bad
> code in a range of languages.
Straw Man, and a non sequitur. I had not mentioned any other languages
by name
> If you don't know how to use a language, you will write bad code in
> it.
I had agreed with you on that point. You complain of repetition whilst
doing it yourself.
> Forth is a remarkably subtle language.
As, perhaps are all assembly languages.
>> It is unclear from that comment whether or not you disagree with me.
> There are no write-only languages, with the possible exceptions
> of Brainfuck and Mondrian.
A few years back, probably 16, I produced a BrainFuck interpreter
in VB6, just for fun, just as Forth is for fun but is not a
reputable language for large scale professional projects.
>
> You call Forth an assembly language. I call it an extensible
> language. Good Forth programmers use the extensibility.
A language needing extensibility, for example, adding case / switch /
select statements is not reputable. Doing such things renders you as
a language developer and not someone concentrating on the job in hand.
Most "extensibility" is nt different to other environments whereby
subroutines and objects are defined as necessary.
>
>> But it cannot be learned in FORTH; FORTH being in Reverse
>> Polish Notation.
>
> Ah, the data stack.
No, RPN, nothing to do with the data stack. But you do highlight
another assembly language feature not seen in reputable languages
when the programmer has to be consciously aware of both the data
stack and also the return stack.
> It's easy to blame the combination of RPN
> and an untyped language.
An untyped language? Error prone for all. BCPL's right values and
left values were replace by pointers in C.
>These are beginner problems that are
> not considered an issue by experienced Forth programmers.
Untyped languages are problems for all; and such untypiness is
a marker for an assembly language.
? If
> you can't cope with a stack, you'll never be a good programmer.
An interesting side step. IMHO, most HLL programmers are unaware
of machine functions such as stacks, and the reason for such HLL
is to move away from the machine towards the application.
>>> I speak
>>> as someone involved in the maintenance and development of a
>>> Forth application of 1,400,000 lines of source code.
>> I bet you're the only person who knows their way around that cod.e
> Rubbish. It's a team effort by one of our clients.
I too, as a contractor, have been involved with companies where
there was no existing software organisation, and in my case, the
teenage son of the MD produced the software in hex machine code
typed into A Softy PROM programmer. That you are now supporting their
product suggests that they still do not have reputable professional
softies.
>
> Your repetition is tedious. The app with 1,400,000 lines of
> source code is now nearly 30 years old and has made the
> company a lot of money.
When you keep repeating about the 1M4 lines of code, you make a fool
of yourself by claiming that others' repetition is tedious.
Physician, heal thyself! :-)
There are other Forth apps, ancient and
> modern, that have performed extremely well over long periods.
That's not really the issue; the issue is the understandability and
maintainability of code. FORTH, being an assembly language, and,
untyped as you have highlighted, is error prone.
> It was fashionable to rubbish Forth until a few years ago, when
> I observed that the senior technical people of many progressive
> companies have fond memories of Forth.
I dunno about fashionable, but I have fond memories of PDP8
assembly language which is not an indication that I would
suggest ot today.
> Yes, it's not fashionable,
> but it works in the right hands. It's not for everyone.
Good projects with good code can be easily read and understood
by almost everyone, so you suggest that FORTH is not good.
>
> It needs a professional tool chain of the sort supplied by MPE
> and Forth Inc.
Tool chains can be useful, but are NOT essential for, eg, C.
> The free toolchains simply do not cut it for
> serious applications.
C with makefiles and text editors, not really a toolchain,
worked well on many projects.
Taking this back to the original query, I suggest that Tcl
is a good choice for a second language after Python.
FORTH is for hackers who cannot be bothered to learn the
separate usage of editors, compilers, linkers and loaders.
But it can be fun in small doses, but with no other
programming background, a year's experience with FORTH
would be 1 weeks experience repeated 50 times.
--- SoupGate-Win32 v1.05
* Origin: Agency HUB, Dunedin - New Zealand | FidoUsenet Gateway (3:770/3)
|