[Haskell-cafe] Graphics.Drawing

Rogan Creswick creswick at gmail.com
Mon Sep 6 16:30:17 EDT 2010


On Mon, Sep 6, 2010 at 5:29 AM, Ivan Lazar Miljenovic
<ivan.miljenovic at gmail.com> wrote:
> On 6 September 2010 21:57, han <e at xtendo.org> 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


More information about the Haskell-Cafe mailing list