
On Mon, Sep 6, 2010 at 5:29 AM, Ivan Lazar Miljenovic
On 6 September 2010 21:57, han
wrote: So the question is: Do you agree that "Graphics.Rendering.OpenGL" actually should have been "Graphics.OpenGL" (or just OpenGL) for wieldiness?
I think Graphics.OpenGL would have sufficed, unless there was sufficient reason to want to group it with other rendering-specific modules.
I'm relatively new to the Haskell community, and one thing that's bugged me a bit is that there doesn't seem to be a convention (aside from common sense) for segmenting the module namespace as there is with Java (my other primary language). If you're not familiar with Java's conventions: Each package producer is encouraged to prefix all their released packages with a reversed dns name (more or less, I don't recall the exact term). For example, if Galois were to release a Java OpenGL package, it would be named something like com.galois.graphics.opengl. This makes it fairly easy to differentiate between different implementations of similar things -- or just to reduce namespace collisions. This comes at the expense of typing a bit more, but no one particularly cares in the java community because the IDEs take care of that. Anyway, I'm curious how module namespace collisions/pollution will be handled in Haskell over the next 5-10 years. Package hiding works in some cases, but it seems like that will fail if you ever need to use capabilities from packages that conflict within the same project. Is this actually a problem, or am I worried about nothing? --Rogan