Linked by Thom Holwerda on Mon 13th Dec 2010 19:27 UTC, submitted by lemur2
Mono Project For the most time, I've been firmly in the largest camp when it comes to the Mono debate - the 'I don't care'-camp. With patent lawsuits being hotter than Lady Gaga right now, that changed. For good reason, so it seems; while firmly in the 'ZOMG-MICROSOFT-IS-T3H-EVILL!1!!ONE!'-camp, investigated the five most popular Mono applications, and the conclusion is clear: all of them implement a lot of namespaces which are not covered by Microsoft's community promise thing.
Thread beginning with comment 453423
To read all comments associated with this story, please click here.
Some things to consider
by isaks on Tue 14th Dec 2010 07:48 UTC
Member since:

It seems nobody has pointed out the obvious that a line 'using Some.Namespace' has nothing to do with whether or not functionality from that namespace is used or not.

Ok, 'nothing' is a bit harsh, but consider:
1. 'using Foo.Bar' is only a shorthand to not have to type the full qualifyer each time (eg 'new Foo.Bar.Baz()' vs. just 'new Baz()')
2. IDE's tend to give you the boilerplate using-statements at the top when you create a new class leaving you with a few unused 'using'-statements at the top.

Reply Score: 2

RE: Some things to consider
by ushimitsudoki on Tue 14th Dec 2010 08:23 in reply to "Some things to consider"
ushimitsudoki Member since:

1. Could you explain how "using Foo.Bar" followed by later "Method" (from Foo.Bar) to avoid actually typing "Foo.Bar.Method" is *not* using functionality from "Foo.Bar"?

It seems to me to be the very definition of using functionality from "Foo.Bar".

2. I'm not familar with any IDE that includes a bunch of boilerplate includes without the programmer setting it up to do so.

I suppose the all the developers for all the applications could be so sloppy that they are just needlessly including libraries they don't need, expect if you actually look thorough the code, you'll see they are being used, so that doesn't hold up, either.

Seriously, it's *Open Source*. Why speculate? Read the code for yourself.

Reply Parent Score: 1

RE[2]: Some things to consider
by isaks on Tue 14th Dec 2010 10:01 in reply to "RE: Some things to consider"
isaks Member since:

My point is that 'user Some.Namespace' adds *nothing* to your application. It's merely a convenience to save keystrokes later. It does *not* add a reference to any assembly or include any code what so ever.

But, as you point out in #1:
If you are doing 'using Foo' and then call method 'Bar.Baz()' in the foo namespace then obviously you are using functionality from Foo.Bar. But that wasn't what the original article searched for. He only scanned for 'using' statements.

Regarding #2. Visual Studio does, and my guess is that MonoDevelop does as well. In most cases that's what you want anyway and since it doesn't do any harm (except perhaps naming collisions when you start using more namespaces) it doesn't ask you beforehand.

Look, I'm not arguing that these apps aren't using these "tainted" namespaces, I'm just questioning the methods used to come to that conclusion.

Reply Parent Score: 1