web-dev-qa-db-fra.com

Quelqu'un utilise-t-il le langage de programmation Scheme pour gagner sa vie?

J'ai commencé à apprendre Scheme pour le plaisir, et je me demandais si quelqu'un l'utilisait pour vivre comme un langage de programmation de premier plan ... ou même comme un outil supplémentaire à l'arsenal de programmation? Si oui, pourquoi l'utilisez-vous? Quels types de problèmes résolvez-vous généralement avec elle?

44
vehomzzz

Il y a beaucoup de gens qui écrivent Scheme for a living. Ce sont des professeurs d'université, cependant, principalement dans le domaine des langages de programmation - il y en a plusieurs ici à l'Université de l'Indiana, comme Kent Dybvig et Dan Friedman . Ils prototypent de nouvelles idées dans la sémantique du langage de programmation (et Dybvig vend également un compilateur Scheme).

Ce n'est pas un domaine qui a beaucoup de clients payants, donc techniquement les professeurs sont payés parce qu'ils ont une permanence dans une université. Mais ils ont obtenu la permanence en publiant de nouvelles idées dans les langages de programmation.

Il y a aussi quelques professeurs qui préconisent l'utilisation du Scheme comme langue d'enseignement, comme Matthias Felleisen et les autres derrière PLT Scheme . Ils écrivent également Scheme for a living.

Le schéma est idéal pour essayer de nouvelles sémantiques de langage car il a des primitives très simples et puissantes et la syntaxe uniforme vous permet de vous concentrer uniquement sur la sémantique. Si vous concevez un nouveau langage de programmation, son prototypage dans Scheme peut être une première étape utile. Le schéma n'empêche pas de nouvelles idées, car il comprend si peu de ses propres.

31

Oui, certaines personnes utilisent Scheme pour gagner leur vie. Par exemple, il y a des ouvertures occasionnelles pour les programmeurs de Scheme ici à Montréal ( http://theschemeway.blogspot.com/2009/03/scheme-job-openings-at-gamerizon.html ). Recherchez sur le site "job" pour plus d'emplois Scheme.

D'après mon expérience, les gens qui programment dans Scheme représentent moins de 0,1% de la communauté de la programmation professionnelle, au moins ici à Montréal. J'ai vu Scheme utilisé pour faire de la programmation de systèmes embarqués, de l'informatique numérique de haute précision, de la programmation Web, des scripts de jeux, etc.

12
cdiggins

ITA Software (fabricants/opérateurs d'un moteur de recherche de billets d'avion qui alimente Hotwired et similaires) écrit leur produit dans LISP.

De plus, AutoCAD peut être scripté dans LISP.

10
nobody

Si la réponse de Warren ne vous a pas compris, la réponse est non. Pratiquement personne ne vit de Scheme. (Le magasin Yahoo de Paul Graham est, à mon avis, l'exception qui confirme la règle - vous pouvez coder un excellent produit dans LISP, mais il y a une raison pour laquelle Graham est pratiquement la seule personne sur terre qui est devenue riche en le faisant. Pensez Harvard Ph.D. et un timing incroyablement chanceux.)

Cependant, les gens du monde réel vivent de la programmation fonctionnelle. Il existe des entreprises comme Galois , Jane Street , etc., spécialisées dans les langages fonctionnels. Et une fois que vous avez appris un langage fonctionnel (Scheme, OCaml, Haskell, etc.), les autres langages fonctionnels sont beaucoup plus faciles à apprendre.

Je pense que la deuxième partie de votre question - quelles questions est le plan bien adapté à résoudre - est facilement répondable. Le schéma est Turing-complet, ce qui signifie qu'il peut résoudre tout ce que n'importe quel autre langage de programmation peut. Il a quelques fonctionnalités astucieuses qui n'ont même pas encore fait partie de LISP commun (récursivité de la queue, notamment), mais il manque également de nombreuses fonctionnalités que CL a acquises au fil des ans.

9
rtperson

La version originale de Yahoo! a été écrit par Paul Graham dans Common LISP. Il l'a vendu pour beaucoup d'argent. ( Mise à jour : seulement un morceau de la boutique, merci pour le commentaire détaillé de Laurence Gonsalves .)

C'est, cependant, l'un des rares ou même le seul cas de succès bien connu de LISP dans le monde réel, et pour une raison quelconque, Yahoo l'a réécrit en C++.

Il existe un certain nombre de programmes gratuits qui utilisent LISP, mais peu ou pas de personnes sont payées pour y travailler, et ce ne sont pas spécifiquement Scheme. gEDA est le package d'automatisation de la conception électronique gnu et est l'un (encore, peu) de cas de réussite pour Guile, le langage d'extension Gnu LISP.

ELisp ou Emacs LISP est peut-être le système LISP le plus couramment déployé. Je ne sais pas combien d'utilisateurs emacs utilisent réellement le langage d'extension.

7
DigitalRoss

Certaines applications GNOME sont scriptables avec le dialecte Guile de Scheme, notamment GIMP .

Étroitement lié, GNU Emacs est scripté en utilisant LISP.

4
Warren Young

Je connais un gars de la région de Boston qui code dans Scheme for a living. Je pense qu'il travaille pour une ramification du MIT. Étant donné que Scheme est la 1ère langue au MIT, beaucoup de startups ici utilisent Scheme au moins en partie ...

Donc, la réponse à cela est "Certains mais pas autant" (Malheureusement)

3
Brian Postow

Coot (une sorte de programme CAD pour les protéines) est le logiciel open source le plus cité 1 et utilise le schéma comme langage d'extension. Les développeurs sont des universitaires et sont payés pour le développer.

1 : dans la littérature scientifique

1
user147714

Je ne suis pas sûr qu'il réponde à 100% à votre définition, mais il y a des musiciens qui font du livecoding dans Extempore , qui est principalement Scheme. Je ne suis pas sûr de tirer exactement les salaires des développeurs principaux, mais je pense que la définition d'un musicien "en activité" est celle qui peut réellement amener les gens à assister à leurs performances, et les personnes utilisant Extempore/Scheme semblent gérer cela jusqu'à présent.

La musique en direct est un domaine où Scheme est un bon choix - il est possible d'exprimer des choses en moins de touches que d'autres langues, et si vous regardez ce qu'elles font, vous verrez comment les macros jouent un rôle important dans la création de pièces/performances. Le schéma semble également plutôt agréable dans l'éditeur, ce qui est un avantage considérable étant donné que ces performances impliquent généralement une projection de l'écran du codeur-interprète.

1
Toadfish

Voyant comment Scheme est une variante de LISP, N'IMPORTE QUEL genre de problèmes.

Comme exemple de vesratility, le moteur de commerce électronique qui est devenu plus tard Yahoo! Les magasins (avant d'être achetés par Yahoo) étaient en grande partie, mais pas exclusivement, écrits en LISP.

1
DVK

Vérifiez ceci: n jeu vidéo écrit en Gambit C . Voici le Publier sur la liste de diffusion Gambit en indiquant comme tel. .

J'ai fait un peu de programmation de schéma dans mon travail, principalement pour automatiser les tâches. Cela a été particulièrement utile lorsque vous parcourez une énorme base de code JSP pour extraire tout CData et le préparer pour l'envoi à notre fournisseur de traductions. (Ouais SXML)

Avoir Scheme sur votre CV n'est pas une mauvaise chose.

1
Jonathan Arkell