Haskell Libraries Wishlist
Manuel M T Chakravarty
chak at cse.unsw.edu.au
Thu Oct 21 00:25:56 EDT 2004
On Thu, 2004-10-21 at 00:21, Olaf Chitil wrote:
> My comments on Manuel's proposal:
> >Let me make a concrete proposal for a structure for the wiki and see
> >whether we can evolve this into something everybody can agree on.
> >Libraries & tools
> >I think we should have two separate pages for libraries and tools.
> >These days there are just too many of both, so that the main effect of
> >treating them together is longer, less clear pages. Having said that,
> >we might have a top-level page which is essentially only an index for
> >both together, but then that should point to separate pages for, eg, FFI
> >tools and FFI libraries.
> There had been a separate page for libraries and another one for tools
> for some time. John and I finally merged the two pages, because the
> division proved to be hard and artificial. For many tasks there exist
> both libraries and tools. E.g. Hood is a library for debugging, Hat is a
> tool. Parser combinators are in a library, Happy is a tool. So you would
> have mostly the same categories in both the tools and the libraries
> part. Usually you search for something to solve your problem and you
> care less if it is a library or a tool. Also many tools comprise some
> libraries. E.g. QuickCheck is mostly a library. Hence I think the
> division is unnatural for Haskell that claims embedded domain specific
> languages as major application area. It is hard enough sometimes to
> distinguish between libraries&tools and applications.
I am not entirely convinced, but given that you have got previous
experience with categorising these packages, let's just go with the
combined approach as on haskell.org/libraries/ today.
> >Short descriptions versus table of OS/versions
> >Currently, haskell.org/libraries/ and hawiki differ as follows: The
> >former lists the name of each package with a hyperlink to that packages
> >web sire followed by a one paragraph description. In contrast, the wiki
> >has a table listing versions on different OSes. I think we want to
> >preserve the one paragraph description of haskell.org/libraries/, but
> >add some of the information of the table on the wiki. I agree with Olaf
> >that it is probably hard to keep the version numbers up to date, but
> >what I find very useful is to have a list of the supported OSes and also
> >the license information that the wiki provides.
> Many authors of small libraries have probably never thought of the
> license. So they should probably not be forced to list one, but it is a
> good option. For libraries the required language level (Haskell 98, ghc
> extensions, ghc&Hugs,...) might be more relevant than the OS.
Language level is certainly a good parameter. Let's make the <supported
OSes> field into a prerequisites or <supported platforms> field listing
OSes, Haskell systems, and used language extensions.
I don't agree entirely on the license bit, though. I am happy to list
libraries that don't have a license, but nobody in their right mind
would use them for any serious development, which makes them less than
useful. Anyway, instead of getting into a license discussion, let's
just say that we list the license if known or otherwise add the phrase
"license unknown". Users can then decide whether they care or not.
> >The hyperlink at the package name can either be a directly link to the
> >package web page or a link to a wiki page with more information
> >including a link to the package web page.
> Fine, although there might be a web link to the official package page
> and a Wiki link to a comments-by-the-user page.
If there is both, I would make the name of the package into a link to
the wiki page and put the text "(website)" next to the page name with a
link to the external page (the wiki will additionally put an icon next
to the link indicating it is external).
> >Page structure
> >I think we should have one wiki page for each of the following topics,
> >separating tools and libraries (modelled after haskell.org/libraries/).
> >More precisely, one wiki page for each "*" bullet point, which is turn
> >is structured as indicated by the "-" points.
> >* Program development
> > - Compiler and compilation tools
> > - Integrated Development Environments
> > - Editor support
> > - Source documentation and browsing
> > - Testing
> > - Tracing and debugging
> > - Type setting
> > - Misc
> >* Foreign language interfacing
> >* Web programming
> >* Data structures
> >* Foreign language interfacing
> >* Databases
> >* Graphics and graphical user interfaces
> > - Widget sets
> > - Graphics
> > - Graphics file formats
> >* Web programming, HTML, XML
> >* Pretty printing
> >* Music
> >* Mathematics and numerics
> >* Hardware verification
> >* Robots
> >* Misc
> >* Library collections
> >- I think "Extended Haskell" entries should be under program
> Not sure, but I agree that "Extended Haskell" is not good.
> >- I don't like "Interfaces to specific systems" as something like hMPI
> >is arguably for parallel programming and all the GUI libraries are
> >arguably also interfaces to specific systems. For similar reasons
> >"Interfaces to databases" should be under databases.
Integrating tools and libraries, let's start with the following index
(which is a variant on the current haskell.org/libraries/ index):
* Program development
- Compiler and compilation tools
- Integrated Development Environments
- Editor support
- Source documentation and browsing
- Tracing and debugging
- Type setting
* Foreign language interfacing
* Web programming, HTML, XML
* Data structures
* Graphics and graphical user interfaces
- Widget sets
- Graphics file formats
* Pretty printing
* Mathematics and numerics
* Hardware verification
* Library collections
* Toplevel index page with links to topics pages
* One page per topic as listed above
* Format of entries:
<package name as hyperlink to further info> <optional external website>
one paragraph description
<prerequisites: supported OSes & Haskell systems and required language features>
<license if know or "Unknown license">
Everybody happy with that?
Shae, given that you wrote the original wiki page, would agree that we
change it as outlined above?
More information about the Libraries