Hacker News new | past | comments | ask | show | jobs | submit login
Scheme Steering Committee Position Statement (scheme-reports.org)
39 points by fogus on Aug 21, 2009 | hide | past | favorite | 8 comments




If the charter for the "large language" was replaced with "create a Standard Library for Scheme," would it make any practical difference?

In other words, does the "large language" really require any different language features, or just the libraries that "large" Scheme implementations should implement?


From the statement it looks like they want the "large language" to standardize "the module language, exception system, s-expression grammar, etc." That would give a standard target for libraries to target, which would make it easier to write libraries and applications that are portable across different popular versions of Scheme.

Good luck, but I confidently predict failure. Lisp attracts language perfectionists, and then differing opinions among perfectionists about what is perfect results in fragmentation. People who are not language perfectionists are more likely to be satisfied with a popular language with glaring deficiencies but lots of reasonably well implemented libraries. Which in my opinion describes the comparison languages in that statement, namely Perl, Python, C, and Ruby.


Tom Lord has pointed out elsewhere that the "large" language might, for example, mandate Unicode for characters whereas the "small" language might not, just to pick one difference. Partial continuations like shift/reset can be implemented on top of call/cc but not efficiently.

More to the point, there is a small but exceedingly vocal subset of the Scheme community that hates the idea that the language should e.g. define a module system even though practically this is an absolute requirement to get any real work done. It is worth pointing out that until R6RS, which has attracted a great deal of criticism, there was no way to define user-defined types within the language. "Small Scheme" can wither and die for all I care; I want to use the language, not worship it, and so R6RS is right up my alley.


'Scheme should designate two separate but compatible languages: "small" and "large" Scheme'

Agreed.


What are the advantages? They don't cite any, but I can see two:

1. Hobbyist implementors can implement "small scheme," so "large scheme" can be expanded with more difficult-to-implement features without ruining the classic educational experience of implementing Scheme.

2. Technical purists who want to use only their favorite module system, exception system, etc. can build their systems on top of "small scheme," so they won't hold the development of "large scheme" hostage or try to fragment the "large scheme" community.

Any others?


In theory if you're running on an embedded system you can have Scheme without the libraries--much like embedded C, which was C without the standard libraries, something blessed by the standard. But the ones you cite, especially #2, strike me as the most important.


How are monolithic steering committees no better than at creating technology than centralized economies at manufacturing widgets? Why do we keep paying attention to this crap?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: