Sommaire
- Documentation
- Implémentations
- Taf
- Projets
- Articles
- Vidéos et podcasts
- Autres discussions
2022 est juste derrière nous, les années 60 un peu plus loin et pourtant, un vénérable langage de programmation évolue toujours et s'impose toujours comme un choix de premier ordre pour certain·es. Common Lisp est solide et stable, mais évolue: les implémentations évoluent, les librairies recommandées, les pratiques, les communautés aussi. Nous n'avons pas besoin de faire un point toutes les deux semaines, mais néanmoins, que s'est-il passé en 2022 et qu'avez-vous loupé ?
Ou simplement, à quoi ressemble la communauté Lisp aujourd'hui, sur quoi ces aliens travaillent-ils, pour quelles sortes d'applications voudrait-on choisir ce langage à priori un peu empoussiéré qui se traîne une cohorte de fans et de détracteurs ? Se pourrait-il qu'il soit adapté à votre nouvelle idée, se pourrait-il qu'il y ait déjà des outils et des librairies appropriées à votre projet ?
Ci-dessous est ma sélection, que j'ai voulu large, mais qui n'est bien sûr pas exhaustive de tout ce qui a été publié pendant l'année.
Ce billet n'est pas non plus un état des lieux de l'écosystème, comme celui que j'ai fait en 2020, pour lequel vous trouverez de bons commentaires complémentaires sur le site orange: sur HN (133).
I think this article (of sorts) is definitely helpful for onlookers to Common Lisp, but doesn't provide the full "story" or "feel" of Common Lisp, and I want to offer to HN my own perspective.
Si vous souhaitez une référence, je vous invite plutôt à consulter mes deux ressources préférées:
- Awesome-cl - une liste de librairies. Je parie qu'il y en a plus que ce que vous pensez à priori.
- the CL Cookbook - des recettes, une ressource collaborative. Pas de blabla, le code d'abord.
Si je devais choisir 3 projets pour cette année ce serait:
- les développements sur l'implémentation SBCL: SBCL est appelable en tant que bibliothèque partagée ("shared library", certaines traductions risquent de ne pas être optimales)
- Kons-9: un nouveau projet de modélisation 3D, dans l'idée Blender/Maya/Houdini, mais avec les avantages de Common Lisp, notamment en ce qui concerne les capacités de code "live", très interactif. Le projet avance bien.
- enfin CLOG, the Common Lisp Omnificent GUI. C'est une sorte de GUI pour le navigateur, pour développer des applications interactives (web apps, jeux…), puisque basé sur les websockets.
- honnêtement je ne suis pas un fan de ces abstractions, mais le travail accompli est remarquable. Sûrement top pour des gens qui ne maîtrisent pas toutes les technos web. Moi je suis un fan de HTMX et Unpoly en ce moment.
- l'auteur avait un outil commercial similaire codé en Ada, mais depuis qu'il a découvert Common Lisp, on ne l'arrête plus.
C'est parti.
L'article original en anglais: https://lisp-journey.gitlab.io/blog/these-years-in-common-lisp-2022-in-review/ (HN, 67 commentaires). Ce billet est un peu moins fourni pour faciliter la découverte.
J'ai préféré ne pas traduire les citations.
Documentation
Dans le monde Lisp, on a de très bons livres, quelques bons sites web, et une spécification. Mais le site officiel de la spéc est un peu abscons. Un nouveau venu est arrivé et nous a généré un nouveau site pour la consulter. Génial.
- 🚀 Common Lisp CommunitySpec (CLCS) - a rendition of the Common Lisp ANSI Specification draft.
- Github: https://github.com/fonol/cl-community-spec
- on obtient un joli thème, une barre de recherche, du code en couleurs, et c'est un projet ouvert.
Il a en plus commencé à travailler sur un nouvel éditeur pour Common Lisp, en Rust avec Tauri, cf ci-dessous.
On continue à augmenter le Cookbook:
Une ressource réhabilitée:
et aussi:
-
je crée un cours Common Lisp en vidéo sur Udemy 🎥 (oui moi !)
- j'ai beaucoup galéré à trouver les bonnes ressources (le pratique Cookbook c'est moi également) et à comprendre la manière de faire en Lisp, toujours un peu différente. J'ai eu du mal à assembler les bases de l'écosystème: ASDF, construire un binaire, comprendre toutes les possibilités du débogueur interactif, déployer une app avec SystemD (j'utilise CL en prod©), etc. Je vous explique de manière efficace.
- j'explique plus mes motivations sur Github: https://github.com/vindarel/common-lisp-course-in-videos/
- certaines vidéos sont libres d'accès, je peux aussi envoyer un lien gratuit aux étudiant·es.
- alors oui je le fais en anglais et je n'ai pas la mâchoire adaptée à cette langue. Mais je fais des efforts, je reprends le son des toutes premières vidéos où il était très moyen (nouveau micro, son excellent depuis un an maintenant), et je crée des sous-titres pour aider. Oh, et puis il y a l'image.
- lien direct. Une réduction: LISP-FOR-2023
- c'est tout nouveau et je me suis dit que ça pourrait aider les gens à me dire merci pour mes contributions :D Merci d'avance pour votre soutien en tout cas.
- j'ai reçu un retour spontané (et en français) sur Mastodon: «J'en suis à la moitié. La pédagogie est au rendez-vous et c'est vraiment cool! Ça donne envie d'aller plus loin. Merci pour ce travail." fredg.
Implémentations
On a des nouvelles à donner pour rien de moins que 8 implémentations.
-
SBCL sort une version tous les mois. En 2022:
- 🚀 SBCL est appelable comme bibliothèque partagée (shared library). Cf sbcl-librarian un peu plus bas.
- 🚀 sb-simd - SIMD pour SBCL.
- la compression des images système et des binaires utilise zstd à la place de zip: la compression devient 4 fois plus rapide, la décompression environ 2 fois, la compression fait gagner ±10% d'espace.
- plusieurs autres optimisations etc
- le projet SBCL a atteint 20,000 "commits".
- on a eu des binaires de SBCL pour Android (Termux) (pas officiel)
-
Clasp 2.0.0 released
- Common Lisp pour LLVM
- Christian Schafmeister talk - brief update about his "molecular lego" supported by his Lisp compiler
- comment ce chercheur en biologie utilise CL, et pourquoi il a construit sa propre implémentation pour s'interfacer avec C++.
- il y a moins de gros sous que dans les années 80, mais y'a toujours du financement: "CLASP was supported by The Defense Threat Reduction Agency, The National Institutes of Health, The National Science Foundation".
- ECL:
-
LispWorks Personal Edition updated to version 8.0.1, incl. native Apple Silicon version
- LispWorks est une implémentation et IDE propriétaire, avec une édition gratuite et limitée. On a une revue sur le Cookbook.
-
Major New release of Allegro Common Lisp Express Edition for 10.1
- AllegroCL aussi.
- nouveauté principale: nouvel IDE basé sur le navigateur
- pas de coloration syntaxique pour l'éditeur dans le navigateur néanmoins :S
-
ABCL 1.9.0
- pour la JVM.
- "ABCL 1.9.0 has been best tested on the openjdk8, openjdk11, and openjdk17 runtimes. It will run other places but those are the best supported."
- GNU Common Lisp 2.6.13 released, après 8 ans.
Des gens ont commencé de nouvelles implémentations O_o
- NPT - une implementation de ANSI Common Lisp en C.
Et aussi:
Ils bossent à rendre une mythique "Lisp Machine" utilisable aujourd'hui:
Medley Interlisp is a project aiming to restore the Interlisp-D software environment of the Lisp Machines Xerox produced since the early 1980s, and rehost it on modern operating systems and computers. It's unique in the retrocomputing space in that many of the original designers and implementors of major parts of the system are participating in the effort.
Paolo Amoroso: my encounter with Medley Interlisp.
Taf
On a vu passer des offres pour: du développement web(WebCheckout et des annonces pour freelances), un fournisseur de service pour le "cloud" (Keepit), de l'analyse de big-data financière (Ravenpack, et ils recrutent probablement toujours), des compilateurs quantiques (HLR Laboratories), de l'IA (Mind AI, SRI International), de l'aggrégation et des systèmes d'alerte pour des parcs énergétiques (3E); pour une start-up qui développe des outils pour autistes; une boîte voulait ré-écrie un backend Python en Common Lisp (RIFFIT); il y a eu quelques "bounties", etc.
Évidemment la plupart des postes sont pourvus sans annonce publique, soit l'entreprise demande dans la communauté directement, soit ça passe par un réseau "social" de manière informelle, soit l'entreprise forme ses nouveaux développeurs Lisp en interne.
Une question légitime:
Qui utilise CL en 2022? On a ajouté quelques entreprises sur cette liste non-officielle: awesome-lisp-companies.
Projets
-
Ultralisp supporte les tags
- Ultralisp est une distribution Quicklisp, qui livre une nouvelle version chaque 5 minutes.
- cf CLPM pour un nouveau gestionnaire de librairies.
Librairies logicielles
- Typo: une librairie d'inférence de types
- pour les tests:
- fiveam-matchers - des assertions de tests composables pour la librairie FiveAM.
- testiere - TDD-like dev pour Common Lisp: les tests sont inclus sous les sources. Quand on re-compile la fonction, les tests sont lancés.
- try test framework. - "c'est ce qu'on obtient quand on construit un framework de test sur le système des conditions de Common Lisp."
- journal - logging, tracing, testing… et persistance.
- 40ants-critic - il critique votre code gentiment.
-
CLEDE - the Common Lisp Emacs Development Environment
- une librairie, en cours, pour améliorer certains aspects du développement, comme le "refactoring".
- easy-macros - permet d'écrire 90% de ses macros sans erreur.
Éditeurs, éditeurs en ligne, REPLs, autres plugins
Emacs n'est pas le seul et unique éditeur. Vim, Atom, Sublime, VSCode, Eclipse, Jupyter notebooks… https://lispcookbook.github.io/cl-cookbook/editor-support.html
Et il se passe des choses sur le sujet.
- 🚀 Parrot - le projet en Rust et Tauri.
- à surveiller !
-
Alive LSP for VSCode v0.1.9 · Add initial step debugger support
- un plugin pour VSCode, fonctionne mais en plein développement, à surveiller également.
- Common Lisp at Riju, un bac à sable en ligne, pour tout langage.
- Codewars (code training platform) now has Common Lisp (SBCL 2.0.9)
- Mobile app "cl-repl" (LQML) to replace "CL REPL" (EQL5)
- ☆ slime-star - des extensions très utiles pour SLIME, le plugin "par défaut" pour Emacs.
- System Browser
- SLIME Doc
- Quicklisp Systems: explorateur de librairies
- Quicksearch: recherche de librairies sur le net.
- Slime breakpoints <!-- - custom utilities and menus. -->
- parachute-browser: A lightweight UI for using the Parachute testing framework in LispWorks
Nouvelles versions:
-
Lem editor 1.10.0: lsp-mode by default, multiple cursors, sql mode, and more.
- Lem est un éditeur écrit en Lisp qui supporte plusieurs langages grâce à son client LSP intégré.
- comme Emacs, en Common Lisp. La doc en moins :(
Programmation concurrente
- 🚀 nouvelle version de Sento, pour programmation par acteurs
- écrire des applications distribuées avec cl-etcd
Discussions:
- Concurrency: Common Lisp vs Clojure
- Moving from the BEAM to Common Lisp: What are my concurrency options?
cf awesome-cl
bases de données
- DuckDB Lisp bindings
- ndbapi: Common Lisp bindings to the C++ NDB API of RonDB
- CLSQL released under a non-restrictive license
- Document Store/DB Implemented in Common Lisp
Pour plus de choix: awesome-cl#databases.
Déploiement, interface au monde réel
C'est là que je trouve que les avancées sont incroyables. On peut voir aussi que plusieurs entités travaillent ensemble sur SBCL: ses développeurs indépendants, un développeur de Google qui s'y consacre entièrement (cf ITA Software de Google), les développeurs d'une grosse boîte, HRL Laboratories, qui sont aussi responsables de Coalton, qui amène les types à la Haskell par-dessus CL.
Have you ever wanted to call into your Lisp library from C? Have you ever written your nice scientific application in Lisp, only to be requested by people to rewrite it in Python, so they can use its functionality? Or, maybe you've written an RPC or pipes library to coordinate different programming languages, running things in different processes and passing messages around to simulate foreign function calls.
[…] If you prefer using SBCL, you can now join in on the cross-language programming frenzy too.
- 🎉 sbcl-librarian - une interface pour créer des bibliothèques partagées pour C et Python, en Common Lisp avec SBCL.
- 🚀 alien-works-delivery - toujours "WIP", mais permet de construire des AppImage pour Linux et Windows (format MSIX). Souhaite livrer ce qu'il faut pour Android, iOS et MacOSX.
- Support for compiling Common Lisp code using bazel.io, par l'équipe Lisp chez Google.
Jeux
Kandria sort aujourd'hui sur Steam!
cl-defender - une preuve de concept, avec Raylib.
Graphiques, GUIs
Nouveaux "bindings" pour Gtk4:
On en a eu pour Qt5… mais ils sont durs à installer et utiliser.
Et aussi:
- un client Wayland intégralement en Common Lisp
- vk - CFFI interface à Vulkan
Kons-9, un nouveau projet de modélisation 3D
Carrément 🚀.
The idea would be to develop a system along the lines of Blender/Maya/Houdini, but oriented towards the strengths of Common Lisp.
Le mec a de l'expérience en Lisp et dans le domaine:
I'm an old-time 3D developer who has worked in CL on and off for many years.
I don't consider myself an expert […] A little about me: • wrote 3D animation software used in “Jurassic Park” • software R&D lead on “Final Fantasy: The Spirits Within” movie • senior software developer on “The Hobbit” films.
- kons-9 Github
- 🎥 bande annonce
- son blog
- et des vidéos, cf plus bas.
Interfaces avec d'autres langages
-
py4cl2-cffi: basé sur CFFI.
- permet de passer les vecteurs par référence, ce qui est efficient et rapide, et ouvre donc l'accès à l'écosystème numpy, scipy et cie.
- ce qu'on pouvait faire avec py4cl, mais moins efficacement.
Pour plus: awesome-cl comme toujours.
Librairies scientifiques
- 🚀 Lisp Stats - un projet de stats solide, qui n'est pas parti de zéro. Il intègre des librairies "state of the art" existantes, il intègre du boulot qui a été fait pour le prédécesseur de R -qui était en Lisp.
- sur HN (55) - pleins de commentaires et de contexte historique.
- "Common Lisp est une plateforme viable pour les stats et le 'machine learning'. Tout n'est pas (encore) aussi bien organisé que pour R ou Python, mais tout est là."
- numericals - les performances de NumPy avec les qualités et le confort de Common Lisp
- MGL-MAT - une librairie pour travailler avec des objets multi-dimensionnels, interfaçage efficace à CUDA, BLAS et CUBLAS.
Et aussi:
-
Maxima 5.46.
- "Maxima is a Computer Algebra System comparable to commercial systems like Mathematica and Maple. It emphasizes symbolic mathematical computation: algebra, trigonometry, calculus, and much more."
- une interface graphique: WxMaxima.
Web
Screenshotbot (Github) est sorti. C'est un service de capture d'écran automatique à interfacer avec ses tests Android, iOS ou web.
- Lisp Interpreter dans le navigateur avec WASM - des balbutiements pour WASM et CL.
Nouvelles librairies:
-
jingle: un framework web minimaliste… mais pas trop.
- demo: OpenAPI 3.x spec, Swagger UI, Docker, interface en ligne de commande.
- ciao: OAuth 2.0
- openrpc: génération de spécs et JSON automatic pour OpenRPC.
- HTTP/2 implementation
Squelettes de projets:
-
cl-cookieweb: ma
proposition pour projets web. Démo en vidéo.
- Fournit un projet web qui tourne avec Hunchentoot (le server), easy-routes, Djula (templates HTML), Bulma (CSS), avec SQLite (mais peu importe), avec des migrations et un exemple de table pour l'ORM.
- là-aussi, je serais embarrassé de dire combien de temps il m'a fallu pour assembler tout ça. Maintenant que je l'ai, ça roule bien !!
Autres:
- 👍 lisp-pay: Paypal, Stripe, Coinpayment.
- lunamech-matrix-api: Matrix API.
Je n'ai pas trop d'applications en tant que tel à montrer. Cf le lien parent. Mes projets en cours sont plutôt pour 2023.
CLOG
🚀 La grosse nouveauté, c'est quand même CLOG, "the Common Lisp Omnificent GUI".
- Native Desktop Executables for CLOG
- CLOG and CLOG Builder Release 1.8 - IDE for Common Lisp and CLOG
- CLOG on Android, APK download
Ce projet est le seul conséquent que je connaisse qui utilise CLOG: mold-desktop (toujours en dév).
I'm developing a programmable desktop and a bookmarks manager application with CLOG. I think I know one of the things that make CLOG user interfaces so easy to develop. It is that they are effortlessly composable. That's it for now :)
Nouvelles sorties
On a beaucoup de projets concernant la composition musicale. cf OpusModus et OpenMusic. J'aime citer aussi ScoreCloud, une app pour mobile, faite avec LispWorks, dans laquelle vous sifflotez, jouez de votre instrument ou chantez, et elle écrit la partition O_o
- 🎵 Opusmodus 3.0, Music Composition System, macOS Intel & Apple Silicon native, based on LispWorks, just released
- 🎵 OpenMusic 7.0, now also native for M1 Macs, visual programming language designed for music composition
- Consfigurator, a Common Lisp based declarative configuration management system, reaches v1.0
- April 1.0 released - APL pour Common Lisp O_o Et oui, utilisé en prod par la boîte de l'auteur.
-
tinmop 0.9.9.1, a terminal client for gopher, gemini, kami and pleroma.
- un bon exemple pour comment écrire des applis dans le terminal.
- clingon - command-line options parser
Bien sûr: cf awesome-cl.
(re) découvertes
- le service "pastebin" pour les maths Mathb.in est écrit en Common Lisp (et JS).
-
ce méga-gros et commercial logiciel de modélisation CAD est écrit en Lisp et on peut télécharger une version gratuitte.
- il est utilisé dans l'industrie, comme par Ethernia pour leurs montres.
- environ 7 millions de lignes de code.
Articles
Là j'ai pas mal épuré pour laisser ce que moi je trouve plus important ou utile.
Outils
- Debugging Lisp: trace options, break on conditions
- A StumpWM debugger
- Windows environment for SBCL
-
Securing Quicklisp through mitmproxy
- because Quicklisp doesn't use HTTPS. Here's how to add security. The new CLPM uses HTTPS.
- Lisp in Vim
Scripting
En CL on peut produire des binaires complets, par exemple pour mes applis web le binaire contient le HTML et tous les assets, ainsi que le compilateur, et le débogueur… et ça sert pour inspecter un programme en prod (j'ai bien dit inspecter, et pas développer directement contre la prod). Mais pour lancer des scripts de manière simple et pas prise de tête, c'est moins évident.
On peut bien sûr lancer sbcl --load monscript.lisp
, mais dès qu'on repose sur les librairies externes, le temps de démarrage s'en ressent. Partager ce script n'est pas évident non plus. Des solutions ont émergé, comme Roswell.
- Day 3: Roswell: Common Lisp scripting, par E. Fukamachi.
-
Qlot tutorial with Docker
- Qlot v1.0.0 - pour spécifier précisément ses dépendances.
- Day 4: Roswell: How to make Roswell scripts faster
- Day 5: Roswell: Hidden feature of "-s" option
-
Writing scripts in lisp?
- pas mal d'astuces.
- où je montre mon essai, en cours mais que j'adore: CIEL scripting. C'est du pur Common Lisp, mais avec plein de librairies incluses par défaut, et une ligne de shebang afin d'écrire de lancer des scripts facilement.
Autour du langage
- 🚀 Using Coalton to Implement a Quantum Compiler
- toujours en dév, cf leur Discord pour en parler.
-
Eliminating CLOS for a 4.5x speedup
- le système d'objet n'est pas inefficace, mais des fois le remplacer avec des
structs
est facile.
- le système d'objet n'est pas inefficace, mais des fois le remplacer avec des
cf article original.
Web
- 🚀 Lisp for the web: building one standalone binary with foreign libraries, templates and static assets
- moi encore. Il a fallu un patch pour le moteur de templates Djula, et maintenant je peux construire mon exécutable tout-en-un. Génial.
- le déploiement est devenu simplissime:
rsync
,systemctl restart
. - en plus un tel binaire est facile à intégrer à une fenêtre Electron. "Stay tuned".
-
Lisp for the web: deploying with Systemd, gotchas and solutions
- ce que je disais pour ce que j'ai rencontré, dépassé, et documenté.
- Woo: a high-performance Common Lisp web server, par E. Fukamachi.
-
HTTP over unix sockets in Common Lisp. Du même auteur:
- Using TailwindCSS in Common Lisp web apps without Node.js tooling
- Using SVGs in Common Lisp web apps with Djula
- Create a Common Lisp Web app using ningle
- Using environment variables with cl-dotenv in Common Lisp
- Mito: An ORM for Common Lisp
- Running docker commands from Common Lisp REPLs
- example d'app web avec HTMX: cl-beer
- A new static site generator
- Web Development with CL Backend and ClojureScript Frontend
- Update on gRPC Server - gRPC now has the ability to create servers based on protocol buffer service descriptors.
- 🚀 Almost 600,000 entries per second from Lisp to Apache Accumulo over Apache Thrift
- Review of CL Json Libraries, updated 15 Jan 2022
Autres articles
-
Astronomical Calculations for Hard Science Fiction in Common Lisp, by Fernando Borretti
- sur HN (42) (oui, 42)
- 👀 A LISP REPL Inside ChatGPT
- FreeBSD Jail Quick Setup with Networking for a Common Lisp environment
- Proceedings, Seventeenth International Workshop on the ACL2 Theorem Prover and its Applications, 2022. 9782918059999
- Case study - house automation tool - part 2 - getting serial
Vidéos et podcasts
Les miennes:
- 🚀 Déboguer Lisp: réparer un bug et reprendre l'exécution depuis n'importe quel point dans la pile d'appels 🎥
- montre une capacité que certains dévs Lisp pourtant expérimentés ne connaissaient pas (ou n'avaient pas trouvé dans Slime).
- Requêtes HTTP en Lisp: example avec l'API GitHub - comment gérer le JSON, etc. Démo de live coding, puis on construit un exécutable.
- Comment créer un nouveau projet Lisp
Par Gavin Freeborn:
- Why Learn Lisp In 2022?
- Lisp Is More Than Just A Language It's An Environment
- Creating Your First Lisp Project - Quicklisp, asdf, and Packages
- Unleash the REPL with SLY
Du projet KONS-9:
- Kaveh's Common Lisp Lesson 01: points and shapes
- Common Lisp OpenGL programming tutorial #12 - Animation & Hierarchies
Du projet CLOG:
- CLOG Extra 3 - The CLOG Project System for CLOG and NON-CLOG projects
- CLOG Extra 4 - All about panels
-
Repl Style. Dev visually with CLOG Builder
- "This is amazing work! Having Pharo/Smalltalk capabilities with Common Lisp is fascinating."
CL study group:
Autres:
- Common Lisp Game of Life visualisation with LispWorks and CAPI
- Far and Away the Simplest Tutorial on Macros
et bien sûr, pour plus de 3h48 de contenue bien condensé, mon cours Lisp en vidéo sur Udemy (je travaille sur du nouveau contenu, les étudiants existants y auront accès).
Des podcasts:
-
CORECURSIVE #076: LISP in Space, With Ron Garret ← a podcast, trascribed with pictures
- l'histoire incroyable de Lisp dans l'espace.
- ils ont bossé leur sous-langage pour éviter les accès concurrents intempestifs, un bout de code utilise un appel système bas-niveau, ils obtiennent un bug d'accès concurrent dans l'espace, ils le débugguent depuis Emacs et le REPL Lisp depuis la terre.
- sur HN (98)
- même sujet: NASA Programmer Remembers Debugging Lisp in Deep Space
- The Array Cast - Andrew Sengul, creator of the April language tells us about the advantages of combining Lisp and APL - APL + Lisp en prod.
Autres discussions
Communauté
- 💌 Impressions of Common Lisp and the Lisp Community
- "So, thank you. I’m glad I found this group (and some other Lisp groups) on Reddit. You guys are a real blessing."
- What are you working on?
Learning Lisp
- Advice on professional development in Common Lisp?
- Trying to get into Lisp, Feeling overwhelmed
-
Looking for good common lisp projects on github to read?
- un example: GitHub advanced search pour chercher
defclass
chez 4 dévs.
- un example: GitHub advanced search pour chercher
- Why buy LispWorks?
Common Lisp VS …
- what were the lessons you learned from programming in Lisp that carried over to other languages (more on the imperative side)?
- For serious/industrial/business use, in what ways do you think Common Lisp beat Clojure, and vice versa?
-
Common Lisp VS Racket (openly biased over CL, with testimonies of lispers knowing both)
- sur HN (143): "I'm a heavy user of Common Lisp, and I only dabble in Racket from time to time. While Common Lisp is my tool of choice for a lot of reasons stated in the post, since the post largely skews favorably toward Common Lisp, I'll offer two things that Racket shines at."
-
Why not: from Common Lisp to Julia
- sur HackerNews (200)
- un premier article dit "J'en ai trop marre de CL je passe sur Julia" et dézingue CL pas très proprement.
- 2 mois après il est revenu lol (LiberaChat).
- Is Lisp too malleable to use for serious development?
-
Pourquoi Lisp? (version française)
- "le but de ce blog, c'est de montrer comment l'interpréteur LispE a été implanté."
- "Mais la question peut se poser, comment un langage préfixé, noyé dans les parenthèses continue-t-il d'attirer autant d'intérêt?"
- sur HN (200)
Et voilà. Bonne découverte.
# Question sur un vieux livre
Posté par lem__mel . Évalué à 5.
il y a des millions d'années de cela (i.e. dans mes années étudiantes), j'ai ouvert un livre sur le LISP (par pure curiosité) et avais beaucoup apprécié celui-ci : il présentait quelques mots clefs seulement (affectation, tête, queue, et un ou deux autres) et proposait de construire tout le reste au travers d'exercices.
J'avais trouvé le langage super (c'est ainsi que j'ai appris la récursivité), mais je l'ai laissé ensuite sur le côté : il ne m'avait finalement qu'appris à penser ; c'était déjà bien.
Cela dit-il quelque chose à quelqu'un ? Quelqu'un aurait-il une idée de l'ouvrage ?
PS : je souhaiterais l'utiliser pour le passer à mes cht'iots.
[^] # Re: Question sur un vieux livre
Posté par Lucky Seven . Évalué à 7. Dernière modification le 12 janvier 2023 à 20:12.
The Little Schemer, par hasard ? (https://mitpress.mit.edu/9780262560993/the-little-schemer/)
N.B. Il s'appelait The Little LISPer avant
[^] # Re: Question sur un vieux livre
Posté par lem__mel . Évalué à 2.
Il y ressemble par certains aspects pédagogiques mais pas du tout sur la forme : c'était du texte, très sérieux (pas de blagues ou de tâches de confiture comme pour l'ancienne édition), et sans illustration, du moins je n'ai pas le souvenir d'un éléphant comme dans l'édition « récente ».
Peut-être mon livre s'inspirait-il de celui-ci car le plan a l'air assez proche, et que je me rappelle les avertissements concernant les différents dialectes.
[^] # Re: Question sur un vieux livre
Posté par Lucky Seven . Évalué à 2.
Sur l'ancienne édition il n'y avait pas les dessins, mais il y avait quand même les blagues sur la nourriture.
https://archive.org/details/tlLISP/mode/2up
[^] # Re: Question sur un vieux livre
Posté par jmiven . Évalué à 2.
Ton "texte, très sérieux" me fait penser à Lisp in Small Pieces de Christian Queinnec, éventuellement.
[^] # Re: Question sur un vieux livre
Posté par lem__mel . Évalué à 1.
je viens de jeter un œil, et ce n'est pas le même.
Bah, ça fera partie des choses de « l'enfance » ayant disparues :-)
Merci.
[^] # Re: Question sur un vieux livre
Posté par aiolos . Évalué à 3.
J'ai eu Christan Quennec comme prof à la fac, si son livre est aussi bon que son cours, ce doit être une bonne ressource !
[^] # Re: Question sur un vieux livre
Posté par Letho . Évalué à 2.
Eh bien bravo, je viens encore de commander un livre. Je ne te remercie pas.
[^] # Re: Question sur un vieux livre
Posté par Lucky Seven . Évalué à 3.
N'oublie pas de prendre la suite
The Seasoned Schemer
;-)# Sous ubuntu ?
Posté par vmagnin (site web personnel) . Évalué à 3.
Awesome diraient les anglais…
J'ai fait un tout petit peu de Lisp il y a longtemps (plus de 30 ans ?) et j'ai retrouvé quelques listings.
Apparemment, c'est toi qui a édité la page https://doc.ubuntu-fr.org/common_lisp
donc je vais essayer d'installer les paquets indiqués (sbcl rlwrap).
[^] # Re: Sous ubuntu ?
Posté par ElVirolo (site web personnel) . Évalué à 5. Dernière modification le 13 janvier 2023 à 09:53.
Désolé, complètement HS, mais cette utilisation hyperbolique d'« awesome » est très clairement nord-américaine plutôt que britannique. Et elle est toujours perçue comme telle au Royaume-Uni.
Au Royaume-Uni, « awesome » s'utilise traditionnellement beaucoup moins souvent, et son usage hyperbolique, importé des Etats-Unis, est récent.
Moins HS : merci beaucoup pour cet excellent journal ! En tant que non-programmeur, je tourne autour du Common Lisp depuis quelque temps sans vraiment sauter le pas, mais il va falloir que je m'y mette.
[^] # Re: Sous ubuntu ?
Posté par Christophe B. (site web personnel) . Évalué à 5.
Oui comme beaucoup LISP a ce coté mystique bien expliqué dans cet article
https://twobithistory.org/2018/10/14/lisp.html
avec beaucoup d'humour :)
[^] # Re: Sous ubuntu ?
Posté par dzecniv . Évalué à 3. Dernière modification le 13 janvier 2023 à 10:44.
C'est bien moi, et je viens d'ajouter une astuce à propos de rlwrap: l'option
--remember
permet de TAB-compléter les mots déjà écrits. Ça aide pour l'auto-complétion dans le terminal. C'est une chose que l'implémentation CLISP fait mieux, mais elle est à éviter pour des apps sérieuses. Sinon, il faut mettre en place un IDE pour la bonne complétion.Je te souhaite de retrouver tes marques rapidement !
Autre astuce pour rlwrap: l'option
-f FICHIER
, où FICHIER contient une liste de mots qui seront TAB-complétables. Voici un fichier avec des fonctions de CL: https://gist.github.com/alejandrogallo/d36a4b3b37586d19e54ce4cda8a7c47b Ça permet d'améliorer l'expérience par défaut quand on veut tester SBCL dans le terminal.ps: Merci au commentaire cousin!
# Learning Lisp
Posté par CQueinnec . Évalué à 10.
Je suggère d'ajouter à la section "learning lisp" le MOOC Programmation récursive. Cela n'utilise pas CL mais Scheme car le propos est centré sur la récursion.
[^] # Re: Learning Lisp
Posté par dzecniv . Évalué à 10.
Salutations Christian Queinnec, auteur historique de livres et de contenus sur les langages Lisp o/
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.