views:

1255

answers:

11

I started learning Scheme for fun, and was wondering if anyone uses it for a living as a prime programming language... or even as an additional tool to the programming arsenal? If so, what do you use it for? What kind of problems do you typically solve with it?

+3  A: 

Some GNOME apps are scriptable with the Guile dialect of Scheme, most notably GIMP.

Closely related, GNU Emacs is scripted using LISP.

Warren Young
GIMP is using TinyScheme as the interpreter.
Boune
+6  A: 

The original version of the Yahoo! store was written by Paul Graham in Common Lisp. He sold it for a lot of money. (Update: only a piece of the store, thanks for the detailed comment by Laurence Gonsalves.)

It is, however, one of the few or even the only well-known success case of Lisp in the real world, and for some reason Yahoo rewrote it in C++.

There are a number of free programs that use Lisp, but few if any people get paid to work on them, and these are not specifically Scheme. gEDA is the gnu electronic design automation package and is one of the (again, few) success cases for Guile, the Gnu lisp extension language.

ELisp, or Emacs lisp is perhaps the most commonly deployed lisp system. I don't know how many emacs users actually use the extension language.

DigitalRoss
LOL Great minds and all that.... +1 for remembering more details than me :)
DVK
Only part of it was written in Lisp (or by Paul Graham). From http://www.paulgraham.com/road.html: "Robert Morris wrote the ordering system, which shoppers used to place orders. Trevor Blackwell wrote the image generator and the manager, which merchants used to retrieve orders, view statistics, and configure domain names etc. I wrote the editor, which merchants used to build their sites. The ordering system and image generator were written in C and C++, the manager mostly in Perl, and the editor in Lisp."
Laurence Gonsalves
Reddit was also originally written in Lisp, before being rewritten in Python. [Here's one article on the 'controversy', by Aaron Swartz: http://www.aaronsw.com/weblog/rewritingreddit ]
ShreevatsaR
LG: sigh, so even the "big success case* story is a bit overblown...
DigitalRoss
Hmm. I was always suspicious of PG's "Lisp is why viaweb won big $$", but gee, if you had written it in fortran, it would still have been the first internet store...
DigitalRoss
+1  A: 

Seeing how Scheme is a variant of Lisp, ANY kind of problems.

As an example of vesratility, the e-commerce engine that later became Yahoo! Stores was (before it was bought by Yahoo) largely, though not exclusively, written in Lisp.

DVK
+1  A: 

I know a guy in the Boston area who codes in Scheme for a living. I think he works for some offshoot of MIT. Since Scheme is the 1st language at MIT, a lot of the startups around here use Scheme at least in part...

So, the answer to that is "Some but not that many" (Sadly)

Brian Postow
+1  A: 

If Warren's answer hasn't clued you in, the answer is no. Practically no one is making a living off of Scheme. (Paul Graham's Yahoo Store is, to my mind, the exception that proves the rule -- you can code a great product in Lisp, but there's a reason why Graham is practically the only person on earth who has become wealthy doing so. Think Harvard Ph.D. and incredibly fortunate timing.)

However, people out there in the real world are making a living doing functional programming. There are companies like Galois, Jane Street, etc., who specialize in functional languages. And once you've learned one functional language (Scheme, OCaml, Haskell, etc.), other functional languages are much easier to learn.

I think the second part of your question -- what questions is Scheme well-suited to solving -- is easily answerable. Scheme is Turing-complete, which means it can solve anything that any other programming language can. It has some nifty features that haven't even made it into Common Lisp yet (tail recursion, notably), but it's also lacking many features that CL has acquired over the years.

rtperson
A: 

Check out: http://webcast.berkeley.edu/course_details_new.php?seriesid=2009-D-26266&semesterid=2009-D This is a great course on scheme programming, which shows that scheme is still being taught at the university level, so there must be some application in it.

dar7yl
WTF? who downvoted this, and why?
dar7yl
I didn't cast the downvote, but my guess is because this doesn't really answer the question. The OP isn't asking for resources on learning scheme, they're asking for real-world applications and success-stories. Thanks for the link, though. I just started the MIT SICP course, and this will be a nice additional resource.
Bill the Lizard
My point was that scheme is still being taught at the university level, so there must be some application in it.
dar7yl
@dar7yl: then you might want to amend your answer to say that.
Paul Biggar
I would assume that adding a comment is equivalent to amending my answer :)
dar7yl
@dar7yl: its not.
Paul Biggar
Universities teach lots of things. Only some of which have pratical applications for employment outside of a university.
Shannon Severance
+6  A: 

ITA Software (makers/operators of an airfare search engine that powers Hotwired and the like) writes their product in Lisp.

Also, AutoCAD can be scripted in Lisp.

Andrew Medico
+1 for AutoCAD. A few people make decent money writing AutoCAD plugins.
snicker
+6  A: 

Yes some people use Scheme for a living. For example there are occasional openings for Scheme programmers here in Montreal (http://theschemeway.blogspot.com/2009/03/scheme-job-openings-at-gamerizon.html). Search the site for "job" for more Scheme jobs.

In my experience people programming in Scheme make up less than .1% of the professional programming community, at least here in Montreal. I have seen Scheme used for doing embedded systems programming, high-precision numerical computing, web programming, game scripting, and more.

cdiggins
+8  A: 

There are plenty of people who write Scheme for a living. They're university professors, though, mostly in the field of programming languages--there are several here at Indiana University, like Kent Dybvig and Dan Friedman. They prototype new ideas in programming language semantics (and Dybvig also sells a Scheme compiler).

This is not a field that has a lot of paying customers, so technically the professors are paid because they have tenure at a university. But they got tenure by publishing new ideas in programming languages.

There are also some professors who advocate the use of Scheme as a teaching language, like Matthias Felleisen and the others behind PLT Scheme. They also write Scheme for a living.

Scheme is great for trying out new language semantics because it has very simple, powerful primitives and the uniform syntax lets you concentrate only on the semantics. If you are designing a new programming language, prototyping it in Scheme might be a useful first step. Scheme doesn't get in the way of new ideas because it includes so few of its own.

Nathan Sanders
No professor "writes Scheme for a living". They teach and do research for a living. Any Scheme writing they do is incidental.
cdiggins
+1  A: 

Check this out: A Video Game Written in Gambit C. Here is the Post to the Gambit mailing list stating as such..

I've done a smattering of scheme programming in my job, mostly for automating tasks. It was especially helpful when walking over a massive JSP codebase to pull out any CData, and prepare it for sending to our translations vendor. (Yay SXML)

Having Scheme on your resume isn't a bad thing.

Jonathan Arkell
+1  A: 

Coot (some sort of CAD program for proteins) is the most highly cited [1] open source software and uses scheme as the extension language. The developers are academics and are paid to develop it.

[1]: in the scientific literature