[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).
UPDATE:
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!
JavaScript is remarkably similar to Scheme 10 in many ways (though it is missing continuations 9 and the advanced numerical system of Scheme).
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 call/cc
(and dynamic-wind
, 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
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.