Je programme depuis des années, en parcourant diverses versions de Blub (BASIC, Assembler, C, C ++, Visual Basic, Java, Ruby sans ordre particulier de "Blub-ness") et j'aimerais apprendre Zézayer. Cependant, j'ai beaucoup d'intertia avec peu de temps (famille, travail à temps plein, etc.) et un bonheur confortable avec mon Blub actuel (Java).
Donc ma question est la suivante, étant donné que je suis quelqu'un qui aimerait vraiment apprendre Lisp, quelles seraient les premières étapes pour obtenir un bon résultat démontrant la supériorité de Lisp dans le développement Web ? Peut-être que je manque le point, mais c'est comme ça que je verrais initialement l'application de mes connaissances Lisp.
Je pense "utilise le dialecte A, utilise l'IDE B, suis les instructions de la page C, interroge ton bon sens après que des monades aient utilisé le conseiller D". J'aimerais simplement savoir ce que les gens ici considèrent comme un ensemble optimal de valeurs pour A, B, C et peut-être D. De même qu'une discussion sur le mérite relatif d'apprendre un langage aussi puissant par opposition à, par exemple, devenir un Rails expert.
Juste pour ajouter des détails, je développerai sur MacOS (ou une machine virtuelle Linux) - aucune approche basée sur Windows ne sera nécessaire, merci.
Notes pour ceux qui parcourent juste par
Je vais laisser cette question ouverte pendant un moment afin de pouvoir commenter les suggestions après les avoir explorées. Si vous passez par là et sentez que vous avez quelque chose à ajouter, veuillez le faire. Je serais ravi de recevoir vos commentaires.
Liens intéressants
En supposant que vous arriviez chez Lisp à partir d'un environnement Java, cet ensemble de liens vous permettra de démarrer rapidement.
- Utilisation du plugin La Clojure d'Intellij pour intégrer Lisp ( vidéocast )
- Lisp pour le Web
- Version en ligne de Practical Common Lisp (a / s Frank Shearar)
- Land of Lisp est un
(+ (+ very quirky) game based)
moyen d'entrer , mais rend le tout si simple - Installez Clojure et Sublime 2 sur MacOS, un excellent guide de démarrage
- Regardez le livre Clojure in Action . Travaillé pour moi
la source
Réponses:
Ceci va probablement à l’encontre des recommandations de la plupart des gens, mais évitez d’abord Emacs, à moins que vous ne le sachiez déjà. Surtout si vous êtes habitué aux éditeurs / éditeurs modernes.
Je parle d'expérience; J'ai essayé de commencer avec Emacs, mais le fait d'apprendre le langage ET l'éditeur en même temps m'a beaucoup frustré (d'autant plus qu'Emacs est si différent des autres outils). J'ai finalement commencé à utiliser PLT Scheme (maintenant Racket), qui est livré avec un IDE multiplate-forme relativement simple, un référentiel de paquets centralisé et des documents fabuleux (y compris un didacticiel intermédiaire spécifiquement conçu pour le développement Web ). Après avoir maîtrisé Lisp, je suis retourné à Emacs, en prenant EL / CL via Practical Common Lisp et Xah's Elisp Guide.. De manière générale, à mon avis, vous devez connaître un Lisp avant de pouvoir utiliser Emacs de manière efficace, et vous devez connaître Emacs pour être très efficace avec CL / Elisp. Cela signifie que vous pouvez soit choisir Scheme, soit apprendre Common Lisp par l’intermédiaire d’un autre éditeur (LispWorks personnel, probablement).
Si vous connaissez déjà Emacs, alors oui, Elisp est l'étape naturelle (bien que la façon dont vous apprécierez l'utilisation d'Emacs sans savoir qu'Elisp est au-dessus de moi me dépasse).
YMMV bien sûr, c'est ce que j'ai trouvé aidé.
Puisque votre blub actuel est Java, vous pourriez probablement faire beaucoup de kilométrage avec Clojure , Armed Bear ou Kawa . Je n'ai jamais essayé moi-même, je ne suis pas un gars de Java, mais Clojure est particulièrement recommandé par les autres Lispers que je connais. Il semble que la possibilité de conserver votre VM et votre IDE actuels puisse vous aider dans le processus d’apprentissage.
la source
C-x C-c
). J'adore Emacs à la mort, et à peu près en direct maintenant, mais réalise que dans un premier temps , vous êtes à des années de combat de la mémoire musculaire vous direC-s
estSave
pasSearch
etUndo
estC-z
. Je ne recommanderai pas ce genre de frustration à quelqu'un dont l'intention est d'apprendre Lisp. Apprenez d'abord la langue, réalisez que vous l'aimez, puis commencez à vous battre avec un objectif clair en tête.Eh bien, vous pouvez frapper deux oiseaux en lisant SICP : l’un apprend le LISP (le système est un dialecte du Lisp) et l’autre est un excellent aperçu de la façon de programmer.
la source
Conrad Barski propose un excellent didacticiel appelé Casting SPELs in Lisp (SPEL est son acronyme pour macros). Il s’agit de créer un jeu simple du type aventure et d’entrer directement dans les macros Lisp. Il a également travaillé sur un livre d'introduction qui est maintenant disponible à l'adresse suivante:
Apprenez à programmer Lisp, un jeu à la fois .
Et, de la table des matières:
Cependant, je ne sais pas ce que cela implique pour le développement Web (comme dans les pages HTML) utilisant Lisp. :)
Mise à jour - Je vois quelqu'un qui a mentionné le livre "Structure et interprétation des programmes informatiques", qui m'a rappelé que le MIT avait mis en ligne l' ensemble des conférences vidéo du SICP de Hal Abelson et Gerald Jay Sussman . Vous avez peut-être trouvé le livre sec, mais les conférences sont excellentes. Bien qu'ils soient basés sur Scheme, ils maîtrisent toujours très bien les concepts de base de Lisp. Ça vaut le coup de télécharger et de regarder.
la source
Pour une bonne introduction à la langue, lisez Practical Common Lisp de Peter Seibel . Le livre est excellent.
Configurer emacs et SLIME peut être délicat pour un débutant, son ampleur variant en fonction de votre système d'exploitation. Comme d'habitude, Windows a le bâton court, mais les gens ont fait le difficile et l'ont écrit (SBCL, Emacs, SLIME).
Une fois que cela est fait, Planet Lisp a référencé un article décrivant récemment comment configurer Hunchentoot et nginx.
Spécifique au système d’exploitation: MCLIDE peut être un bon point de départ. Je l'ai installé, mais je n'ai pas encore eu l'occasion de l'utiliser. Je ne peux donc rien dire d'utile à ce sujet. Cela semble certainement intéressant!
Edit: Eclipse a aussi le plugin Cusp .
la source
Déjà beaucoup de bonnes réponses, mais en supposant que vous souhaitiez vous immerger dans le développement Web avec un Lisp, j'ai quelques idées de plus.
Clojure est le premier Lisp que je connaisse à disposer d'excellents frameworks Web full-stack prêts pour le prime time.
Si vous ne l'aviez pas remarqué, je viens de couvrir toute la pile Web et tout est écrit en Clojure.
Je trouve que Clojure est un peu plus facile à utiliser que Common Lisp, avec un support de jeu de fonctionnalités / bibliothèque bien meilleur que celui de Scheme.
Si vous venez d'un environnement Java, cela présente l'avantage supplémentaire de fonctionner sur la machine virtuelle, ce qui vous donne accès à l'intégralité de la stdlib Java quand vous en avez besoin.
La documentation disponible est un travail en cours, de même que les cadres eux-mêmes. Mais il y a un très bon tutoriel ici.
En ce qui concerne les éditeurs, si vous êtes à l'aise avec vim, vous pouvez utiliser vim avec SLIMV. Si vous aimez emacs, emacs / SLIME vous convient. Clojure (ou c'est ce que l'on me dit) supporte assez bien Eclipse et NetBeans, mais j'utilise généralement TextMate (bien que Sublime Text 2 devienne rapidement mon éditeur de choix). Je sais que je passe à côté d'une petite magie Lisp n'utilisant pas un environnement plus intégré, mais je suis heureux de pouvoir appuyer sur ⌘-Tab pour permuter entre mon éditeur et REPL; Votre kilométrage peut varier.
Si vous voulez qu'un livre vous aide à démarrer, je vous recommande de programmer Clojure de Stuart Halloway et Aaron Bedra. La 2e édition vient de sortir de PragProg , elle est donc à jour.
Bonne lecture!
la source
Un autre commentateur , Inaimathi , a recommandé ce livre il y a quelques jours: The Little Schemer
Je l'ai reçu aujourd'hui et je peux dire, en tant que personne possédant une bibliothèque très volumineuse de livres de programmation acquise au fil de nombreuses années, que je n'ai peut-être lu qu'un chapitre, mais que j'aurai certainement besoin d'une version reliée de ce livre. Il se lit comme le Tao Te Ching, beaucoup de petits bouts de sagesse divine concernant la langue. On peut dire Scheme, mais il s’appelait à l’origine "The Little LISPer", les langues au niveau discuté sont suffisamment similaires pour être enseignées comme telles.
Ce n'est pas un texte avancé, mais une mission qui consiste à inculquer les principes de la langue et à quoi sert-il, comment penser de la sorte. Je crois que ce serait une excellente entrée en matière pour LISP.
NB La matrice de compétences des programmeurs mentionne en fait ce livre au dernier niveau de compétence à rechercher. (voir section livres)
la source
Un très bel endroit pour commencer à utiliser Lisp est à l'intérieur de l'éditeur Emacs, où il peut être utilisé pour redéfinir à peu près n'importe quoi. Vous voulez que la clé 'e' insère l'heure, il vous suffit d'écrire un petit extrait Lisp pour générer la chaîne et la lier à la clé e. Terminé.
Cela vous permettra également d’UTILISER réellement ce que vous apprenez au quotidien, si vous utilisez un éditeur ordinaire au cours de la journée.
la source
Si vous développez sur un Mac, essayez Clozure CL . Il est livré avec un environnement de développement intégré (IDE) doté de frappes compatibles Emacs. Il existe également une passerelle vers Objective C pour vous permettre d'écrire des applications Cocoa.
En outre, j'ai lu Practical Common Lisp, mais j'ai trouvé que Successful Lisp était également utile.
Enfin, un peu de patience de votre part sera récompensé. La productivité et les victoires mineures vont arriver assez rapidement, mais la grande victoire peut prendre un certain temps.
la source
J'ai un exemplaire de ANSI Common Lisp ici, près de mon bureau. Je le prends tous les deux ans et fais quelques chapitres, puis reste bloqué sur quelques exercices et ça glisse sur la liste des priorités. Cela vous en dit probablement plus sur moi que sur le livre. Le livre semble tout à fait compétent ...
la source