45 votes

Haskell est-il approprié comme langue maternelle?

J'ai eu une précédente exposition à des langages (C, certaines Java) cependant, je dirais que je n'avais aucune expérience en programmation. Donc: me traiter comme un non-programmeur, serait Haskell être adapté en tant que première langue?

Mes intérêts dans le domaine des Mathématiques Pures et CS semblent s'aligner à l'intention de la plupart des Haskell tutoriels, et bien que j'peuvent, par nature, reconnaître les actuels et futurs de l'industrie de la valeur de la programmation impérative, je trouve le potentiel de la programmation fonctionnelle (dans la mesure où il semble un tel changement de paradigme) fascinant.

Je suppose que ma question peut être résumée comme suit - ce qu'un non-programmeur de comprendre la programmation impérative pour apprécier et utiliser l'ensemble de la programmation fonctionnelle?

Quelques références:

32voto

C. A. McCann Points 56834

Ainsi, l'existence de SICP suggère que les langages fonctionnels peuvent être utilisés comme matériel d'introduction. Le schéma est peut-être plus accessible que Haskell, cependant.

Haskell semble avoir la réputation d'être "difficile" à apprendre, mais les gens ont tendance à oublier que les classiques de la programmation impérative est difficile à apprendre. Beaucoup de gens luttent dans un premier temps avec le concept de l'affectation d'une valeur à une variable, et un nombre surprenant de programmeurs jamais fait de ne devenir à l'aise avec les pointeurs et références indirectes.

Les connexions entre Haskell et abstrait des mathématiques n'a pas vraiment d'importance autant que les gens supposent parfois, mais pour quelqu'un qui est intéressé dans le calcul de toute façon, en regardant les analogies pourraient offrir des bonus intéressants.

29voto

Don Stewart Points 94361

Il y a eu au moins une étude sur les effets de l'enseignement Haskell pour débutant programmeurs:

Avec le abstraits suivants:

Nous soutenons que l'enseignement purement programmation fonctionnelle en tant que tels dans étudiant de première année de cours est préjudiciable à à la fois le programme ainsi que de la promotion du paradigme. Au lieu de cela, nous besoin de se concentrer davantage sur les objectifs généraux de l'enseignement de techniques élémentaires de la programmation et les concepts essentiels de le calcul. Nous avons l'appui de ce point de vue avec l'expérience acquise au cours de plusieurs semestres d'enseignement de la grande première année classes (jusqu'à 600 étudiants) Haskell. Ces classes se composait de les étudiants en sciences informatiques ainsi que les étudiants provenant d'autres disciplines. Nous avez recueillis systématiquement étudiant commentaires par la réalisation d'enquêtes après chaque semestre. Cet article contribue à une approche de l'utilisation de moderne fonctionnelle des langues dans le premier l'année des cours et, sur cette base, les défenseurs de l'utilisation de la fonctionnelle de les langues dans ce cadre.

Donc, oui, vous pouvez utiliser Haskell, mais vous devriez vous concentrer sur élémentaires, en général, les techniques et les concepts essentiels, plutôt que de la programmation fonctionnelle en soi.

Il y a un certain nombre de livres de vulgarisation pour les débutants que pour les programmeurs qui font aussi d'elle une cible de choix pour l'enseignement de ces concepts élémentaires, y compris:

  • "La programmation Haskell"
  • "L'art de la Programmation Fonctionnelle"

En outre, Haskell est déjà largement enseigné comme première langue. - mais rappelez-vous, la clé est de se concentrer sur les concepts de base, comme illustré dans Haskell, de ne pas enseigner la grande richesse de la langue qui est Haskell lui-même.

20voto

dbyrne Points 18604

Je vais aller à l'encontre de l'opinion populaire et dire que Haskell n'est PAS un bon premier langage de programmation pour le premier programmeur de l'histoire. Je ne pense pas que c'est accessible pour un débutant comme langages comme Ruby.

La raison pour cela est que les gens ne sont pas de penser le monde de manière fonctionnelle. Quand ils voient une voiture en bas de la rue, ils voient la même voiture, avec l'évolution des mutable état. Ils ne voient pas une série de légèrement différent immuable voitures.

Si vous découvrez d'autres AINSI en question, vous verrez que Haskell est quasiment jamais mentionné comme un bon choix pour un débutant.

Toutefois, si vous êtes un mathématicien, ou déjà savoir assez sur la programmation de comprendre la valeur de la fonctionnelle de la programmation, je pense que Haskell est un excellent choix.

Donc, pour résumer, je pense que Haskell est un ajustement parfait pour vous, mais pas un bon ajustement pour le débutant.

EDIT: Merci pour les commentaires judicieux. Owen point que les gens pensent dans un multi-paradigme manière est très vrai. Cela renforce ma conviction qu'un multi-paradigme des langages comme Ruby serait plus facile à ramasser, et a l'avantage d'exposer l'étudiant à la fois impératif et fonctionnel de la pensée. Haskell est décidément pas le multi-paradigme.

Chuck mentionné Haskell sophistiqué système de type qui est un autre bon point. Alors que personnellement, je préfère les langages statiquement typés, à l'aide d'un langage dynamique permet à un débutant d'ignorer que la pièce du puzzle jusqu'à ce qu'ils sont curieux de savoir ce qui se passe derrière les coulisses. Haskell type de système, tandis que l'élégant, il est dans votre visage à partir de jour 1.

13voto

Daniel Velkov Points 9244

Onze raisons pour utiliser Haskell comme un mathématicien
Je ne peux pas l'écrire mieux que ça. Mais pour résumer:

  • Haskell est déclarative et en mathématiques est l'ultime langage déclaratif, ce qui signifie que le code écrit en Haskell est remarquablement similaire à ce que vous écrivez comme un rapport mathématique.
  • Haskell est de haut niveau, pas besoin de connaître les détails sur les caches, gestion de la mémoire et de tous les autres substance matérielle. Aussi cela signifie que les programmes courts qui est toujours bon.
  • Haskell est grande pour le calcul symbolique, de l'algèbre, la logique ...
  • Haskell est jolie :)

Pour répondre à votre question: vous n'aurez aucun problème pour démarrer avec un langage fonctionnel comme un mathématicien avec aucune expérience en programmation. En fait, c'est le meilleur choix, vous n'aurez pas à réparer les dommages au cerveau, vous obtenez à partir de C/Java/whatever.
Vous devriez également vérifier Mathematica. Certaines personnes ont tendance à le détester car c'est un fermé source du produit, mais je pense que c'est un très bon environnement pour faire des mathématiques.

12voto

LukeN Points 3191

Si vous n'avez aucune expérience du tout, il vous sera en fait plus facile d'être productif en programmation fonctionnelle, en particulier la programmation fonctionnelle PURE. Je suis un immigrant impératif pour pouvoir fonctionner; je devais oublier environ 80% de ce que j'avais appris à être productif à Haskell.

En revanche, il est plus facile de passer ultérieurement de fonctionnel à impératif.

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