As a two-year smalltalker recently switched to .NET I
could ony confirm how much pain is it to program, after
Smalltalk. You can add several items to an ArrayList
with AddRange but you can't remove several items from it
with RemoveRange. You don't have any Set collection but
you have three slightly different Dictionaries. There is
even a collection that isn't marked as implementing
ICollection (while really implementing all its members)
- StringDictionary. And there are collections that don't
implement some methods of IList they formally
"implement" (f.e. arrays don't
implement Add but are IList).
The whole namespace system.collections is just plain
stupid or at least confusing.
Oh, I concur!
Off the top of my head...
- Remove silently returns if the member is not present,
but does not bother to tell you (by return value) if the
element was found
- IList is not a "list" but an
indexable collection
- No linked list, lack of many "basic"
collection types
I actually wrote down a series of these, and sent them
to various .NET team bloggers, don't know if they cared
or maybe corrected any of the evils in the new generic
collections.