Estuve leyendo la R6RS, y como sarcásticamente señaló el amigo Arto Bendiken en su artículo, la nueva definición aparenta contradecir la frase misma que le da inicio.
“Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.”
Los lenguajes de programación no deberían ser diseñados apilando característica sobre característica, sino quitando las debilidades y restricciones que hacen a las características adicionales parecer necesarias.
La nueva definición “creció” un 60% con respecto a su versión anterior. La generalidad de los cambios apunta a combatir o mitigar los “puntos débiles” de Scheme que eran
- carencia de librerías
- necesidad del programador de “reinventar la rueda” como bien le pareciera (o entender como otros pensaron la rueda)
- carencia de un sistema evolucionado de módulos y paquetes como en otros lenguajes más conocidos
- mejor (más amigable) manejo de las excepciones y errores