45 votes

Quels sujets Haskell doivent être abordés dans un style Real-World-Haskell ?

Cela fait maintenant assez longtemps que RWH est sorti (presque 3 ans). J'étais impatient d'obtenir ma copie après avoir suivi l'écriture progressive du livre en ligne (ce qui, je pense, est l'une des meilleures façons d'écrire un livre). Quelle lecture enrichissante au milieu de tous les articles plutôt académiques qu'un étudiant en haskell rencontre habituellement!

C'était un compagnon solide lors de nombreux voyages et j'y fais régulièrement référence. Pourtant, ma copie a commencé à avoir plutôt mauvaise mine et même si la plupart du contenu est toujours valable, de nombreux nouveaux sujets dans le monde de haskell mériteraient d'être abordés de manière similaire.

ma copie mal en point de rwh

Compte tenu de l'impact qu'a eu (et a toujours) RWH, j'espère sincèrement qu'il y aura un jour une suite :) Certains sujets pour une suite qui me viendraient immédiatement à l'esprit:

  • Iterateurs
  • plus sur la programmation concurrente en haskell
  • mérites et dangers de l'évaluation paresseuse
    • éventuellement couvrir certaines bibliothèques courantes qui traitent de cela
    • en particulier l'io paresseux
  • nouvelles fonctionnalités de ghc (par exemple, le nouveau gestionnaire d'E/S, générateur de code LLVM)
  • Mémoïsation
  • ..

Quels sont les sujets pour lesquels la communauté haskell a besoin d'une explication dans le style RWH?


ceci est un résumé des suggestions jusqu'à présent :

Concepts

  • Iterateurs / io paresseux
  • Flèches
  • gestionnaire d'événements ghc

Techniques

  • génériques (uniplate, syb)
  • méta-programmation (Template Haskell)
  • structures de données (utilisation de structures de données fonctionnelles, conception de structures de données)
  • EDSL (conception de EDSL)
  • mémoïsation
  • conception avec des monades
  • bonnes pratiques pour la programmation impérative

Outils

  • ThreadScope
  • Outils avancés FFI (c2hs, utiliser Haskell depuis C)
  • cabal
  • haddock
  • hoogle
  • Optimisation du runtime, en particulier les drapeaux GC
  • Djinn

Librairies

  • tableaux et programmation de tableaux (vector, repa, hmatrix)
  • numériques (nombres aléatoires)
  • programmation parallèle (le monade Par)
  • unicode et localisations (text, text-icu)
  • analyse (attoparsec, tagsoup)
  • réseautage (snap, yesod)
  • trucs web (templating)
  • persistence (en particulier les liens de stockage no-sql)
  • graphiques (cairo, sdl, opengl)
  • xml (haxml)
  • crypto
  • processeurs et systèmes

19voto

Don Stewart Points 94361

Voici mon point de vue, orienté vers l'écosystème.

Bibliothèques

  • tableaux et programmation sur les tableaux :
    • vector
    • repa
    • hmatrix
  • calculs numériques
    • nombres aléatoires
  • programmation parallèle
    • Le monade Par
  • unicode et localisations
    • text et text-icu
  • analyse syntaxique
    • attoparsec
    • tagsoup
  • réseautage
    • snap et/ou yesod
  • choses web
    • modélisation
  • persistance
    • bases de données autres que hdbc
    • liaisons avec le stockage no-sql
  • graphiques
    • cairo
    • sdl
    • opengl
  • xml
    • haxml
  • crypto
  • processeurs et éléments de systèmes

Techniques

  • généricité
    • uniplate
    • syb
  • métaprogrammation
    • Template Haskell
  • structures de données
    • conception de structures de données
  • EDSLs
    • conception de EDSLs
  • mémoïsation
  • conception avec des monades

Outils

  • ThreadScope
  • Outils FFI avancés
    • c2hs
    • utilisation de Haskell depuis C
  • Optimisation du runtime, en particulier les paramètres du GC

12voto

Je serais ravi de voir :

  • Cabal & Hoogle & Haddock (meilleures pratiques pour le workflow quotidien de code - build - test - deploy)
  • Structures de données disponibles et leurs utilisations (dans le monde réel), performances et caractéristiques d'espace
  • Visualisation des données
  • Meilleures pratiques pour la programmation impérative
  • Yesod & Snap
  • Plus d'informations sur la connectivité de base de données (SQL et NoSQL)
  • Plus d'informations sur la programmation réseau

Le "Plus d'informations sur..." pourrait être mieux placé dans un "Haskell Cookbook".

12voto

Dan Burton Points 26639

Voici des sujets moins "du monde réel", mais j'aimerais voir des introductions utiles (et éventuellement des applications dans le monde réel?) à

  • Djinn
  • Template Haskell
  • Arrows

3voto

Tad Points 188

J'ai eu l'intention de poser exactement la même question! J'achèterais RWH vol2 s'il contenait les éléments de la liste jusqu'à présent. J'aimerais également avoir des exemples concrets pour (dans aucun ordre particulier)

3voto

martingw Points 1199

J'aimerais voir une approche "RWH" de la programmation réactive fonctionnelle - une version RWH de cette, peut-être en couvrant Yampa ou quelque chose de similaire. Mais peut-être que ce sujet n'est pas encore assez "du monde réel"...

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