[escepticos] Lenguajes de programación (era: No pienses en un elefante)
Luis Rodriguez
luisrodrruiz en gmail.com
Mie Ago 22 20:09:47 WEST 2012
Hola:
(Cambio el nombre del hilo porque me parece que este es un tema friki que
sólo nos interesa a unos pocos)
El 22 de agosto de 2012 20:01, José Ángel Morente
<joseangel en morente.org>escribió:
> 2012/8/22 Jose Luis VM <joseluis.vm en terra.es>:
>
> > Yo me apunto a lo de C y digo más <broma>¿existe otro lenguaje civilizado
> > para programar?</broma>
>
> Por supuesto que no. Todo lo demás son lenguajes para NO programar, es
> decir, para que el lenguaje en sí o alguna librería mágica programe
> por ti :-P
>
Bueno, no es el caso de Lisp. Aquí no hay librerías mágicas (bueno, como
en cualquier otro lenguaje) sino que es un lenguaje pensado para
especificar
algoritmos (que como dicen algunos por casualidad resultó que se podía
ejecutar en un ordenador) . Por el contrario, los lenguajes de tipo ALGOL
(como C),
fueron pensados como algo que poner encima del ensamblador pero no
demasiado
lejano a éste para que la compilación/interpretación fuera eficiente.
Yo no defiendo Lisp porque sea el lenguaje que conozco "de toda la vida".
Al contrario, he pasado muchos años programando en C/C++/java/python y
alguno más que se me olvidan, y antes yo tambien me reía de los de los
paréntesis, hasta que vi la luz y ahora sólo programo en C cuando me
apuntan
con una pistola :-)
Como dice Eric Raymond (aunque bueno, éste también dice muchas tonterías),
aprender Lisp merece la pena aunque no vayas a programar en Lisp, ya que te
hace
mejor programador (yo diría que te descubre un mundo nuevo que cambia por
completo la visión de la programación).
> Pero hoy en día con los compiladores de C que hay, no tiene mucho
> sentido el ASM salvo que quieras tener un control muy preciso a muy
> bajo nivel (por ejemplo, programar un driver), y ni así, ya que el C
> bien utilizado (no como si fuese un lenguaje de alto nivel, que es muy
> frecuente verlo) te permite optimizar tanto como en ASM.
>
Yo diría que programar directamente en ASM, salvo en un microprocesador
especializado, como el de un sistema empotrado o algo así es incluso más
ineficiente que hacerlo en C y compilarlo. Por la arquitectura de los
microprocesadores modernos (segmentados) hace falta saber como ordenar
las instrucciones (predicciones de salto en los bucles, etc.) para obtener
el máximo partido en cuanto a eficiencia. Los compiladores lo hacen ellos
solos y hacerlo a mano desde ASM me parece algo de locos.
Un saludo.
Más información sobre la lista de distribución Escepticos