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.
> >
> >Tools:
> >* 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
> >
> >Libraries:
> >* 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
> >
> >Remarks:
> >- I think "Extended Haskell" entries should be under program
> >development.
> >  
> >
> 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.
> >  
> >
> Fine.

Integrating tools and libraries, let's start with the following index
(which is a variant on the current haskell.org/libraries/ index):

Tools:
* 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
  - Preprocessors
  - Libraries
* Web programming, HTML, XML
* Data structures
* Databases
* Graphics and graphical user interfaces
  - Widget sets
  - Graphics
  - Graphics file formats
* Pretty printing
* Music
* Mathematics and numerics
* Hardware verification
* Robots
* Misc
* Library collections

New Summary
~~~~~~~~~~~

* 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?

Manuel




More information about the Libraries mailing list