Number Machine is an open-ended factory and automation game with math mechanics
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
Le langage Common Lisp n’est pas un dinosaure éteint. À l’instar de certains requins, c’est une bestiole qui n’a cessé d’évoluer pour devenir un prédateur redoutable aujourd’hui. C’est un langage qui éclate l’auteur du journal à l’origine de cette dépêche, dzecniv, au quotidien depuis des années, avec lequel il déploie certains services facilement (venant de Python, il apprécie le déploiement), alors il a de nouveau rédigé un petit récapitulatif de ce qui s’est passé dans cet écosystème ces deux dernières années.
Vous prendrez garde à ne pas conclure que les bibliothèques et projets qui sont présentés ici sont les seuls de leur domaine, ni que tous les nouveaux projets sont listés, ni qu’il s’agit d’un aperçu complet de l’écosystème.
(NdM: dans la suite, l'auteur du journal à l’origine de la dépêche s'exprime à la première personne)
Pour avoir un aperçu plus global de l'écosystème, veuillez faire une petite recherche sur GitHub, surveillez reddit/r/lisp et reddit/r/common_lisp, utilisez un moteur de recherche, ou commencez par jeter un coup d’œil sur la liste awesome-cl.
Il me tient à cœur de faire cette liste, car de l’extérieur on ne se rend pas forcément compte à quel point, certes, le langage et l’écosystème sont stables, mais qu’ils évoluent également.
S’il fallait en choisir trois, je mettrais ces travaux en avant :
Bonne découverte.
C’est une nouvelle plutôt cool pour nous les publicitaires pro du langage. HN a été développé avec le dialecte de Lisp Arc, initialement implémenté avec Racket, et pour des questions de performance ils l’ont ré-implémenté en Common Lisp, avec SBCL.
Pour plus de contexte : Paul Graham (avec Robert Morris) crée Viaweb en 1995, le premier fournisseur d’applications en ligne (pour garder la terminologie de Wikipédia, page Paul Graham), développé en Common Lisp, avec l’implémentation CLisp. Cette implémentation existe toujours et est légèrement développée, mais il est généralement conseillé d’utiliser SBCL (qui colle mieux au standard, qui est plus performante, qui donne plus d’indications de typage pendant le développement, etc.). “PG” vend Viaweb à Yahoo en 1998 (pour ce qui devient Yahoo! Store), et fonde l’incubateur de start-ups YCombinator. PG n’était pas satisfait par Common Lisp, au tout au moins (là, je n’ai pas les sources) voulait un dialecte plus succinct, qui permette d’écrire des applications web de manière plus compacte. Il ébauche un dialecte de Lisp, appelé Arc, et l’implémente avec Racket (MzScheme à l’époque). Le site de Hacker News (géré par YCombinator) fut donc écrit en Arc avec cette première implémentation.
Le responsable (ou un des responsables) du portage vers SBCL et modérateur d’Hacker News, dang, explique :
[Clarc, l’implémentation en Common Lisp] est beaucoup plus rapide et permet de faire tourner HN sur plusieurs cœurs. Ça a été un travail de fond de quelques années, principalement parce que je ne trouve pas le temps pour travailler dessus.
Les sources du site d’HN ne seront pas publiées pour ne pas dévoiler de multiples mécanismes anti-spam et anti-abus (les séparer du code source serait « beaucoup de travail »), mais les sources de Clarc pourraient l’être, avec un peu plus d’efforts pour les séparer du code d’HN.
https://lisp-journey.gitlab.io/blog/hacker-news-now-runs-on-top-of-common-lisp/
C’est un langage multi-paradigmes, et selon les implémentations, comme avec SBCL : compilation en code machine très performant, typage graduel, très interactif :
Définir une fonction :
(defun hello ()
(print "hello!"))
;; Appeler la fonction:
(hello)
Compiler la fonction :
C-c C-c
depuis tout bon éditeur, sans quitter le programme, sans redémarrer quoi que ce soit,C-c C-k
depuis l’éditeur, pour re-compiler le fichier,sbcl --load hello.lisp
depuis la ligne de commande (ce qu’on va donc faire rarement, seulement de temps en temps pour vérifier que ça passe, pour construire un binaire, pour déployer depuis les sources…)Liens :
Elle est active, il y a des évènements IRL réguliers dans quelques villes, l’European Lisp Symposium chaque année…
On peut voir les chiffres de la communauté reddit/r/common_lisp (plus petite que le plus général “lisp”),
La communauté est présente sur reddit, Discord (lien: https://discord.gg/hhk46CE), IRC, Mastodon, LinkedIn…
On a la chance d’avoir de très bons livres sur CL, mais historiquement peu de doc en ligne. Ça évolue.
Les spécifications du langage ont été portées vers des sites beaucoup plus sympas à l’utilisation que le site de référence, comme le Common Lisp Community Spec, site également publié sous licence libre,
Le Common Lisp Cookbook reçoit un bon nombre de contributions. On peut le trouver en EPUB : https://github.com/LispCookbook/cl-cookbook/releases/tag/2025-01-09
Le livre PAIP est maintenant disponible en ligne : https://norvig.github.io/paip-lisp/#/
J’ai sorti un nouveau site sur le développement web en Common Lisp : https://web-apps-in-lisp.github.io/index.html
FreeCodeCamp a publié un cours “complet” sur Youtube : https://www.reddit.com/r/Common_Lisp/comments/1i1e766/lisp_programming_language_full_course_for/
cf. d’autres vidéos sympas ici : https://www.cliki.net/Lisp%20Videos
J’ai sorti neuf vidéos (1h22) pour expliquer CLOS, le système objet : https://lisp-journey.gitlab.io/blog/clos-tutorial-in-9-videos-1h22min--read-the-sources-of-hunchentoot-and-kandria/
Il s’en passe des choses.
SBCL a toujours des sorties mensuelles : https://www.sbcl.org/news.html
SBCL s’est vue dotée d’un nouveau GC.
Entre autres choses, rapidement :
ABCL a sorti des nouvelles versions :
Et Clojure ? Je ne connais qu’à peine (ça reste du Java, ça reste gourmand en ressources, le REPL est moins riche en fonctionnalités, le langage ne donne pas d’erreurs de type à la compilation avec un C-c C-c
), donc je peux juste citer d’autres lispers. cf. :
Ces implémentations sont actives.
ECL a un module pour WASM, en cours de développement mais qui permet déjà de lancer Maxima, un logiciel de calcul formel, dans un navigateur.
Breaking news: ECL vient d'être accepté par NLNet pour justement travailler sur ce module.
Pour info, on peut également utiliser Maxima via SageMath, avec KDE Cantor, avec l'interface graphique wxMaxima, sur Android, dans un "notebook" Jupyter, via Emacs avec le paquet "maxima-mode", et on peut faciliter son utilisation depuis un REPL Common Lisp et avec maxima-interface.
CLASP, pour interfacer CL et C++ nativement, est toujours développé par une start-up en bio technologies :
SICL est peut-être le futur de Common Lisp. C’est une nouvelle implémentation, modulaire. Des bouts sont déjà utilisés dans d’autres implémentations.
Medley est la ré-incarnation de la Medley Interlisp Lisp Machine. Je ne l’ai pas connue, trop jeune. On peut la tester via un navigateur.
LCL pour Lua Common Lisp est une nouvelle implémentation, Alisp est une nouvelle implémentation en cours de développement (en C).
Il y a peu d’offres, publiques en tout cas, on voit des opportunités passer de manière moins formelle sur les réseaux. Mais il y en a (cf. le lien original, par ex. une offre pour 3E à Bruxelles).
Et oui, certaines entreprises utilisent toujours Common Lisp, et certaines entreprises choisissent de leur plein gré ce langage comme base de leurs nouveaux produits. On le voit surtout dans le domaine de l’informatique quantique, et toujours pour une certaine forme d’IA. Mais des boîtes plus classiques peuvent en tirer parti. On voit des logiciels de management de projet (Planisware, cocorico c’est une boîte française, développé avec l’implémentation Allegro), du développement web, des bots internet…
Quelques exemples :
et des usages, moins dans l’actualité :
Éditeurs pour Lisp : https://lispcookbook.github.io/cl-cookbook/editor-support.html (il y en a d’autres qu’Emacs, mais essayez donc !)
Lem : https://lem-project.github.io/
Construit en CL, il est donc extensible à la volée en Lisp, comme Emacs. Contient un client LSP qui fonctionne pour de nombreux autres langages, et des modes syntaxiques plus classiques pour nombre d’autres.
Quelques fonctionnalités de Lem :
Nouveau projet : Neomacs https://github.com/neomacs-project/neomacs basé sur Electron
En les citant, Coalton c’est :
the implementation of a static type system beyond Haskell 95. Full multiparameter type classes, functional dependencies, some persistent data structures, type-oriented optimization (including specialization and monomorphization). All integrated and native to CL without external tools.
C’est une bibliothèque logicielle qu’on installe comme n’importe quelle autre, mais qui fournit un autre langage pour écrire des programmes typés statiquement, tout en s’interfaçant de manière native avec son langage hôte.
Coalton est développé à l’origine pour des boîtes dans l’informatique quantique. Cf le compilateur quilc.
Ce n’est donc pas un jouet. Et si les développeurs ne font pas un tonnerre de tous les diables pour montrer leur travail incroyable, c’est qu’ils bossent ;) (mais ils répondront au FUD sur HN).
Depuis au moins 10 ans, le « package manager » qui rend de fidèles services est Quicklisp. Il sort des distributions de bibliothèques, qui ont été vérifiées pour charger correctement. La dernière en date était en octobre :
Et oui, elle date un peu. Plusieurs explications à cela, à lire et discuter par ailleurs.
Aujourd’hui, de nouveaux outils émergent:
Le meilleur exemple dans ce domaine est Kandria, qui est sorti sur Steam :
Son auteur augmente maintenant son moteur de jeu pour la 3D. On peut le suivre et voir une démo sur Mastodon.
On trouvera d’autres ressources, par exemple :
Une fonctionnalité incroyablement utile pour les développeurs, est qu’on peut développer son jeu pendant qu’il tourne. Compiler une fonction avec C-c C-c
, et voir le jeu changer. Sans tout relancer de zéro à chaque fois.
La communauté organise 2 fois par an des « Lisp Game Jam ». Où tous les dialectes de Lisp sont permis ;)
C’est un large sujet, et de multiples bibliothèques existent, plus ou moins faciles à prendre en main, plus ou moins portables, etc. Mais voyez la capture d’écran d’Opus Modus en introduction : c’est bien un logiciel graphique multi-plateformes. Dans ce cas, développé avec LispWorks. Par ailleurs, LispWorks possède un “runtime” pour Android et iOs.
Je vais vous laisser voir awesome-cl ou l’article original.
Le web en Common Lisp c’est faisable (et je le fais), on a pas mal de bibliothèques pour divers besoins, on a quelques “frameworks”, minimalistes. Il faut être prêt à mettre les mains dans le cambouis, à mieux connaître le web que lorsqu’on utilise des “frameworks” de haut niveau qui ont beaucoup de couches d’abstraction. Ceci dit, la malléabilité du langage, sa performance, son multi-threading, ses excellents outils de développement, ses fonctionnalités avancées, son déploiement facile… font que certaines choses compliquées dans un autre langage, ou qui nécessiteront une bibliothèque, se font en quelques lignes de manière native.
Ce qui me plaît, c’est la stabilité du langage et de l’écosystème, l’efficience des programmes (de l’ordre de C ou Java, une comparaison parmi d'autres, retours à trouver dans ses articles postérieurs et sur HN), et encore et toujours l’interactivité pendant le développement, le fait que le serveur de développement ne redémarre jamais, ne me fait pas attendre et reste réactif, et comme je disais plus haut le déploiement d’applications, facile : je peux générer un binaire de mon appli web, comprenant tous les fichiers statiques (templates HTML, le JavaScript, etc), le copier sur mon serveur, et c’est tout. Ou le vendre et ne pas devoir accompagner mon client pendant l’installation.
C’est ce que dit aussi l’auteur de Screenshotbot (projet open-source d’automatisation de prise de captures d’écran). Quand sa concurrence fait installer ses solutions via npm, il livre un petit binaire qui fait tout. Et j’ai bien dit petit, donc ±10Mo pour le projet et toutes ses dépendances, car il utilise LispWorks, qui permet d’enlever le code mort de l’image finale, alors que SBCL ne permet pas (encore ?) cela et les binaires pèsent ±30Mo compressés, 80Mo non compressés. Néanmoins, un binaire (compressé) de 30Mo (c’est le cas pour une application à moi qui inclue une douzaine de dépendances) contient le débogueur, le compilateur… ce qui permet de se connecter à une application pendant qu’elle tourne et de charger du code à la volée. On peut s’en servir pour observer ce qu’il se passe autant que pour faire des mises à jour. Au choix ! Mais oui, on peut garder les bonnes pratiques de l’industrie.
Pour démarrer sur le sujet :
Comme outils moins classiques, on a CLOG (CL Omnificient GUI), qui permet le développement d’applications web un peu comme une interface graphique, avec une grande interactivité pendant le développement (via websockets).
L’infatigable lisper @mmontone se lance dans mold-desktop, un desktop pour le web, en suivant les principes de « moldable software ».
Enfin, un article pour présenter les trois « web views » pour Common Lisp: webview, webui, Electron. On peut délivrer une application multi-plateformes écrite avec les technologies du web.
En Common Lisp peut lancer un programme depuis les sources, ou bien générer un exécutable.
Mais, par défaut, l’un ou l’autre sont un peu lourds à l’usage et ne satisfont pas vraiment le développeur pressé qui souhaite lancer un petit script écrit en Lisp. C’est aussi un peu pour cela qu’on reste tant dans le REPL, où toute procédure une fois définie est instantanément appelable. On n’a pas véritablement besoin de passer par le terminal.
Mais des projets élargissent les possibilités.
kiln: « Infrastructure for scripting in Common Lisp to make Lisp scripting efficient and ergonomic » - soit, pouvoir appeler du Lisp depuis le shell de manière légère.
unix-in-lisp - il paraît fou ce projet : on “monte” les utilitaires Unix dans son image Lisp.
CIEL Is an Extended Lisp (discussion HN) - 100% Common Lisp, « batteries included »
Voici une petite sélection.
Des démos d’applications :
Apprendre :
De l’European Lisp Symposium 2024 :
C’était un compte-rendu écourté qui vous aura, je l’espère, donné envie d’en voir plus.
En Common Lisp on s’éclate ET on délivre du logiciel, ce qui n’est pas donné à tout le monde ;)
Commentaires : voir le flux Atom ouvrir dans le navigateur
Firefox 141 open-source web browser is now available for public beta testing with various new features and improvements. Here’s what to expect!
The post Firefox 141 Promises to Use Less Memory on Linux Systems, Beta Out Now appeared first on 9to5Linux - do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
KDE Plasma 6.4.1 turns off a visual desktop effect which could, in rare cases, post a risk of triggering seizures in users with photosensitive conditions.
You're reading KDE Update Turns Off Potentially Seizure Triggering Effect, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
251ème émission Libre à vous ! de l’April. Podcast et programme :
Rendez‑vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 FM en Île‑de‑France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune.
Vous pouvez laisser un message sur le répondeur de la radio, pour réagir à l’un des sujets de l’émission ou poser une question. Le numéro du répondeur : +33 9 72 51 55 46.
Commentaires : voir le flux Atom ouvrir dans le navigateur
N. D. T. — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les tournures de phrase et l’esprit de l’original. Elle est réalisée et publiée conjointement sur les sites XMPP.org, LinuxFr.org et JabberFR.org selon une procédure définie.
Bienvenue dans la lettre d'information XMPP, ravie de vous retrouver !
Ce numéro couvre le mois de mai 2025.
Tout comme cette lettre d'information, de nombreux projets et leurs efforts au sein de la communauté XMPP sont le résultat du travail bénévole de certaines personnes. Si vous êtes satisfait des services et des logiciels que vous utilisez, n'hésitez pas à les remercier ou à aider ces projets ! Vous souhaitez soutenir l'équipe de la lettre d'information ? Lisez en bas de page.
La XMPP Standards Foundation développe des extensions pour XMPP dans sa série XEP en plus des RFC XMPP. Des développeuses, développeurs et experts en standards du monde entier collaborent sur ces extensions, en élaborant de nouvelles spécifications pour des pratiques émergentes et en affinant des méthodes existantes. Proposées par n’importe qui, celles qui rencontrent un grand succès deviennent Finales ou Actives, selon leur type, tandis que d’autres sont soigneusement archivées comme Reportées. Ce cycle de vie est décrit dans XEP-0001, qui contient les définitions formelles et canoniques des types, états et processus. En savoir plus sur le processus des standards. La communication autour des standards et des extensions a lieu sur la liste de diffusion des standards (archive en ligne).
Le processus de développement des XEP commence par la rédaction d'une idée et sa soumission à l'éditeur XMPP. Dans les deux semaines qui suivent, le Conseil décide d'accepter ou non cette proposition en tant que XEP expérimentale.
Si une XEP expérimentale n’est pas mise à jour pendant plus de douze mois, elle sera retirée de la catégorie Expérimental pour être classée comme Déférée. Si une mise à jour intervient, la XEP sera replacée dans la catégorie Expérimental.
Les derniers appels sont lancés une fois que tout le monde semble satisfait de l'état actuel d'une XEP. Une fois que le Conseil a décidé si la XEP semble prête, l'éditeur XMPP émet un dernier appel pour recueillir des commentaires. Les commentaires recueillis lors du dernier appel peuvent aider à améliorer la XEP avant de le renvoyer au Conseil pour qu'il passe à l'étape Stable.
N'hésitez pas à partager ces nouvelles sur d'autres réseaux :
Consultez également notre flux RSS !
Vous recherchez des offres d’emploi ou souhaitez engager une personne en tant que consultante professionnelle pour votre projet XMPP ? Consultez notre tableau des offres d’emploi XMPP.
Il s’agit d’un effort communautaire, et nous souhaitons remercier les bénévoles pour leurs contributions. Le bénévolat et les traductions dans d'autres langues sont les bienvenus ! Les traductions de la lettre d'information XMPP seront publiées ici (avec un certain délai) :
Cette lettre d'information XMPP est produite de manière collaborative par la communauté XMPP. Chaque numéro mensuel de la lettre d'information est rédigé dans ce pad simple. À la fin de chaque mois, le contenu du pad est fusionné dans le dépôt GitHub de la XSF. Nous sommes toujours ravis d'accueillir des contributions. N’hésitez pas à rejoindre la discussion dans notre chat de groupe Comm-Team (MUC) et à nous aider à maintenir cet effort communautaire. Vous avez un projet et souhaitez partager vos actualités ? Pensez à partager vos nouvelles ou événements ici pour les promouvoir auprès d’un large public.
Tâches que nous réalisons régulièrement :
La XSF propose un hébergement fiscal pour les projets XMPP. Veuillez postuler via Open Collective. Pour plus d'informations, voir le billet d'annonce. Projets actuels que vous pouvez soutenir :
Cette lettre d'information est publiée sous la licence CC BY-SA.
Commentaires : voir le flux Atom ouvrir dans le navigateur
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
KDE Plasma 6.4.1 is now available as the first maintenance update to the latest KDE Plasma 6.4 desktop environment series with various improvements and bug fixes.
The post KDE Plasma 6.4.1 Released with Various Improvements and Bug Fixes appeared first on 9to5Linux - do not reproduce this article without permission. This RSS feed is intended for readers, not scrapers.
KDE devs have revived the KISS setup tool, aiming to create a polished first-boot experience for Linux users to rival onboarding on Windows and macOS.
You're reading KDE Slick New ‘First Run’ Setup Tool Taking Shape, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
Deux-cent-cinquantième émission « Libre à vous ! » de l’April. Podcast et programme :
Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 FM en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune.
Commentaires : voir le flux Atom ouvrir dans le navigateur
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.
.
Read the full article on GamingOnLinux.