[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: peasant revolt against DrScheme!



> X-Authentication-Warning: fast.cs.utah.edu: majordom set sender to owner-plt-scheme@flux.cs.utah.edu using -f
> From: Greg Pettyjohn <GregP@bsquare.com>
> Date: Mon, 22 Jan 2001 19:23:36 -0800
> Content-Type: text/plain;
> 	charset="iso-8859-1"
> Sender: owner-plt-scheme@fast.cs.utah.edu
> Precedence: bulk
> 
> > On the other hand, I can understand why people who have no interest in
> > programming except as a practical tool might balk at learning 
> > scheme, which
> > is clearly not the most used language in practical contexts.  
> > I think the
> > long-term solution to this is to have more useful programs 
> > that use scheme
> > as a scripting language, which will hopefully change the outdated
> > perception of scheme as an "academic language".
> 
> What is a "scripting language"? I think that the category "scripting
> language"
> is defined more by it's constituents than by anything else i.e. Perl,
> JScript,
> VB, Python et al. May I suggest that Scheme is not just a "scripting
> language".

I agree that scheme is not _just_ a scripting language.  My point was that
it is eminently suitable for the kind of tasks that people use scripting
languages for (areas where flexibility and rapid development are much more
important than raw performance), and so scheme, and particularly mzscheme,
can be used effectively in this area.  The advantage is enormous: the
flexibility provided by scheme is so great that the incentive to invent Yet
Another Lame Scripting Language will (I hope) be vastly reduced.  Put
another way, once they've tasted the power of scheme why would they want to
go back to perl, python, etc.?  Even the syntactic issue can (in principle)
be handled by some kind of translator(s) to tide people over until they
understand why scheme syntax is actually the Right Thing (TM).

> 
> The whole notion of a "scripting language" rests on the assumption that the
> underlying
> functionality has been provided by a layer written in, most likely C. With
> this
> assumption, there's really no point doing your scripting in Scheme.

I disagree here.  Scripting languages traditionally do provide good
interfaces to code written in C/C++, as does mzscheme.  This is very
important for time-critical aspects of many programs.  Of course,
conceivably you might use a scheme compiler to generate highly optimized C
code for speed -- or you may write the C/C++ code directly.  It's your
choice.  Regardless, typical "scripted" applications have a large fraction
of the code written in the scripting language, for the more mutable and/or
user-configurable parts of the application.

Side note: a course that taught students scheme, then C/C++, then linking
them together would be very cool and eminently practical.  Students would
probably hate it, though :-)

> OK, let me elaborate:
> Who cares that your Scheme script won't crash? The underlying dll *will*
> crash,
> and so it really doesn't matter how safe Scheme is, your system is still
> unstable.
> 
> Who cares that your Scheme script has a garbage collector? The underlying
> dll was written
> in C, so it leaks memory just the same.
> 

True, but you can write C code that won't crash or leak memory -- it's just
much harder.  Safety is important, but raw speed is also important for many
tasks.

> So now that I've bombarded you all with annoying riddles, allow me to make a
> coherent point:
> 
> A programming language defines an implicit abstract opperating system and
> the reverse
> is also true, an opperating system defines an implicit abstract programming
> language.
> 
> The "killer app" won't be a scripting application. It will be an application
> of
> Scheme as a high level OS.
> 

That would be cool too.  These are not mutually exclusive.

Mike