ok, I want to address DC's original post, line by line
1. Arrays in UDT's
yes, this would be quite handy, and I agree. However, it is up to the creators to implement. A feature, not a limitation, I would say.
2. Return a UDT from a function
Since a UDT is global, I see no need for this. For this to work, you would also have to pass in a UDT. Which is complaint number 4. I was taught early on to not have many, if at all, globals. So, I can understand this. However, it doesn't stop the program from running. A feature, in my opinion.
3. Global vars not initialized until run :
So what? its a rule of the language. Not a big deal, in my opinion.
4. pass UDT data from an array to a function
This is the opposite of number 2. If you can't return it, surely you can't pass it. It is solved in the language by making UDTs global. Some comments in the function can instruct the user to make the type global. This is the current method to overcome this.
5. Lack of else/ifelse
` Code that _should_ work
age as integer = 10
if age = 0
print "How are you playing this game??"
else if age < 5
print "You're too young to play this!"
else if age > 4 and age < 90
print "Have fun!"
else if age > 89
print "O_O"
endif
wouldn't this work?:
select age
case < 5 : print "How are you playing this game??" : endcase
case age > 4 and age < 90 : print "Have fun!" : endcase
case age > 89 : print "O_O" : endcase
endselect
6. Inability to do complex statements on 'exitFunction'/'endFunction'
I happen to agree on this, but, this is a VERY simple workaround. Do the calc before you exit, and assign the result to the output of the function.
7. No function overloading
Far as I can tell, this is not even a feature of Visual Basic. Correct me if I am wrong.
8. Lack of option explicit
I thought this was IDE specific, not compiler specific.
9. Vectors and matrices aren't basic types
Well, I have to assume he is right here, I don't mess with these datatypes too much.
10. No references
Again, this can also be worked around, by simply making a copy of the original data in the array or UDT. However, I agree, it is a nice feature to be able to access the core data or the copy. This is one of the nice things about OOP programming.
edit:
well, actually, it can't be worked around. You can't change the source and have it update the copies in DBPro, not anyway I can think of. So, this would be nice, but, like I said, its more an OOP kind of thing, I think.
Seems to me, DC has learned the value of OOP, and, wants to apply it to procedural programming.