Python handles globals badly.
Mario Figueiredo
marfig at gmx.com
Tue Sep 8 09:05:59 EDT 2015
On 08-09-2015 12:55, Vladimir Ignatov wrote:
>>> I had some experience programming in Lua and I'd say - that language
>>> is bad example to follow.
>>> Indexes start with 1 (I am not kidding)
>>
>> What is so bad about that?
>
> It's different from the rest 99.9% of languages for no particular reason.
>
> ( => perfect example of "design smell" => not a good example to follow)
>
Assuming that some programming language makes design choices "for no
apparent reason" is your first hint you should probably reevaluate your
position. People who design programming languages don't tend to throw
coins to the air.
Lua was based of a scientific language with a strong mathematical core,
where 1-index arrays make more sense and are standard. The authors
didn't expect for the language to become successful and by the time it
did, you couldn't just change anymore such a core aspect of your language.
1-index arrays tend to be a problem in Lua, only for those people that
don't normally program in Lua. Those that do, quickly learn to use them
and they are not more difficult or easy to use than 0-index arrays.
There is nothing inherently bad about 1-index arrays. They are just
different, with some of the disadvantages being balanced by some of its
advantages.
And there either no design smell here. From the perspective of the
language user (the programmer), the choice of the starting index of an
array should have no impact on their ability to code. It's just another
semantic aspect of the language they should learn. No different than
having to learn other semantic nuances of each particular language. In
fact, a great language is the one that offers the ability for the user
to decide what starting index they want to use. Depending on the data
structure a user sometimes is better served by a 0-index array, others
by a 1-index array, and if you are doing an array with the letters of
the alphabet you would love to have an array starting at 'a'.
More information about the Python-list
mailing list