[ACCEPTED]-Are there people using the Scheme programming language out there?-scheme
Not a lot of people use it that I know, but 16 it is definitely worth a peek (if even just 15 to try programming in another paradigm, so 14 that you learn to think differently). You're 13 lucky to be able to take a class that uses 12 Scheme, as most universities these days 11 now teach Java. Here's a good link if you 10 want to see some lectures from MIT or work 9 on sample problems etc.
MIT Open Courseware - Structure and Interpretation Of Computer Programs
There's an accompanying 8 book available on-line for free as well (Structure and Interpretation 7 of Computer Programs).
For those interested 6 in a language that is similar to scheme that makes 5 use of the JVM and can access Java libraries 4 (since lots of universities use Java), check 3 out Clojure. Maybe this will become the new language 2 of choice for computer science introduction 1 (we can all hope!).
Square USA used it to make the movie Final Fantasy.
Here's 8 a paper they published on it: Gluing Things Together - Scheme in the Real-time CG Content Production.
From that 7 paper:
At SIGGRAPH 2000 and 2001, we, Square 6 USA R&D team showed real-time rendering 5 of scenes from full computer-generated movie 4 ``Final Fantasy: The Spirits Within''.
We 3 found it tremendous help to have an embedded 2 Scheme interpreter in real-time rendering 1 engine.
Scheme will make you think differently about 1 programming. Just try be open-minded!
"Is anybody really using this language?"
Paul Graham, famously.
From 8 "ECMAScript Language Overview" (PDF). 2007-10-23. pp. 4. Retrieved 7 2009-05-03.
ES3 is a simple, highly dynamic, object-based 6 language that takes its major ideas from 5 the languages Self and Scheme. The programming 4 style is a mixture of object-based and 3 functional programming: The primary abstraction mechanisms 2 in ES3 are lexically scoped higher-order 1 functions and mutable objects ...
I'm currently working through the SICP lectures that Abelson and Sussman gave at Hewlett-Packard in 1986 and the 6 Cal-Berkeley CS61A podcasts given by Brian Harvey (taught from the same book) and following along 5 in Scheme, and the experience is opening 4 up whole new ways of thinking for me. To 3 anyone who, like me, doesn't have any formal 2 CS higher-education, I highly recommend 1 it...
I've worked on a project with scheme code 3 in production, it can be pretty cool stuff. Scheme 2 had this cool feature of dynamically recompiling to self-optimize execution. I think it's 1 like one step away from sky-net.
I used it in college, but I haven't used 13 it much since.
If you're shaky on recursion 12 at all, I highly recommend learning Scheme 11 or Lisp. You'll learn to think recursively 10 about all sorts of things. Is recursion 9 always the right way to go? Of course not. But 8 it's a useful tool to have in the toolbox.
I 7 always encourage developers to learn new 6 languages. The more languages you learn 5 and become proficient with, the more abstractly 4 you'll think about problems. The less you're 3 tied to a specific language, the more likely 2 you are to choose the language which best 1 fits your problem.
Beyond personal experience, the closest 11 thing you'll get to an objective guess is 10 the TIOBE index, which currently ranks LISP/Scheme 9 21st with 0.470% market share. TIOBE uses 8 search engine results to create the list. Obviously, you'll want 7 to take the list (and any other guess at 6 Scheme usage) with a grain of salt.
Shameless 5 promotion: check out PLT Scheme. They've created a 4 nice community, offer their IDE for many 3 platforms, and give you a nice library selection out-of-the-box.
Here's 2 an article describing PLT Scheme in a commercial 1 app: http://www.untyped.com/downloads/icfp068-welsh.pdf.
Here in Russia we develop software using 1 PLT Scheme. And it sells well ;)
Clojure is a Scheme/Lisp like language that works 6 in the JVM and is really good for parallel 5 processing (supposedly). The great thing 4 about using Clojure is that you get access 3 to the entire Java API, and any other Java 2 libraries.
Clojure is getting pretty popular 1 with language geeks, along with Scala.
All languages can be used to write anything, with 8 enough effort :)
However, Scheme's pretty 7 cool - knowing Scheme tends to influence 6 your programming in other languages, in 5 my experience.
Scheme macros are extremely 4 powerful, and call-with-current-continuation 3 a mindwarping function.
The classic test 2 is Structure and Interpretation of Computer 1 Programs ("SICP"). Worth a read.
There are quite a few scheme implementation 9 for Java platform, they are used for scripting 8 and prototyping of Java applications. There 7 exists continuation-based web framework 6 for J2EE in scheme, called SISCWeb.
Guile scheme 5 is used as scripting language in some GNU 4 apps - GnuCash for example is mostly written 3 in Scheme.
Also TinyScheme is used as scripting language 2 for GIMP and some variations of it are used 1 in embedded systems.
Yes! Scheme is quite interesting. I learned 11 it at my first year at the University of 10 Waterloo. It is a little different at first, especially 9 if you come from an OOP/imperative background.
It 8 does a lot of nice things for you, and the 7 functional paradigm is definitely one you 6 should explore, if for nothing but gaining 5 a different perspective.
It is also quite 4 useful, for example, I just made a compiler 3 for a super simplified version of C, and 2 I couldn't imagine doing it without a functional 1 language (:
Jazz Scheme is an open source scheme environment 10 built on Gambit Scheme and it seems to aggressively 9 promote industrial uses, check it out:
They 8 report new uses in their news:
According 7 to this page, Scheme is (or was) in use at: DEC, TI, Tektronix, HP, and 6 Sun.
This guy's LinkedIn CV reports using Chez Scheme 5 at Disney.
Just googling around a little 4 can reveal a lot. In this case, it bears 3 out the observation that I once heard that 2 Scheme use is pretty ubiquitous, just not 1 very public.
Absolutely. Scheme is good for a number 8 of different classes of problems. Jim Blandy 7 is working on a version of Scheme called Minor that 6 integrates a lot closer with native systems 5 and is meant to be performant.
I understand 4 that LilyPond uses Guile for extensibility, although 3 I don't know that I'd hold LilyPond as the 2 ideal shining example of software as it 1 seriously wounded my OS X installation...
I recently heard on the stackoverflow podcast 1 that Reddit was originally written in LISP!
I am playing with IronScheme these days, but 2 don't know anyone who uses Scheme for actual 1 work.
Scheme is used mainly for teaching purposes. That's 12 one reason there hasn't been a standard module system 11 until the (controversial) RSR6 one: when 10 writing small programs for homework it's 9 unusual to need lots of big libraries.
Scheme 8 started out as an experiment to add Smalltalk-like 7 OOP to Lisp. It eventually changed the 6 macro system, added
dynamic-unwind), and grew 5 quite a bit.
Aside from the GNU projects 4 using Guile as a scripting language, I don't 3 know of any production systems using Scheme. I 2 do know of a handful of production systems 1 using Lisp, though (Orbitz has Lisp code in its reservation system).
I have learned Scheme for over 2 years now 10 and it has significantly helped me as a 9 programmer. It taught me how to think differently 8 and understand deeper concepts and links 7 between programming languages. It is in-fact 6 true that you can write any program in Scheme 5 as in Java and C, however it is rather difficult. There 4 are series of program transformations that 3 must take place before it can be interpreted 2 as Java or C code. It's worth while learning 1 the basics at least though.
I'm learning about it in my Program Language 3 Design class, it has some neat uses. I 2 would only use it for a problem that lends 1 itself easily to tail recursion.
More Related questions