Posted
by
timothy
from the boy-are-my-lips-tired dept.
prostoalex writes "Scott Mitchell published his rather extensive examination of data structures in C# 2.0 (parts 1, 2, 3, 4, 5 and 6 add up to more than a hundred printed pages)."
This discussion has been archived.
No new comments can be posted.
It's just a body count issue. If Microsoft had twice the time or twice the number of people, C# 2.0 would have had twice the number of new features. Lots of good stuff got jettisoned. Everywhere you look on blogs.msdn.com, folks are talking about what they woulda/coulda/shoulda done with more time.
I'm hardly a Microsoft defender, but a fibonacci heap is anything but a common data structure. You'd most likely use one as a priority queue where extract-mins and decrease-keys are extremely common, but even then, lots of people still avoid them.
On the other hand, AVL trees get used all over the place (red-black trees being a typical backing data structure for an ordered map).
Having read pages 1 and 6, I do not read anything beyond the introductionary level. It does not even seem to be rather C# specific for that matter. This is all stuff that people with a University degree in computer science should know by heart. The fact many of the readers rank it with a 9, says more about the readers than the quality of the page. People who do not understand the difference between a set and a list, should not even be allowed to be involved in any part of the development cycle of an arbitrary information system or computer application.
Is that really a problem? Not everyone has a university degree. And this is available online so you can look at it whenever you want.
"People who do not understand the difference between a set and a list, should not even be allowed to be involved in any part of the development cycle of an arbitrary information system or computer application."
Gotta start somewhere.
What about the kids just headed to university who want a quick start? What about people just interested in these like project managers who ar
Yeah, but that's the whole point, the article is about C#. I can do all these data structures in C(++), but I've no idea how they are done in.NET/C#. Same goes a lot of other people with CS degrees. Most universites teach C++ or Java their primary language.
"Too, there are unique challenges with representing and operating upon infinite sets, because an infinite set's contents cannot be completely stored in a data structure or enumerated."
In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.
Still no sign of anything resembling a set/multiset, or a tree structure, let alone something like a heap. The documentation is equally sad, making no mention of big-O complexity. The comparison with Java, both in content and documentation, is depressing.
I like C# as a language, but the CS illiteracy of the libraries is annoying and inconvenient. The lack of a concept of a tree means that there's no automatic way to show an XML DOM tree with a TreeControl. They both have independently-developed, incompatible, although largely equivalent, tree representations.
Also, note that the SortedList class does not implement the IList interface, and none of the shipped System.Collections classes implement their own CollectionBase.
In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.
Word. In the meantime, we're stuck w/ NCollection [tigris.org].
unfortunately, NCollection is vaporware.
another good source for C#v2 collections is Wintellect's Power Collections [wintellect.com] which seems to provide a good deal of what's missing.
Still no sign of anything resembling a set/multiset, or a tree structure, let alone something like a heap. The documentation is equally sad, making no mention of big-O complexity.
Maybe I was reading the wrong set of articles, but I could have sworn that he specificially mentioned multiple tree structures, sets, and graphs as new data structures that were being added in.NET 2.0. And there was plenty of mention of big-O in the discussion of the performance of various data structures.
most peeps have missed the point of the articles: Common data structures added in C#/.NET 2.0.
The current framework (1.0 and 1.1) don't come with any standard data structures apart from ArrayList and Collections. 2.0 is the first version of the framework to "feature" these common structures. These articles are a good guide to the new additions. They also show generics in action. Which is also a new addition. Finally, there are some *practical* examples of how to use the structures in day to day scenarios.
Certainly, no ground breaking theory here; then again that wasn't the point.
Kinda off topic, but does anyone know if there are going to be parameterized properties in C# 2.0 (besides the default property, of course)? I didn't see anything overtly mentioned in this article about them (maybe I missed something). This lacking feature is the single most annoying thing (for me anyway) of C#.
Re:Yeah, good luck with that! (Score:2)
It's there:
http://slashdot.org/index.pl?section=developers [slashdot.org]
No Fibonacci Heap? (Score:2, Insightful)
Re:No Fibonacci Heap? (Score:4, Interesting)
Re:No Fibonacci Heap? (Score:1, Funny)
Maybe they should have spent more time designing and coding instead of blogging.
Re:No Fibonacci Heap? (Score:5, Insightful)
On the other hand, AVL trees get used all over the place (red-black trees being a typical backing data structure for an ordered map).
Kind of introductionary level (Score:5, Insightful)
Re:Kind of introductionary level (Score:1, Insightful)
"People who do not understand the difference between a set and a list, should not even be allowed to be involved in any part of the development cycle of an arbitrary information system or computer application."
Gotta start somewhere.
What about the kids just headed to university who want a quick start? What about people just interested in these like project managers who ar
Re:Kind of introductionary level (Score:1, Offtopic)
Re:Kind of introductionary level (Score:2)
Re:Kind of introductionary level (Score:1)
Never trust a Gorean to design your data structure (Score:2)
"Too, there are unique challenges with representing and operating upon infinite sets, because an infinite set's contents cannot be completely stored in a data structure or enumerated."
Compare eg Houseplants of Gor [sexuality.org].
(And yes, it's not terrifically advanced, and disappointingly free of C#-specific enlightenment...)
maddening (Score:5, Interesting)
In the time it took this guy to write the article, perhaps he could have added these data structures to C#/.NET's laughably impoverished System.Collections class. The big thing in the new, upcoming version 2.0 is that they're introducing, wait for it, linked lists.
Still no sign of anything resembling a set/multiset, or a tree structure, let alone something like a heap. The documentation is equally sad, making no mention of big-O complexity. The comparison with Java, both in content and documentation, is depressing.
I like C# as a language, but the CS illiteracy of the libraries is annoying and inconvenient. The lack of a concept of a tree means that there's no automatic way to show an XML DOM tree with a TreeControl. They both have independently-developed, incompatible, although largely equivalent, tree representations.
Also, note that the SortedList class does not implement the IList interface, and none of the shipped System.Collections classes implement their own CollectionBase.
Re:maddening (Score:2, Informative)
LinkedList
Queue
SortedList
Stack
TreeDicti
in Systems.Collections.Generic - not extensive perhaps - but a little more than your post implies.
Re:maddening (Score:2)
Re:maddening (Score:3, Informative)
Re:maddening (Score:2)
Huh? (Score:2)
Maybe I was reading the wrong set of articles, but I could have sworn that he specificially mentioned multiple tree structures, sets, and graphs as new data structures that were being added in .NET 2.0. And there was plenty of mention of big-O in the discussion of the performance of various data structures.
So far (Score:5, Informative)
The current framework (1.0 and 1.1) don't come with any standard data structures apart from ArrayList and Collections. 2.0 is the first version of the framework to "feature" these common structures. These articles are a good guide to the new additions. They also show generics in action. Which is also a new addition.
Finally, there are some *practical* examples of how to use the structures in day to day scenarios.
Certainly, no ground breaking theory here; then again that wasn't the point.
Over a hundred pages? (Score:1, Funny)
Parameterized properties? (Score:2)