The only differences are that tuples are immutable and that lists have extra methods.
Is there ever a strong need for list-type data to be immutable? Evough to justify a whole extra data-type in the language?
Should they release a python 4 with it removed?
The only thing I can think of is as a default function parameter. This function is okay:
def dothings(a=(1,2)):
print(a)
a = (a[0], 3)
But this function misbehaves the second time it is called:
def dothings(a=[1,2]):
print(a)
a[1] = 3
But IMO the "mutable arguments" thing is another bug to be fixed in a hypothetical python 4. And even in python 3 you just write the function the recommended way, so there is not such a big problem.
def dothings(a=None):
if a is None:
a = [1, 2]
print(a)
a[1] = 3
The Python devs are clever guys though. There must be some really important reason to maintain both types?
Also, to add on to that, if you wish an even simpler language, with really just one collection and structure type, look at Lua