satvik chauhan | 15 Oct 11:20 2013
Picon

Proposal for a standard collection of algorithms/Data structures in haskell

Hi cafe,

Whenever you search for a library for doing some standard task on hackage there are lots of implementations available and some of them are poorly implemented without any thoughts given to design and speed. Most of them are left as it is without any further improvements/bug fixes.

A limited collection of data-structures and associated algorithms are available in base. It would be nice for the community to maintain a standard collection of recommended implementations (both fast and well designed) of data structure and algorithms (similar to Boost for C++). This can again be maintained and moderated by the community. All the implementation in the collection can adhere to a standard design principle and idiomatic haskell.

I would really love to hear your thoughts on this proposal.

-Satvik
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Johannes Waldmann | 15 Oct 13:55 2013
Picon

Re: Proposal for a standard collection of algorithms/Data structures in haskell

what is your proposal, exactly?

as far as collection types are concerned,
it seems to me that http://hackage.haskell.org/package/containers
is well-designed, well-documented, well-implemented, and well-maintained.

- J.W.
Bob Ippolito | 15 Oct 14:25 2013

Re: Proposal for a standard collection of algorithms/Data structures in haskell

I'm not sure I'd agree exactly that containers is well-documented. It's extremely common for beginners[1] to have unintentional space leaks in Data.Map due to the non-strict value, and the documentation doesn't say anything about this common pitfall. The only thing it says is "If you need value-strict maps, use Strict instead.", which is great if you already know what you're doing, but not so great if you don't. I don't have any problems with the implementation, design, or maintenance, but the documentation could be improved for people who are new to Haskell.

[1] I contributed the Haskell path to http://exercism.io/ and do a lot of code review there. I don't think I've ever seen someone use Data.Map correctly the first time.


On Tue, Oct 15, 2013 at 1:55 PM, Johannes Waldmann <waldmann <at> imn.htwk-leipzig.de> wrote:
what is your proposal, exactly?

as far as collection types are concerned,
it seems to me that http://hackage.haskell.org/package/containers
is well-designed, well-documented, well-implemented, and well-maintained.

- J.W.


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
satvik chauhan | 15 Oct 14:48 2013
Picon

Re: Proposal for a standard collection of algorithms/Data structures in haskell

Yes, I know containers is best in what it does but it is not very complete even if we compare it with c++ stl. Almost all the functionality of c++ stl have haskell implementation on hackage in some form or other but they lack good design and documentation and are not well maintained. I am not implying one package to do everything but more like a set of packages following a unified design with extremely well documented interface. It should be comprehensive and should support easy inclusion of new algorithms/data structures with community recommended implementations (containers can be  part of it). It should be well tested, optimized and ready to be used in production code. I have mentioned c++ stl just for reference but I am inclined more towards Boost like set of libraries. This is one place where I think haskell is lacking compared to other languages and it is one of the critical point in its wider acceptance.

-SC


On Tue, Oct 15, 2013 at 5:25 PM, Johannes Waldmann <waldmann <at> imn.htwk-leipzig.de> wrote:
what is your proposal, exactly?

as far as collection types are concerned,
it seems to me that http://hackage.haskell.org/package/containers
is well-designed, well-documented, well-implemented, and well-maintained.

- J.W.


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



--
--------------------------------------------------------------------------------------------------
Satvik Chauhan
Fourth Year Under Graduate Student
Deptt. of Computer Science and Engineering
Indian Institute of Technology Kanpur
Kanpur-208016, INDIA

--------------------------------------------------------------------------------------------------

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Johannes Waldmann | 15 Oct 15:21 2013
Picon

Re: Proposal for a standard collection of algorithms/Data structures in haskell

satvik chauhan <mystic.satvik <at> gmail.com> writes:

> I am inclined more towards Boost like set of libraries. 

For reference, http://www.boost.org/doc/libs/1_54_0/

It's not only "algorithms and data structures" -
it also contains Filesystem, System, Interprocess etc.

Perhaps "stable hackage" goes in this direction?
http://www.yesodweb.com/blog/2012/11/stable-vetted-hackage

Reading the Boost FAQ and History might prove useful,
( http://www.boost.org/users/proposal.pdf )
as perhaps the process could be emulated.

One way or the other - such a plan needs dedication, 
but also hard resources (time, money).

Looks like a task for http://industry.haskell.org/
but of course they decide where they put their money.
And they do, e.g., they sponsor Hackage(2)

- J.W.
satvik chauhan | 15 Oct 15:56 2013
Picon

Re: Proposal for a standard collection of algorithms/Data structures in haskell

Stable hackage is quiet similar but has a different philosophy of solving the dependency problems with hackage. I am not proposing to cover all the functionalities of boost but leaning towards following a similar philosophy. We could start with libraries covering functionality of c++ stl (some of them are already implemented in containers) and then see where this goes. I know it requires real hard work and dedication and thats why I raised this as a community proposal to see if people are actually interested. 

-SC


On Tue, Oct 15, 2013 at 6:51 PM, Johannes Waldmann <waldmann <at> imn.htwk-leipzig.de> wrote:
satvik chauhan <mystic.satvik <at> gmail.com> writes:

> I am inclined more towards Boost like set of libraries.

For reference, http://www.boost.org/doc/libs/1_54_0/

It's not only "algorithms and data structures" -
it also contains Filesystem, System, Interprocess etc.

Perhaps "stable hackage" goes in this direction?
http://www.yesodweb.com/blog/2012/11/stable-vetted-hackage

Reading the Boost FAQ and History might prove useful,
( http://www.boost.org/users/proposal.pdf )
as perhaps the process could be emulated.

One way or the other - such a plan needs dedication,
but also hard resources (time, money).

Looks like a task for http://industry.haskell.org/
but of course they decide where they put their money.
And they do, e.g., they sponsor Hackage(2)

- J.W.


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



--
--------------------------------------------------------------------------------------------------
Satvik Chauhan
Fourth Year Under Graduate Student
Deptt. of Computer Science and Engineering
Indian Institute of Technology Kanpur
Kanpur-208016, INDIA

--------------------------------------------------------------------------------------------------

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Gmane