108 votes

En quoi Lisp est-il si génial?

Je ne connais pas assez Lisp pour dire si c'est bon ou mauvais. Il semble que tout le monde qui a utilisé Lisp adore ce logiciel, mais les langues les plus populaires de nos jours sont issues du C.

Qu'est-ce qui rend Lisp si génial et pourquoi ne l'utilise-t-on pas davantage? Y a-t-il quelque chose de tout à fait négatif dans Lisp (autre que la quantité incessante de parenthèses)?

72voto

Josh Lee Points 53741

"Lisp est programmable en langage de programmation."
- Jean Foderaro, CACM, septembre 1991

Voici mon avis:

Sur la surface, Lisp est un gentil, simple langage de programmation fonctionnel. Il n'y a presque pas de syntaxe, et toutes les pièces s'emboîtent dans la logique des moyens.

Si vous creusez un peu plus profond, lire SICP, et écrire une metacircular évaluateur, vous découvrez deux choses: l'Une, l'ensemble de l'interprète (avec juste un peu de primitives) est à peine une page de code, et de deux, la relation entre le code et les données permet élégant techniques de programmation.

Une fois que vous avez entièrement absorbé cela, il se sent comme les autres langues sont fixés dans la pierre quand elles vous permettent seulement de dire quelques choses. Lisp peut construire toute abstraction à tous si vous pouvez définir la syntaxe et la sémantique.

Copié à partir d' un double

72voto

Daniel Earwicker Points 63298

Lisp est bon parce qu’il a une syntaxe très minimale, simple et régulière.

Lisp est mauvais parce qu’il a une syntaxe très minimale, simple et régulière.

57voto

rickmode Points 79

Lisp est le Chuck Norris de langages de programmation.

Lisp est le bar d'autres langues sont mesurés par rapport à.

Sachant Lisp montre développeur de l'illumination.

J'ai entendu parler de 3 faiblesses (et de leurs contre-arguments):

  1. Typage dynamique. Il y a un argument pour les langages statiquement typés y gravitent autour de l'donnant le compilateur assez d'informations pour attraper une certaine classe d'erreurs, de sorte qu'ils ne se produisent pas au moment de l'exécution. Mais vous avez encore besoin de tester. Cet article plaide pour typage dynamique avec plus de tests: Typage Fort vs Forte de Test.

  2. Difficile à ramasser. Il y a en fait deux parties: l'apprentissage et les outils. Lisp faut un certain effort pour vraiment "obtenir". Il en vaut la peine. Apprentissage du Lisp va vraiment faire de vous un meilleur programmeur dans d'autres langues. Par exemple, une fois que vous avez vraiment "obtenir" des fermetures, vous l'aurez compris, Java interne des classes. Et une fois que vous "obtenez" de première classe de fonctions, vous serez déprimé à chaque fois que vous utilisez une langue sans eux. J'ai lu Le Petit Intrigant et je suis de lecture Pratique Common Lisp, qui sont tous deux excellents. Prochaine, ce sont les outils. Je suis sur un Mac, j'ai donc opté Aquamacs Emacs (en fait Emacs vivable pour un novice) et de l'Acier de la Banque Common Lisp (SBCL).

  3. Le manque de bibliothèques. Je ne peux pas dire pour sûr encore, mais j'en doute. Pour la construction de sites web, il ressemble Hunchentoot et d'Éléphants de fournir un bon ensemble d'outils. Mais vraiment je ne vois pas Lispers à se plaindre du manque de bibliothèques (peut-être parce que Lisp est tellement puissant qu'ils ne sont pas nécessaires?).

23voto

Paolo Points 11860

"Tout programme C ou Fortran suffisamment compliqué contient une implémentation lente ad hoc, spécifiée de manière informelle, encombrée de bogues, de la moitié de Common Lisp."

Dixième règle de Greenspun

16voto

Greg Hewgill Points 356191

Voici quelques liens utiles:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X