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

RE: Var-free programming (slightly off-topic)

--- Christopher Barber <cbarber@curl.com> wrote:
> > I have one definition. A LL is one that you can design &
> > implement with not
> > too much work -- two, three days to get a really good
> implementation. That

> Clearly by this definition, Scheme and Lisp are not themselves
> lightweight
> languages.

I can implement a decent Scheme in a few days, but Perl?  Python? 
They're pretty complicated languages.  It would take much longer just
to handle all of the syntactic special cases, let alone the
functionality.  Scheme only has a handful (four to seven, depending on
how you count) of syntact *and* semantic special forms, everything else
is a generic procedure that can be easily mapped from the
implementation language.

To me, the fact that I can snag a 100% compliant perl or python
implementation for any platform in a few hundred kb and have it run
without fiddling with installation or peculiarities of a dialect makes
them lightweight.  There are so many Scheme variants and they are hard
to get running, each with its own language peculiarities as well--
heavyweight.  Java is a humongous download and then you get to fight
with the installation since many OS's ship with their own broken/old
JVMs.  Not to mention all of the boilerplate I need to write a simple
command line application, compile, and run it -- heavyweight.  

Light/heavyweight describes the overhead to the user, not the
implementor.  Lightweight: 

1. I can download, install, and learn this language in 2 days
2. No fussing over the installer or finding out my platform is not
fully supported
3. No makefiles, compilers, or wierd external library stuff to write
simple applications

In my recent experience, Python admirably fulfilled this.  I haven't
yet played with Perl.  MzScheme was pretty close (better searching in
the help system and some sample programs would fix the learning curve).
 Various unix shell scripts, Windows .BAT and .CMD, OS/2 REXX, awk,
sed, JavaScript, VB Script all fit the bill.  Java/C++ are clearly not


Morgan McGuire  

Do You Yahoo!?
Send your FREE holiday greetings online!