Entre dire que JavaScript est plus proche de Lisp que de Java et dire que c'est un dialecte de Lisp, il y a quand-même un petit monde que je ne franchirais pas! Au-delà de la syntaxe toute différente, les différences notables sont:
La méta-programmation, où on a du côté de JavaScript des possibilités d'introspection très développées et une fonction eval (qu'on essaie de ne pas utiliser) et de celui de Lisp un système de macros très solide, avec notamment loop et do.
Des approches assez différentes pour la programmation par objets.
La portée des variables obéit à des mécanismes différents: le variable hoisting, le mot-clef this et la seule portée lexicale des variables pour JavaScript le distinguent de Lisp.
En revanche. un gros point commun de Lisp et JavaScript, est l'accent très fort mis sur les structures de données et l'interactivité, ce qui pousse assez naturellement le programmeur à écrire des fonctions très découplées des autres, très faciles à tester.
Le livre de Crockford, auteur de l'article que tu cites, est une excellente introduction à JavaScript.
[^] # Re: Lisp + Ecma
Posté par Michaël (site web personnel) . En réponse au journal C'est décidé, j'apprends Common Lisp!. Évalué à 4. Dernière modification le 14 octobre 2017 à 16:41.
Entre dire que JavaScript est plus proche de Lisp que de Java et dire que c'est un dialecte de Lisp, il y a quand-même un petit monde que je ne franchirais pas! Au-delà de la syntaxe toute différente, les différences notables sont:
La méta-programmation, où on a du côté de JavaScript des possibilités d'introspection très développées et une fonction
eval(qu'on essaie de ne pas utiliser) et de celui de Lisp un système de macros très solide, avec notammentloopetdo.Des approches assez différentes pour la programmation par objets.
La portée des variables obéit à des mécanismes différents: le variable hoisting, le mot-clef this et la seule portée lexicale des variables pour JavaScript le distinguent de Lisp.
En revanche. un gros point commun de Lisp et JavaScript, est l'accent très fort mis sur les structures de données et l'interactivité, ce qui pousse assez naturellement le programmeur à écrire des fonctions très découplées des autres, très faciles à tester.
Le livre de Crockford, auteur de l'article que tu cites, est une excellente introduction à JavaScript.