[Python-Dev] re: syntax - "Aren't tuples redundant?"

gvwilson@nevex.com gvwilson@nevex.com
Fri, 4 Feb 2000 09:15:54 -0500 (EST)


Hi, Jean-Claude; thanks for your mail.

> GV> Show them [1, "two"] and they (a) understand it, and (b) think
> GV> it's cool; show them (1, "two") as well and they become confused.
> Because they mean the same thing, I suppose?

Redundancy seems to confuse people (did someone say "Perl" or "PL/1"?)

> GV> If tuples didn't already exist, would anyone ask for them to
> GV> to be added to the language today?
> 
> Why indeed?  They are more space-efficient, and they are immutable,
> but those are both purely technical reasons.

Agreed --- I could understand having tuples as an internal data structure,
but do not understand why they are exposed to users.  If Python had been a
type-checked, type-inferenced langauge from the beginning, I guess I could
see it...

As for the immutability:

>>>> x = [1, 2]
>>>> y = (10, x, 11)
>>>> y[1][0] = 999
>>>> y
(10, [999, 2], 11)

> GV> I've never had any trouble explaining int vs. float to students at
> Because ints and floats differ in meaning?

People are taught "whole numbers" vs. "fractions" at an early age.

> GV> I've also never had any trouble explaining int vs. long
> GV> (memory vs. accuracy).
> 
> That's interesting.  Tuples vs. lists are a similar tradeoff, though
> both memory-savings and immutability are CS-type issues, whereas non-
> programmers are more likely to consider accuracy a meaningful tradeoff?

I just show them the range of values that can be represented in 8, 16, 32,
or 64 bits (for ints); 'float' vs. 'double' follows naturally from that.
Again, I've never had any trouble with this one...

Interestingly, I've also never had trouble with strings being immutable. I
point out to people that the number 123 isn't mutable, and that
supposedly-mutable strings in other languages are really
allocating/deallocating memory behind your back; everybody nods, and we
carry on.

Greg