D&C GLug - Home Page

[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]

Re: [LUG] Language wars was Re: Global variables in Python?

 

On 28/04/13 18:18, Tony Sumner wrote:
>
> Simon mentioned Forth. I liked that at the time. People would advocate
> it with the recommendation that "you can define plus to mean minus" and 
> this was its main attraction.

Different people meant different things by Forth when I used it.

At the heart was a small language that allowed itself to be extended,
but in some implementations that core was so small it bought you little
over assembler. On the other hand those versions were written in so
little assembler you could port it anywhere without knowing much
assembler. There is some mileage in the small language, or small subset,
as sometimes it pays dividends to be small and simple but still familiar.

In Forth's case redefining plus to mean minus was probably a genuine
strength presented badly. All a long time ago now, but you meet a few
die-hards around, and Forth has come a long way since then.

On the other hand Fortran's pass by reference meant if you put constants
in a subroutine call they became references, so you could accidentally
redefine a constant to be something else.

e.g.
     i=0
     increment(2)
     i=i+2
     write (*,100) i

Is "3" with the obvious assumptions in place about what increment and
line 100 do. Whilst the simple calling convention might have been an
advantage that sort of weird side effect wasn't, although later on
compilers would warn you not to pass constants.

-- 
The Mailing List for the Devon & Cornwall LUG
http://mailman.dclug.org.uk/listinfo/list
FAQ: http://www.dcglug.org.uk/listfaq