Full name: Peter Bex Location: The Netherlands
Statement of interest: Ever since I discovered Scheme some 10 years ago I've been using it. I've written about it, promoted it, used it professionally and used it for teaching OOP concepts to university students. All the free software I write is in Scheme. I'm currently a member of the CHICKEN Team, which collectively maintains the CHICKEN Scheme compiler and associated project. I'm the author and maintainer of several extension libraries for CHICKEN. I'm a contributor to Alex Shinn's portable "Irregex" library and responsible for maintaining its integration in CHICKEN. Finally, I've participated in several R7RS discussions on the scheme-reports mailing list. A few of my suggestions have made their way into the report. I didn't participate in the R6RS discussions or voting because at the time I didn't feel my knowledge and use of Scheme was at a level I could say anything about it. The ratification of R6RS made me sad to see my favorite elegant little language go down the drain. Vote: yes Rationale: I believe R5RS is the best Scheme standard so far, including this draft. There are few extensions to R5RS which are widely supported, and some that are remain highly controversial, including most of R6RS. This has put the R7RS committee in the unfortunate position of having to "invent" some new, *non-controversial* extensions to the language in order to force the language to become more conducive to sharing code. This is an impossible task and in my opinion, the committee performed an admirable job at it: It managed to pick just those few things from R6RS which seem to be really neccessary for code sharing, and distilled it down into a more minimal specification worthy of bearing the name "Scheme". There are some problems with the draft: Adding Unicode is perhaps too big of a change (but at least it's optional), and the way exceptions integrate with the rest of the language still leaves a lot to be desired, but this spec is at least more compact than R6RS exceptions. The "full word" syntax of booleans is totally gratuitous, the "#|...|#" comment syntax unsightly and I think "get-output-{string,bytevector}" are unneccessary as well as "write{,-simple,-shared}", which are confusing to boot. I somehow overlooked the addition of "read-line", which I think might be a bad idea considering it does not support a limit of how much to read (allowing user input to cause an out of memory situation, leading to denial of service). Luckily, a limit as optional second argument is a pretty straightforward extension which my favorite Scheme already supports. I'm ambivalent about bytevectors, binary ports and libraries, but at least the way they are embedded in the language seems less of a sprawling mess than in R6RS. Despite these problems, there are also many good things: the simplification of numerical syntax and the addition of "quoted" syntax for symbols are very welcome improvements. These address long-standing warts in the syntactic layer of Scheme. I'm also happy to see SRFI string ports standardized. It's nice that case-sensitivity was "backported" from R6RS, but "#!fold-{no-}case" is a bit ugly. The "#;" comment syntax is fantastic and I'm glad it's added. I'm excited about the inclusion of parameters and a *simple* record type system, as it harmonizes the language by exposing concepts that were previously not accessible to users. This increases the language's expressiveness and power, and embraces what Scheme is all about. Considering the controversial status of syntax-case, it was a wise decision to stay away from the mess that is syntactic extension, simply keeping R5RS' syntax-rules and adding a few well-supported extensions. In closing, I think this draft has some good and some bad parts but overall, the good parts far outweigh the bad parts. The language is still small and elegant and fits in my head (but barely): this is most important to me. Even though most of the newly invented extensions are not particularly elegant, some of them are neccessary for making code sharing much easier and will thereby hopefully bring together a fragmented community some more. This means it satisfies the goals put forth by the charter and hopefully paves the way for an even better R8RS. _______________________________________________ Scheme-reports mailing list Scheme-reports@scheme-reports.org http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports