Y a-t-il des personnes utilisant le langage de programmation Scheme?

Je viens juste de commencer à étudier l’informatique à mon université où ils nous enseignent la programmation dans le cadre de Scheme.

Depuis que j’ai appris le C ++ ces 6 dernières années, Scheme me semble un peu étrange. Mes instructeurs me disent que vous pouvez écrire n’importe quel programme que vous pouvez écrire en C ou en Java.

Est-ce que quelqu’un utilise vraiment cette langue?

Peu de gens l’utilisent que je connais, mais ça vaut vraiment le coup d’oeil (si même essayer de programmer dans un autre paradigme, pour apprendre à penser différemment). Vous avez de la chance de pouvoir suivre un cours qui utilise Scheme, car la plupart des universités enseignent maintenant Java. Voici un bon lien si vous voulez voir des cours du MIT ou travailler sur des exemples de problèmes, etc.

MTS Open Courseware – Structure et interprétation de programmes informatiques

Un livre d’accompagnement est également disponible en ligne gratuitement (Structure et interprétation de programmes informatiques).

METTRE À JOUR:

Pour ceux qui s’intéressent à un langage similaire au schéma utilisant la JVM et pouvant accéder aux bibliothèques Java (puisque de nombreuses universités utilisent Java), consultez Clojure . Peut-être que cela deviendra le nouveau langage de choix pour l’introduction en informatique (nous pouvons tous espérer!).

Square USA l’a utilisé pour réaliser le film Final Fantasy .

Voici un article qu’ils y ont publié: Gluing Things Together – Scheme dans la production de contenu CG en temps réel .

De ce papier:

Lors des SIGGRAPH 2000 et 2001, l’équipe de R & D de Square USA a présenté des scènes en temps réel du film complet généré par ordinateur «Final Fantasy: The Spirits Within».

[…]

Nous avons trouvé très utile d’avoir un interpréteur Scheme intégré dans un moteur de rendu en temps réel.

Scheme vous fera penser différemment à la programmation. Essayez simplement d’être ouvert d’esprit!

“Est-ce que quelqu’un utilise vraiment cette langue?”

Paul Graham , célèbre.

JavaScript est remarquablement similaire à Scheme à bien des égards (bien qu’il manque des continuations et le système numérique avancé de Scheme).

De ” Présentation du langage ECMAScript ” (PDF). 2007-10-23. pp. 4. Récupéré le 2009-05-03.

ES3 est un langage simple, très dynamic, basé sur des objects, qui tire ses principales idées des langages Self et Scheme. Le style de programmation est un mélange de programmation par objects et de functional programming: les principaux mécanismes d’abstraction de l’ES3 sont des fonctions de haut niveau et des objects mutables ayant une scope lexicale …

Je travaille actuellement sur les conférences SICP que Abelson et Sussman ont données à Hewlett-Packard en 1986 et les podcasts Cal-Berkeley CS61A donnés par Brian Harvey (enseignés dans le même livre ) et suivis dans Scheme, et l’expérience s’ouvre. de nouvelles façons de penser pour moi. A toute personne qui, comme moi, n’a aucune formation supérieure formelle en CS, je le recommande vivement …

J’ai travaillé sur un projet avec un code de schéma en production, ça peut être assez cool. Scheme avait cette fonctionnalité intéressante de recompilation dynamic pour une auto-optimisation de l’exécution . Je pense que c’est comme un pas de Sky-Net.

Je l’ai utilisé à l’université, mais je ne l’ai pas beaucoup utilisé depuis.

Si vous êtes chancelant en récursivité du tout, je recommande fortement l’apprentissage Scheme ou Lisp. Vous apprendrez à penser de manière récursive à toutes sortes de choses. La récursivité est-elle toujours la bonne voie? Bien sûr que non. Mais c’est un outil utile à avoir dans la boîte à outils.

J’encourage toujours les développeurs à apprendre de nouvelles langues. Plus vous apprenez et maîsortingsez les langues, plus vous pensez de manière abstraite aux problèmes. Moins vous êtes lié à une langue spécifique, plus vous avez de chances de choisir la langue qui correspond le mieux à votre problème.

Au-delà de l’expérience personnelle, l’ indice TIOBE , qui classe actuellement LISP / Scheme 21st avec 0,470% de part de marché, est le plus proche de l’objective. TIOBE utilise les résultats des moteurs de recherche pour créer la liste. De toute évidence, vous voudrez prendre la liste (et toute autre conjecture à l’utilisation de Scheme) avec un grain de sel.

Promotion sans vergogne: consultez le programme PLT . Ils ont créé une belle communauté, offrent leur IDE pour de nombreuses plates-formes et vous offrent une sélection de bibliothèques prête à l’emploi.

Voici un article décrivant le schéma PLT dans une application commerciale: http://www.untyped.com/downloads/icfp068-welsh.pdf .

