Forth Wisdom

  • When you see ST tutorials in 100% HAL gui’s you’re not looking at the beginning of a RAD system that will revolutionise embedded design, you’re looking at the decline of civilisation and the barbarians are at your gates

  • Good engineering practice requires avoiding use of inappropriate tools. There are no silver bullets, but some tools will allow a bigger job to be finished faster and better - by letting you concentrate on the application’s problem* rather than the tools’ problems.

  • The mere mention of FORTH stimulates a violent immune reaction in many people second, perhaps, only to that induced by the utterance of the dreaded word “LISP.”

  • A Forther had written a program for dealing with Hamming codes.The manager sent it back to him and said that he wanted to see the actual program and not the description of what a Hamming code is. What better complement could a Forth programmer get ?

  • STM32 Peripheral Howto

    Read the reference manual for an hour
    Verify it doesn’t work as it should
    Curse
    Read the reference manual for 10 hours
    Try everything
    Accept the fact you still don’t understand what the hell is going on and try harder
    Use Forth to explore a wide range of tests, verify the results with assertions
    Finally understand what is required and wonder why the hell you didn’t get it the first time
    
  • C is often praised for being “close to the metal,” for being a “portable assembly language.” It was, once, but it hasn’t been since the 1970s; the underlying computational models of modern computers are nothing like the one that C represents, which was designed for a 1970s 16-bit minicomputer. https://www.theregister.com/2022/03/23/c_not_a_language/

GarthWilson

Sourced 02/07/2021 from http://forum.6502.org/viewtopic.php?f=9&t=777&start=135

For me, Forth is a means to help think about a modeled system. Even further, Forth helps in creating things to support such thinking. I’ve used several languages in my projects: C (plain, ++, #), Delphi, Turbo/Borland Pascal, Oberon (Active and Component Pascal), even Ada in one project. Every time, sooner or later, the thought came to me that one part or another would be better expressed in _____ <fill in the blank> language! When the project was in Delphi, I thought it about C. When it was in C, I thought it about Oberon…

Why did it happen regularly? Because all those languages had (and have) a strictly limited set of concepts and approaches to express or implement things.

But in Forth you don’t even have any syntax! You really only have one rule: put spaces between things you consider meaningful or significant. :D The concept of defining words is something so radically different from what you can show in all other (even possible) languages!

This is simply genius!

One has the simplest compiler with unlimited possibilities to express what was/is born between one’s ears! This compiler will never reach the limits of its complexity! Its ability to expand is infinite, without forfeiting its simplicity. You don’t have to add “new features” to a “compiler” itself. It stays the same; but you add new chunks of code to build only the needed structures and operations to implement your new ideas. No need to wait for a new version. No need to wait for a committee to finish a new standard.

But this feature of Forth is what managers and bosses view as problematic. They have no standard scales and means of measurement to evaluate the progress in a project. They realize that they will have a big problem if they hire a forther and later need to find a replacement for a him/her. For a long time, I have preferred to not tell my colleagues and bosses that I like FORTH. Forth changes the thinking. And these changes are not viewed as positive by the mainstream programmer today. The mainstream is working differently.

Not Forth Exactly …

G.N.M. Tyrell has put forward the terms divergent and convergent to distinguish problems which cannot be solved by logical reasoning from those that can.

Life is being kept going by divergent problems which have to be lived.

Convergent problems do not exist in reality, but are created by a process of abstraction.

When they have been solved, the solution can be written down and passed to others, who can apply it without needing to reproduce the mental effort necessary to find it.

If this were the case with human relations well, I’m at a loss how to finish the sentence. There would be no more human relations but only mechanical reactions; life would be a living death.

Divergent problems, as it were, force a man to strain himself to a level above himself; they demand, and thus provoke the supply of, forces from a higher level, thus bringing love, beauty, goodness, and truth into our lives.

It is only with the help of these higher forces that the opposites can be reconciled in the living situation.