Archivos para Scheme

R6RS vs. R5RS o cómo evolucionar y seguir siendo igual…

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

Leer el resto de esta entrada »

Dejar un comentario

Segundas experiencias con Scheme

Esto se está poniendo interesante. Acabo de enterarme que publicaron la nueva definición de Scheme, la R6RS, y por supuesto, hay controversia.

Por esas cosas de la vida, terminé en el blog de Arto Bendiken, que publicó un par de artículos muy interesante, uno en contra del R6RS, y otro contando sus experiencias con el acercamiento al mundo LISP. Coincido con bastante de lo que dijo en el último artículo, pero rescato dos observaciones a las que yo también llegué por mis propios medios:

  • El camino a la iluminación está plagado de irritantes y superfluos paréntesis. Pero vale la pena el esfuerzo.
  • CommonLisp es anacrónico. Y Scheme es tan minimalista que es poco práctico en más de un caso.

En conclusión.LISP te abre la cabeza. Pero a nivel abstracto. Porque en el mundo real te enfrentas con diferencias en cuanto a la implementación, los estándares, la idoneidad o existencia de librerías, y por supuesto, acostumbrarse a esos irritantes pero extremadamente útiles paréntesis.

Sin embargo prosigo en el camino, porque aunque al principio parezca costoso, conozco que existe un más allá que me ofrece mejores posibilidades que los supuestos “lenguajes de alto nivel” que el mercado me ha dicho que tengo que usar.

Dejar un comentario

Primeras experiencias con Scheme

Luego de mucho investigar y probar con diferentes lenguajes me aboqué a la tarea de aprender Scheme por las siguientes razones

Investigué, bajé tutoriales, libros, leí código… en fin, lo usual para cuando uno debe aprender solo. Qué es lo que me quedó de la última semana?

  • Muy simple. Me leí el R5RS en un día, y lo mejor es que se entiende.
  • Muy áspero. Me llevó varios intentos implementar una función map() por mi cuenta. Fortalece el carácter :)
  • Muy abandonado a su suerte. Carencia de librerías fundamentales para que sea un lenguaje mainstream. Todo está para ser implementado. Por suerte hay gente que se dedica a implementar cosas. Por ejemplo, la maravillosa librería SSAX.
  • Muy prometedor. Tiene un potencial increíble. Lástima que sea tan … Scheme :)

Los seguiré manteniendo al tanto de mis “descubrimientos”.

Dejar un comentario