renciso218 / blockly

Automatically exported from code.google.com/p/blockly
0 stars 0 forks source link

Getting item 0 in list translated into list[-1] #26

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
In the attached program the procedure 'do restore' contains a [get item at [0] 
in list [call top]] which is translated into 'from = top2()[-1];' in 
javascript. That seems wrong.

Original issue reported on code.google.com by christia...@gmail.com on 11 Jun 2012 at 2:58

Attachments:

GoogleCodeExporter commented 8 years ago
Zero-based numbering is confusing to new programmers, which is why most intro 
languages such as Basic, Lua, Moo, Scratch and Blockly all use one-based 
numbering.

Even programmers sometimes prefer one-based lists.  Think about the last time 
you saw a code editor list the first line as zero.

Blockly quietly converts the one-based lists to zero-based when compiled into 
JavaScript, Dart or Python.

It's a good question, and it's not too late to change this.  But from early 
feedback I think most non-programmers and novice programmers prefer counting 
from one.  Granted, it's irritating for experienced programmers such as us.  
And making it a preference would lead to even more confusion once we have code 
sharing and libraries.

Original comment by neil.fra...@gmail.com on 11 Jun 2012 at 4:44

GoogleCodeExporter commented 8 years ago
That makes sense - I'm so used to 0-based indexing that I didn't even consider 
that it might be that. I wouldn't suggest changing it either, my experience is 
that 0-based indexing is only easier if you've had your mind warped in a way 
most non-programmers haven't.

It might be helpful if there was a short "here's a handful of things you'll 
have to keep in mind if you're a programmer" document pointing stuff like this 
out.

Original comment by christia...@gmail.com on 11 Jun 2012 at 6:40

GoogleCodeExporter commented 8 years ago
I have no issue with one-based numbering for newbie. But please return a 
readable error. I've figure out an hour why I got 'undefined' when trying to 
get item at 0.

Original comment by neizod on 16 Jun 2012 at 5:14