Monday, August 24, 2009

A Solution To Programming Language Growth - Cut The Baby In Half

The folks in charge of the Scheme standardization process have a real dilemma. On one hand, they have a group of users who want the Scheme language to stay tiny. On the other hand, they have another group of users who want Scheme to be more portable and robust for the production programmer. These groups expect completely different things out of a language standard.

The attempt to create a single standard to please both these parties resulted in R6RS - which left people ranging from disappointed to down right mad.

I've actually made my suggestion on how to tackle this for the next version.

Today, I read the position statement from the standards steering committee, and was quite impressed with their solution:

We believe the diversity of constituencies justifies the design of two separate but compatible languages, which we will (for now) call "small" and "large" Scheme.
Small Scheme: ...Think "IEEE/R5RS brought up to the current date."
Large Scheme: ...Think "R6RS with a happier outcome."

There's a 90% supermajority required to ratify the small scheme standard, and a 75% supermajority required to ratify large scheme.

Upon first glance, I think this is really a brilliant solution. To pretend like these legitimate, diametrically opposed, constituencies doesn't exist is to put one's head in the sand. That won't fix anything. But, accepting the situation, and making the best of it, seems quite smart.

I'll be anxious to see how they actually try to pull this off.

No comments:

Post a Comment