web-dev-qa-db-ja.com

誰かがSchemeプログラミング言語を生活のために使用していますか?

私は楽しみのためにSchemeを学び始めました、そして誰かがそれを主要なプログラミング言語として生活のためにそれを使っているのか...プログラミング兵器の追加のツールとしてさえ疑問に思っていましたか?もしそうなら、あなたはそれを何に使うのですか?通常、どのような問題を解決しますか?

44
vehomzzz

生活のためのスキームを書く人はたくさんいます。彼らは大学の教授ですが、ほとんどがプログラミング言語の分野です-ここインディアナ大学には Kent DybvigDan Friedman のような人が何人かいます。彼らはプログラミング言語のセマンティクスの新しいアイデアのプロトタイプを作成しています(そしてDybvigはSchemeコンパイラーも販売しています)。

これは、有料の顧客が多い分野ではないため、技術的には、大学に在籍している教授に給与が支払われます。しかし、彼らはプログラミング言語で新しいアイデアを発表することによって任期を獲得しました。

Matthias Felleisen のようにSchemeを教育言語として使用することを提唱する教授もいます PLT Scheme の背後にいる他の教授もいます。彼らはまた、生活のためのスキームを書いています。

Schemeは非常にシンプルで強力なプリミティブを持ち、統一された構文ではセマンティクスのみに集中できるため、新しい言語のセマンティクスを試すのに最適です。新しいプログラミング言語を設計している場合は、Schemeでプロトタイプを作成することは、最初のステップとして役立ちます。独自のものがほとんどないため、Schemeは新しいアイデアを邪魔しません。

はい、一部の人々はSchemeを生活のために使用しています。たとえば、モントリオールには、Schemeプログラマーのために時々オープニングがあります( http://theschemeway.blogspot.com/2009/03/scheme-job-openings-at-gamerizon.html )。他のスキームの仕事については、「仕事」のサイトを検索してください。

私の経験では、Schemeでプログラミングしている人は、少なくともここモントリオールでは、プロのプログラミングコミュニティの0.1%未満しか占めていません。組み込みシステムプログラミング、高精度数値計算、Webプログラミング、ゲームスクリプトなどを行うために使用されるSchemeを見てきました。

12
cdiggins

ITAソフトウェア (Hotwiredなどを強化する航空運賃検索エンジンのメーカー/オペレーター)は、LISPで製品を書いています。

また、 AutoCAD はLISPでスクリプト化できます。

10
nobody

ウォーレンの答えがあなたの手がかりにならない場合、答えはノーです。事実上、Schemeで生計を立てている人はいません。 (Paul GrahamのYahoo Storeは、私の考えでは、ルールを証明する例外です。LISPで優れた製品をコーディングできますが、Grahamが実際にそうして裕福になった唯一の人である理由があります。ハーバードを考えてください。博士号と信じられないほど幸運なタイミング。)

しかし、現実世界にいる人々は、関数型プログラミングで生計を立てていますGaloisJane Street などの関数型言語を専門とする会社があります。また、1つの関数型言語(Scheme、OCaml、Haskellなど)を習得すると、他の関数型言語の方がはるかに習得しやすくなります。

私はあなたの質問の2番目の部分、つまり、Schemeがどの問題を解くのに適しているかは簡単に解けると思います。スキームはチューリング完全です。つまり、他のプログラミング言語でできることは何でも解決できます。まだCommon LISPに組み込まれていない気の利いた機能(特に、末尾再帰)がいくつかありますが、CLが長年にわたって獲得してきた多くの機能も不足しています。

9
rtperson

Yahoo!のオリジナルバージョンストアは、Common LISPのPaul Grahamによって書かれました。彼はそれを大金で売った。 (更新Laurence Gonsalves による詳細なコメントに感謝し、ストアの一部のみ。)

しかし、これは現実世界で数少ない、または唯一の有名なLISPの成功事例の1つであり、何らかの理由でYahooがC++で書き直しました。

LISPを使用するfreeプログラムはたくさんありますが、その仕事にお金を払う人がいるとすれば、ほとんどありません。これらは特にSchemeではありません。 gEDAはgnu電子設計自動化パッケージであり、Gnu LISP拡張言語であるGuileの(これもまた数少ない)成功事例の1つです。

ELisp、つまりEmacs LISPは、おそらく最も一般的に展開されているLISPシステムです。拡張言語を実際に使用しているemacsユーザーの数はわかりません。

7
DigitalRoss

一部の [〜#〜] gnome [〜#〜] アプリは、Schemeの Guile 方言でスクリプト可能であり、特に [〜#〜] gimp [〜 #〜]

密接に関連している GNU Emacs は、LISPを使用してスクリプト化されています。

4
Warren Young

ボストンで、Schemeを使ってコーディングをしている人を知っています。彼はMITの一部の支部で働いていると思います。 SchemeはMITの第1言語であるため、この周辺の多くのスタートアップは少なくとも部分的にSchemeを使用しています...

だから、その答えは「いくつかはあるがそれほど多くはない」です(悲しいことに)

3
Brian Postow

Coot (ある種のCADタンパク質のプログラム)は最も引用されている 1 オープンソースソフトウェアであり、スキームを拡張言語として使用しています。開発者は学者であり、それを開発するために支払われます。

1 :科学文献

1
user147714

あなたの定義を100%満たしているかどうかはわかりませんが、 Extempore でライブコーディングを行うギグミュージシャンがいます。リードデベロッパーの給与を正確に引き出すことはできませんが、確かに、「働く」ミュージシャンの定義は、実際に人々をパフォーマンスに参加させることができる人であり、Extempore/Schemeを使用している人々はこれまでこれを管理しているようです。

音楽のライブコーディングは、Schemeが適している領域の1つです。他の言語よりも少ないキーストロークで物事を表現することが可能であり、それらが何をしているかを見ると、マクロがどのように作成に大きな役割を果たすかがわかります。作品/パフォーマンス。エディタでは、Schemeもかなり見栄えがよく、これらのパフォーマンスには通常、コーダー-実行者の画面の投影が含まれるため、これは重要な利点です。

1
Toadfish

SchemeがどのようにLISPの変形であるかを見ると、あらゆる種類の問題があります。

不安定性の例として、後にYahoo!になったeコマースエンジン。ストアは(Yahooに買収される前は)LISPで書かれていましたが、これに限定されません。

1
DVK

これをチェックしてください: ガンビットCで書かれたビデオゲーム 。これが Gambitメーリングリストへの投稿など です。

主にタスクの自動化のために、仕事でスキームプログラミングを少しずつ行いました。大規模なJSPコードベースを調べてCDataを引き出し、翻訳ベンダーに送信する準備をするときに特に役立ちました。 (イェイSXML)

履歴書にSchemeがあることは悪いことではありません。

1
Jonathan Arkell