A New Vision for Better Scheme

I have contemplated Better Scheme's advantages and disadvantages. The question is what place does Better Scheme have in the world of programming languages? It is too beautiful, distinctive and powerful to be left unlearned and unused. I once thought it should simply stand as some language which people learn from, though I am not big on languages designed for teaching. I now think that Scheme's strengths in powerful expressiveness and dynamic behavior make it a good candidate for a scripting language. Sure, not a scripting language like any other in the world. It is a small simple language compared to most. However, it is very complete. No one would ever be frustrated by their inability to script some complex action. Of course it does require a mental adjusting to and may not be appropriate for very entry level scripting.

To fit with this new view of Better Scheme I have removed lazy evaluation in part because it would not interact well with other languages and side effects, both necessary components of scripting languages. Note that although I listed side-effects as a reason to remove lazy evaluation I do not feel that Better Scheme should in general be used in a procedural/object-oriented way except as required to interface to other languages.

To support this new role Better Scheme will require a larger standard library. Thus this is being added as a section in the Better Scheme specification.

Finally, to go with this new vision I am pushing for the development of an extension of Better Scheme to support object -oriented programming in a flexible and dynamic way consistent with Better Scheme and the notion of objects as function environments.



jwalker@cs.oberlin.edu