[plt-scheme] Request for Info

From: Geoffrey S. Knauth (geoff at knauth.org)
Date: Mon Dec 18 02:54:55 EST 2006

On Dec 15, 2006, at 00:38, Sarvottam Salvi wrote:
> We are 8th and 9th grade students.  We are looking for language  
> which will allow us to present Chemistry and Physics concepts  
> graphically and interactively.  We would also like to acquire good  
> programing skills.  [...] Has anyone done simulations in scheme.

Gerry Sussman, one of the authors of the classic SICP:


also co-authored Structure and Interpretation of Classical Mechanics:


The latter book is meant for college undergraduates and graduate  
students, mostly because it requires college-level math skills, and  
it has simulations you may find interesting.  It demonstrates  
advanced application of Scheme to a particular field, i.e., physics.   
If the math looks tough, it's possible you'll figure out some of the  
math just by reading the Scheme code.  Both books are available for  
reading online.

The messages that recommended you explore HtDP, which is also online,  
are good guidance.  HtDP is about learning habits that minimize bugs,  
keep programs manageable, and help you get your ideas into code with  
a minimum of fuss.  SICP and SICM provide food for the imagination  
that could keep you thinking for years.

> If we have to make our programs useful for others so that they can  
> run in their browser then do we have to convert them into Java  
> (Java servelets and applets)?  If so then it seems Java should be  
> our first language to be learned.

Web applications can be written in almost any language these days.

Java is good for many purposes, but you'll do more typing.  With any  
language, when your initial design is not perfect, you have to  
rewrite your code.  Rewriting your code will be easier in Scheme if  
you've read HtDP and used a good tool like DrScheme.  If you want to  
improve Java code, you need an IDE (integrated development  
environment) like IDEA / Eclipse / Netbeans.

If you want interactivity, as Matthias Felleisen mentioned, check out  
Flapjax.  Look at all the demos, look at how quickly they come up,  
and then compare them with Java applets.  Ask yourself which has the  
capability and performance that fits your need.

> Why there are are so many Schemes?

The core language is a standard, and very powerful already.  It is  
also a launch pad for the imagination and tremendous freedom.  It is  
a bit like learning to fly.  Core Scheme is to the many  
implementations as the skill of flying is to the kinds of aircraft  
you might fly.  The mechanics of flying are similar for many  
aircraft, but pilots like different airplanes for different reasons.   
Many pilots like to master different aircraft.  I can't think of any  
pilot who would be happy if there were only one design everyone had  
to use.

> We are 8th and 9th grade students.

I started programming when I was your age (1975), which  
coincidentally is when Scheme was created.  I had fun with Basic,  
Fortran, assembler, C and a dozen other languages, but I didn't see  
Scheme until I got to college.  If I'd started with Scheme, I would  
have had a distinct advantage.  I quickly saw the people who were  
using Scheme and Lisp were really smart and writing incredible programs.

Geoffrey S. Knauth | http://knauth.org/gsk

Posted on the users mailing list.