Why are there so few data structures like stacks and queues, hash tables, linked lists, etc?
And of course, ImplementationInheritance is missing (see VbClassicImplementationInheritance).
There are no primitives like stacks, queues, HashTables, or LinkedLists built into the language because VisualBasic is designed to leverage existing ComComponents to get work done.
Make sure to check out VbDotNet for details on what's planned for the next revision.
Where are the stack COM objects and Hash COM objects then? Am I missing something (Vb doesn't feel like home to me. I spend no time reading or thinking about Vb or COM and anything Microsoft outside of work)? COM objects are not great for these types of structures in my mind's thinking on the subject. That said, maybe I'll try converting StackModuleInVbClassic into a COM object and see how it works then.
The Collection class, that is built into VisualBasic, is one such example. You could easily create a CeePlusPlusComComponent that wraps up an STL vector that stores Variants to accomplish this functionality.You can also check out the "Scripting.Dictionary" (that's the ProgId) component for hash-table functionality. It is installed whenever you install WindowsScriptingHost or if you simply install the MicroSoftScriptingEngine-s.
The fact that every class instance in VB is individually reference counted is another headache; without a way to tie an instance to an owner instance, it's easy to get bogged down in circular reference problems. Some libraries expect the user to use some sort of close/destroy/dispose mechanism to ensure that circular references are broken down, but that sort of weakens the case for SmartPointers.