Clojure est un langage de type Scheme / Lisp qui fonctionne dans la JVM et qui est vraiment bon pour le parallel processing (soi-disant). La bonne chose à propos de l’utilisation de Clojure est que vous avez access à toute l’API Java et à toutes les autres bibliothèques Java.

Clojure devient assez populaire avec les geeks de langue, avec Scala.

Ici, en Russie, nous développons des logiciels utilisant le schéma PLT. Et ça se vend bien;)

Toutes les langues peuvent être utilisées pour écrire n’importe quoi, avec assez d’effort 🙂

Cependant, selon mon expérience, le schéma très intéressant de Scheme a tendance à influencer votre programmation dans d’autres langues.

Les macros de schémas sont extrêmement puissantes et call-with-current-continuation, une fonction de reflection.

Le test classique est la structure et l’interprétation des programmes informatiques (“SICP”). Ça vaut le coup de lire.

Il y a pas mal de schémas d’implémentation pour la plate-forme Java, ils sont utilisés pour les scripts et le prototypage d’applications Java. Il existe un framework web basé sur la continuation pour J2EE dans le schéma, appelé SISCWeb .

Le schéma de base est utilisé comme langage de script dans certaines applications GNU – GnuCash, par exemple, est principalement écrit dans Scheme.

TinyScheme est également utilisé comme langage de script pour GIMP et certaines variantes sont utilisées dans les systèmes embarqués.

Jazz Scheme est un environnement de système open source construit sur Gambit Scheme et qui semble promouvoir de manière agressive les utilisations indussortingelles.

Programme de jazz

Ils rapportent de nouveaux usages dans leurs nouvelles:

Jazz Scheme News

Selon cette page, Scheme est (ou était) utilisé à: DEC, TI, Tektronix, HP et Sun.

Le CV LinkedIn de ce gars utilise Chez Scheme chez Disney.

Juste googler un peu peut révéler beaucoup. Dans ce cas, cela confirme le constat que j’ai déjà entendu dire que l’utilisation de Scheme était assez répandue, mais pas très publique.

Absolument. Scheme est bon pour un certain nombre de classes de problèmes différents. Jim Blandy travaille sur une version de Scheme appelée Minor qui s’intègre beaucoup plus étroitement avec les systèmes natifs et se veut performante.

Je comprends que LilyPond utilise Guile pour l’extensibilité, même si je ne sais pas si je considérerais LilyPond comme le parfait exemple de logiciel, car il a sérieusement blessé mon installation OS X …

Oui! Le schéma est assez intéressant. Je l’ai appris à ma première année à l’Université de Waterloo. C’est un peu différent au début, surtout si vous venez d’un contexte de POO / impératif.

Il fait beaucoup de bonnes choses pour vous, et le paradigme fonctionnel est certainement celui que vous devriez explorer, ne serait-ce que pour gagner une perspective différente.

Il est également très utile, par exemple, je viens de créer un compilateur pour une version super simplifiée de C, et je ne pouvais pas imaginer le faire sans un langage fonctionnel (:

Je joue avec IronScheme ces jours-ci, mais je ne connais personne qui utilise Scheme pour son travail.

J’ai récemment entendu sur le podcast stackoverflow que Reddit était à l’origine écrit dans LISP!

Le schéma est principalement utilisé à des fins pédagogiques. C’est une des raisons pour lesquelles il n’y a pas eu de système de module standard avant le RSR6 (controversé): lors de l’écriture de petits programmes pour les devoirs, il est rare d’avoir besoin de beaucoup de grandes bibliothèques.

Scheme a commencé comme une expérience pour append une POO de type Smalltalk à Lisp. Il a finalement changé le système de macros, ajouté des call/cc (et dynamic-wind , dynamic-unwind ), et a grandi un peu.

Mis à part les projets GNU utilisant Guile comme langage de script, je ne connais aucun système de production utilisant Scheme. Je connais cependant quelques systèmes de production utilisant Lisp ( Orbitz a du code Lisp dans son système de réservation ).

J’ai appris Scheme depuis plus de 2 ans et cela m’a beaucoup aidé en tant que programmeur. Cela m’a appris à penser différemment et à comprendre des concepts et des liens plus profonds entre les langages de programmation. Il est en effet vrai que vous pouvez écrire n’importe quel programme dans Scheme comme en Java et en C, mais c’est plutôt difficile. Il y a des séries de transformations de programmes qui doivent avoir lieu avant de pouvoir être interprétées en tant que code Java ou C. Cela vaut la peine d’apprendre les bases au moins.

J’apprends à ce sujet dans mon cours de programmation linguistique, il a quelques utilisations intéressantes. Je ne l’utiliserais que pour un problème qui se prête facilement à la récursion de la queue.