| ▲ | cmrdporcupine 6 hours ago | |||||||
Pascal. Modula-2. BASIC. Hell, Logo. Lately, yes, Julia and R. Lots of systems I grew up with were 1-indexed and there's nothing wrong with it. In the context of history, C is the anomaly. I learned the Wirth languages first (and then later did a lot of programming in MOO, a prototype OO 1-indexed scripting language). Because of that early experience I still slip up and make off by 1 errors occasionally w/ 0 indexed languages. (Actually both Modula-2 and Ada aren't strictly 1 indexed since you can redefine the indexing range.) It's funny how orthodoxies grow. | ||||||||
| ▲ | teo_zero 5 hours ago | parent | next [-] | |||||||
In fact zero-based has shown some undeniable advantages over one-based. I couldn't explain it better than Dijkstra's famous essay: http://www.cs.utexas.edu/~EWD/ewd08xx/EWD831.PDF | ||||||||
| ||||||||
| ▲ | nine_k 5 hours ago | parent | prev [-] | |||||||
Pascal, frankly, allowed to index arrays by any enumerable type; you could use Natural (1-based), or could use 0..whatever. Same with Modula-2; writing it, I freely used 0-based indexing when I wanted to interact with hardware where it made sense, and 1-based indexes when I wanted to implement some math formula. | ||||||||