Phango - questions

darrylb noemail at example.com
Mon Nov 26 13:35:44 PST 2007


David Wilson Wrote:
> I doubt this has anything to do with number of characters typed, at
> least not in my case. My problem with deep nestings is that I simply
> do not remember them. When you have on average a single word per
> module ala. Python or Phobos, remembering where a class lives involves
> recalling a single english-sounding word, which my brain is
> excellently geared for.
> 
> There are variations of this theme, but that is basically it. I know
> that any filesystem functions in Phobos lives in std.path, std.file,
> std.stream, std.stdio. If I had to guess the same about Tango, I might
> go searching the docs for words like "conduit" which bare no
> resemblance to what I'm actually trying to achieve.
> 
> Just suggesting that for some people, this issue has more substance to
> it than merely a matter of style.

Ok, I hear what you're saying, but I think it becomes much less relevant as the library grows. Memorizing a list of 10 items isn't so bad, but when that grows to 100, or 1000, there needs to be some sort of mechanism in place to make coherant sense of said items. That's mostly what the module pathing is for. So that, when you aren't sure exactly what you want, but you know that you need some sort of X that is itself some sort of Y, that you are likely to find it in library.Y.X, which you can look in (and look for the documentation in) rather than some libraryYX module that's mixed in with 900 others.

For smaller libs that you are mostly going to keep in your head, then maybe a flatter structure would work. But I think it's forward-thinking of a lib that will become larger to be slighly extended. And the cluster example is very extreme, for the most part, we're talking about adding one layer, in rare cases, possibly two. I think that's a very acceptable trade off for being able to keep some semblance of sanity via logical separations.

I suppose perhaps on another level, this discussion is more akin to, the more complex things get, the more complex they are. :). The (mildly) extended structure is in place simply to manage complexity, If it helps there, and the adversion to typing a few extra characters is only a psychological block to a solution for a real problem, while I agree that the imaginary issue can entirely be present (for some more than others), I don't think it should trump an otherwise fine solution to a very real problem (managing present and future complexity).

I mean, I don't like dialing area codes for long distance either, but hey, it sure helps to manage the complexity of phone numbers, and my complaints about hitting a few extra buttons to call someplace are far outweighed by other benefits. :). Ok, it's a questionable analogy, but I just thought I'd throw it in anyway :). I still think 'tango.collection' versus 'tango.util.collection' is quite nitpicky.



More information about the Digitalmars-d mailing list