I want to suggest making a Guile interface for some of our code. I know this would be quite a change, so let me explain the story.
I attended the FSF annual meeting recently. At the dinner after the first day, I spoke to a couple of developers about scheme and Guile and functional programming. I talked about the problem I had making large data structures to accumulate and store sufficient statistics (like the covariance matrix). We all agreed that a Lisp-ish language would be better suited to addressing such tasks. I think both Ben and John would agree in principal. I would not want to rely on Guile for numerical code, but it would be nice for handling and translating users' data from the "spreadsheet" view down to a lower level mathematical library. One person in the conversation said that we, meaning all programmers of free software, have not fully (or even barely) exploited some of the developments in CS of the 1960's and 1970's. He suggested that we should be the ones to do so. I don't think anyone on this list would say that Guile is a bad idea. The reasons we don't do it are pragmatic: We would have to publish Guile bindings for, say, GSL. I mentioned this to one of the developers, and he said that isn't hard now, and it will be even easier soon (in a few months). Another reason not to start using Guile is that we would have to rewrite much of our code. But could could we do this slowly? What if we had a few Guile bindings now, then started using them for new features, and slowly change older code gradually? Another reason not to use Guile is that it would be another dependency. This is true, but remember that Guile is standard on GNU/Linux systems, and it can be installed on other systems as well. So it's a dependency that would be easy to meet. Another reason not to use Guile is that it would take time away from other tasks. I think it would do so initially, but it would pay off in the long run by letting us write better code more quickly, especially code involving large, complex data structures. If you agree, then I'm willing to help out however I can. I don't know how to add Guile support, and it has been a while since I've written in Guile or Lisp, but I am willing to start using any Guile bindings for GSL or other libs, and to test and debug as much as I can. I've gotten to the point where the code I write just looks too cumbersome in C, and I feel that programming would proceed much faster using Guile. One criticism of this point is that my cumbersome data structures and code are a result of my own bad coding, not the language. That may be, but I have written complex data structures and algorithms in Lisp without as much trouble as with the those I'm writing now in C. I think a lot of programmers have had similar experience with Lisp-ish languages. Other developers could enumerate most of the benefits of Guile better than I could, so I won't belabor them here. But there is one other benefit we may find by using Guile, at least a little: More developers might take interest in coding for PSPP. Thoughts? -Jason _______________________________________________ pspp-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/pspp-dev
