2 points par GN⁺ 2024-04-22 | 1 commentaires | Partager sur WhatsApp

Le langage de programmation Racket

  • Racket est un langage de programmation mature, pratique, extensible, robuste et élégant
  • Racket est un langage de programmation orientée langage (Language-Oriented Programming) qui présente les caractéristiques suivantes :
    • prise en charge du higher-order occurrence typing
    • intégration du langage Scribble pour la génération de documentation
    • prise en charge de la programmation logique comme Datalog
    • système de macros puissant, allant des petites aux grandes macros, facilitant l’écriture de DSL et prenant en charge toute la syntaxe
  • L’écosystème Racket se compose de logiciels, de tutoriels et de documentation, d’une communauté, de livres, d’éducation, de swag, etc.
  • Racket a reçu le soutien de nombreuses organisations et de particuliers, notamment la NSF, la DARPA, le FIPSE, la fondation Exxon, Microsoft, Mozilla et Google

L’avis de GN⁺

  • L’un des plus grands atouts de Racket est sa prise en charge de la programmation orientée langage. Cela permet de créer facilement des langages spécifiques à un domaine (DSL), ce qui aide à améliorer la productivité
  • Cependant, en raison des caractéristiques des langages de la famille Lisp, l’usage intensif des parenthèses peut nuire à la lisibilité pour les débutants. Il serait intéressant d’introduire une syntaxe alternative aux parenthèses, comme en Clojure
  • Les tutoriels et la documentation sont bien fournis, ce qui facilite l’apprentissage. Le langage est aussi largement utilisé à des fins pédagogiques
  • Il peut être utilisé comme langage de programmation généraliste, mais il présente aussi une spécialisation pour la création de DSL ou pour l’enseignement, notamment avec SICP. Pour un usage en environnement de production réel, il semble encore manquer de bibliothèques, entre autres
  • Recommandé comme langage d’apprentissage pour celles et ceux qui veulent débuter avec les langages fonctionnels. En revanche, pour un usage professionnel, il peut être judicieux d’envisager Haskell, OCaml ou F#

1 commentaires

 
GN⁺ 2024-04-22
Avis Hacker News

Résumé :

  • Racket est séduisant par ses fonctionnalités de base — compilateur, système de gestion de paquets, IDE graphique, bindings Emacs, etc. — mais la partie recherche en langages de programmation portée par certains professeurs d’informatique suscite moins d’intérêt.
  • Contrairement à Python, où l’on écrit du code dans l’éditeur puis on l’exécute dans le shell, Racket impose d’interagir avec une VM persistante et un REPL, ce qui rend l’adaptation au workflow difficile.
  • Il n’est pas clair comment intégrer dans une seule application des langages Racket comme typed/racket, racket/gui ou scribble/base. Les chapitres de tutoriel décrivant chaque langage sont traités séparément, sans lien entre eux, ce qui prête à confusion.
  • Racket est rapide et pratique, avec des fondations solides et une excellente approche de la concurrence. Son écosystème de paquets intégré et son très bon système de documentation sont aussi des atouts. Sa compatibilité descendante est meilleure que celle de Python.
  • Des projets concrets ont été développés en Racket, notamment un site d’e-commerce, des applications pour iOS/macOS, un client desktop pour Apache Kafka et un #lang pour Lua.
  • Hacker News lui-même a été écrit en Arc et tourne sur Racket.
  • Racket convient bien au développement de binaires avec interface graphique ainsi qu’au parsing de JSON, XML et autres formats.
  • Son système de macros diffère de celui de Common Lisp et demande un temps d’adaptation, mais il est très adapté à la métaprogrammation.
  • La vision académique et puriste de la programmation proposée par les langages de la famille Lisp semble éloignée du développement d’applications pragmatiques.