This post originated from an RSS feed registered with .NET Buzz
by Duncan Mackenzie.
Original Post: Paul Vick, Language Designer on the VB team, discusses arrays with non-zero lower bounds...
Feed Title: Code/Tea/Etc...
Feed URL: /msdnerror.htm?aspxerrorpath=/duncanma/rss.aspx
Feed Description: Duncan is the Visual Basic Content Strategist at MSDN, the editor of the Visual Basic Developer Center (http://msdn.microsoft.com/vbasic), and the author of the "Coding 4 Fun" column on MSDN (http://msdn.microsoft.com/vbasic/using/columns/code4fun/default.aspx). While typically Visual Basic focused, his blogs sometimes wanders off of the technical path and into various musing of his troubled mind.
One of the changes from VB6 to VB.NET was the removal of non-zero lower bounded arrays... a concept discussed by Eric Gunnerson recently, and now covered by Paul... giving it a bit of VB perspective.
Non-zero lower bounded arrays (the other side of the coin) ... To finesse this issue, the CLR designers came up with a compromise: there would be two kinds of arrays in the CLR. One kind, which I'll call "arrays," were just like normal VB arrays - they could have non-zero lower bounds. The other kind, which I'll call "vectors," were a restricted type of array: they could only be 1-dimensional, and their lower bound was fixed to be zero. This compromise allowed VB to have its arrays, and also allowed the C-derived languages to optimize the most common array case. Everyone was happy, right? ...
[Listening to: Are You Gonna Be My Girl - Jet - Get Born (03:37)]