Python and the need for speed

bartc bc at freeuk.com
Sat Apr 15 10:37:41 EDT 2017


On 15/04/2017 14:27, Marko Rauhamaa wrote:
> bartc <bc at freeuk.com>:

>>     while 1:
>>         body
>
> Why not say it like it is:
>
>    while True:
>        body
>
>> but it's more psychological; I don't want to use an idiom to denote an
>> endless loop, I want to be able to express it directly!
>
> C's:
>
>     for (;;)
>         statement
>
> I would call an idiom.

I don't like that either!

> Python's
>
>     while True:
>         body
>
> is about as straightforward as it gets.

In the syntax I normally use (based on Algol 68), the endless loop is:

    do
      body
    end

(well, actually I use do body od, but that may have raised some eyebrows).

'do', in the original Algol 68 syntax, was part of its 'for' statement, 
where you could leave out the parts you don't need. The full syntax is 
something like:

   for var := a to b by c while d do body od

If you leave out the first part you get a while loop. Leave out all 
except 'to b do', you get a repeat-n-times loop. And so on.

Elegant. (I don't do it that way, I have discrete loop types, plus my 
own variations. Devising syntax is so easy, the hard bit is knowing when 
to stop...)

>
>> Python's byte-code does at least optimise
>
> I don't understand why there's so much talk about CPython's bytecode on
> this list. That should only be of interest to active CPython developers.

What proportion of Python implementations depend on executing byte-code?

-- 
Bartc


More information about the Python-list mailing list