[plt-scheme] Scheme contradictions
The Schematics website has been mentioned a few times and I certainly agree
that this could be a great unifying force.
About the Schematics site, does it run off the PLT-server, use servlets,
connect to a database with SchemeQL? If it does this could the basis of a
website blue-print. I saw a report by Ben Simon called 'the Scheme Pet
Store'. The same Idea but kept entirely within PLT-Scheme (is there any
reason to leave it?) would be a great learning aid.
You could go to the Schematics website and download 2 folders, one for
static files and the other dynamic of a striped down version of the
Schematic website. The documentation would explain how to set up the folders
on your home machine with your trusty DrScheme installed already, what
database to get, how and where to put it. Finally how to get the server
talking to the database. Now the inquiring souls have a working website on
their home machines that they can explore, break, fix and basically tinker
under the hood with. Now any further documentation, hacks, can take place in
context of a working environment. The learning can take place within
personal space where the learner can mold the original Schematics site into
a site that expresses the learners wants.
I also want to explain that I am not knocking HtDP and I believe I see where
the authors are coming from. They are teaching a design process and teaching
computer science. Great it that is your goal. If on the other hand your
immediate goal is not computer science but to achieve some other objective
then any thing HtDP becomes a frustration. Later this wouldn't be the case
for then it would be a source of ideas.
As for reasons why people wouldn't take up Scheme because of the
unfamiliarity of it all. Maybe that is part of the reason but I think it is
also that Scheme is very tied up with pedagogy. When looking at other
languages, there is instructional material that takes you down the computer
science path but there is also instructional material that focuses on other
interests and is tailored specifically for that. If you are learning for a
specific reason then you will be inclined to favour any language will
specifically meet that need.
Computer programming shouldn't just be for people who wont to know the whole
process but for people who just wont to get a job done. You don't expect a
carpenter to learn all about metallurgy if all he wants to do is sharpen a
chisel.