There’s a sort of educational / documentation / etc. piece of this as well - SC Array’s behave a lot like Python tuple’s - there’s some clunky API’s sure, but there’s a place for this kind of data structure in a language to be sure. But - Python resources (that I’m familiar with…) are never like “you should use Tuple’s as the primary list data structure when you’re writing this casual script to process some CSV files” - this would be ridiculous.
SuperCollider has “sane” mutable arrayed data structures (like List) that would alleviate most of the common gotchas, but (a) they have extra syntax that makes them annoying to use (List[1, 2, 3]
vs [1, 2, 3]
), and (b) SuperCollider has an extraordinarily pedantic class hierarchy for it’s collection types that makes it very hard for a beginner/intermediate user to know which one does what, and which one you should use. When List
is one among 6 or 7 collection classes that show up when you look up a common list methods (and… probably the least common to show up in docs compared with the rest!), how is anyone supposed to know that it’s the type that behaves like … std::vector, Python arrays, Ruby arrays, etc etc.