
On Sat, Jul 3, 2010 at 9:43 AM, Daniel Fischer
Andrew Coppin:
Who says they do, or should?
Don, a few emails ago.
I think you missed a small detail there.
ivan.miljenovic:
Hmm, interesting. Applicative and Traversable are two classes I've never used and don't really understand the purpose of. I have no idea what hsc2hs is. I keep hearing finger trees mentioned, but only in connection to papers that I can't access. So I guess that means that I don't count as a "knowledgable" Haskell programmer. :-(
RWH is free and online, and covers many useful things. There's no excuse :-)
Knowing about something /= knowing how to use it. I own and have read RWH, but I've never had to use hsc2hs, or Applicative, etc.
Writing libraries that bind to C is a great way to have to use a lot of hsc2hs (or c2hs), so clearly you need to contribute more libraries :-)
dons was replying to *Ivan Miljenovic* here (with a smiley to remove all doubt), he was teasing [is that the entirely correct word?] Ivan a bit.
Ohhh, so that's the quotation being discussed? I can not speak for dons, but I understood that he meant that more bindings should be contributed, really. Don't get wrong, I love Haskell-only code, but the reality is that reinventing the wheel isn't fun most of the time. For example, I have two bindings on Hackage [1,2]. We could write a 2D physics library in pure Haskell, and I think there was a project some time ago to write a 3D one, but that's a tough job. It is difficult to get right, and difficult to be fast enough to be useful. Chipmunk already exists, uses the MIT license and is heavily optimized. The optimization package would be even easier to rewrite in pure Haskell, but if you look at the API docs [3] you'll see that the C library handles a lot of corner cases and has many knobs to get the most out of the optimization proccess. In fact, the C library was written by the authors of the optimization procedure, so it probably has very few bugs. Repeating everything in Haskell would be a pain. There are many many other useful C libraries that we should have bindings to. For example, Hackage doesn't have any MPI bindings. Could we write an MPI client in Haskell? I guess so. Is it worth it? I doubt. Cheers! [1] http://hackage.haskell.org/package/Hipmunk [2] http://hackage.haskell.org/package/nonlinear-optimization [3] http://hackage.haskell.org/packages/archive/nonlinear-optimization/0.3.2/doc... -- Felipe.