martes, 21 de abril de 2009

Hackers and Painters

Estuve leyendo el libro Hackers and Painters de Paul Graham, que tiene varias cosas interesantes.

El libro es básicamente un conjunto de ensayos que no tienen demasiada conexión entre sí, que tratan mayoritariamente de temas relacionados al desarrollo de software.

Dejo los links de los ensayos que me resultaron más interesantes, en el orden que aparecen en el libro, por si alguien los quiere leer:
En Beating the averages, comenta sobre los lenguajes de programación y como hay lenguajes más avanzados que otros. También comenta que para alguien acostumbrado a un determinado lenguaje, es fácil ver cuales son los lenguajes menos potentes, pero que es muy difícil distinguir cuales son los lenguajes más avanzados, porque las funcionalidades que lo hacen más avanzado resultan desconocidas.

En Revenge of the nerds, dice:
We know that Java must be pretty good, because it is the cool, new programming language. Or is it? If you look at the world of programming languages from a distance, it looks like Java is the latest thing. (From far enough away, all you can see is the large, flashing billboard paid for by Sun.) But if you look at this world up close, you find that there are degrees of coolness. Within the hacker subculture, there is another language called Perl that is considered a lot cooler than Java. Slashdot, for example, is generated by Perl. I don't think you would find those guys using Java Server Pages. But there is another, newer language, called Python, whose users tend to look down on Perl, and more waiting in the wings.

If you look at these languages in order, Java, Perl, Python, you notice an interesting pattern. At least, you notice this pattern if you are a Lisp hacker. Each one is progressively more like Lisp. Python copies even features that many Lisp hackers consider to be mistakes. You could translate simple Lisp programs into Python line for line. It's 2002, and programming languages have almost caught up with 1958.
En el libro (no en el ensayo que está en internet de donde copié el texto) menciona también a Ruby como el siguiente paso entre Python y Lisp.

Entonces... ¿Lisp? ¿En serio? ¿No era un lenguaje funcional? ¿Alguien usa Lisp para hacer cosas "en serio"? Parece que sí.

En la facultad hice un curso de introducción a la programación funcional, que trabajábamos con Haskel. Como cultura general me pareció interesante, pero no parecía algo demasiado práctico...

Así que habrá que ver un poco que es Lisp y para que sirve. Si alguien tiene lectura para recomendar, se agradece. A Perl, Python y Ruby también les quisiera entrar, tendría que tener días más largos...

2 comentarios:

  1. Te recomiendo leer el libro Structure and Interpretation of Computer Programs by Abelson and Sussman, el libro del MIT considerado como mitico.
    Es un libro que muchisimos libros toman como cita y referencia.

    Incluso publicaron las clases de los autores sobre el curso del mismo nombre dado a personal de HP en los 80's. Si buscas las palabras SICP en google encontraras bastantes datos del tema. Imperdible para las personas que buscan entender realmente las ciencias de la computacion ( o arte? )

    ResponderEliminar
  2. kb, gracias por el dato, trataré de conseguirlo.

    ResponderEliminar