Why do we call python a scripting language?
guy_oliver at yahoo.com
guy_oliver at yahoo.com
Sun Aug 29 17:43:29 CEST 1999
On Sun, 29 Aug 1999 11:03:12 +0100, Robin Becker
<robin at jessikat.demon.co.uk> wrote:
>>What the hell are you writing that makes the language 'real' to you? Drivers??
>don't be too amazed; the thing that usually makes these languages
>useless is speed. I couldn't write any large scale linear algebra in
>python, perl or java for that matter without using some pretty hefty
>extensions. These are usually carefully crafted in C or Fortran.
>The SQL applications are also pretty powerfully assisted. ZOPE has lots
>of pure C.
>It's not that it can't be done; it's not fast enough.
But even these applicaions can benefit from using python as a glue
language. I cant tell you the number of times I have been asked to
write some program to translate the output of some fortran program
into something that can be feed into the input of a different fortran
program. If these were wrapped in to modules in Python with a decent
interface, they could be integrated with out even thinking about it.
They certainly wouldnt have to pay me a days worth of programming to
get the two things to work together. and you'd still get the
performance of using the native C/Fortran program.
Of course Python is too slow for some things, but even in those cases,
it has something to offer. GUI's, interfaces, integration, and
control programs can be crafted in python to wrap the underlying
C/C++/Fortran programs to make working with these much easier.
I recently was asked to control a data acquisition board from a
program on a pc. I wouldnt have even thought to try to write the
control software in python, but after I got the control software
written in C, I wrapped it into a python module so I could work with
the thing from in python, where the high level abstractions it offers
are very valuable. I was able to use the interactive interpreter to
control the system until I had a good understanding of what I could do
with it and then was able to prototype the application in a matter of
hours. this allowed me to put the app in front of the people that had
requested it much sooner than they had expected, and allowed them to
realize that some of the ideas they had about how it should work were
bogus. I was able to fix these things just as quickly as I built the
initial app and have a program that is just as fast as the C version,
was done much earlier than expected, and is much closer to what the
users wanted than they would have gotten if I had written it some
other more time consuming way.
I guess what prompted me to start this thread is that I am getting
frustrated by peoples implicit assumption that python is a scripting
language, that scripting languages are for simple programs, and hence,
I'm nuts for suggesting that we use it in some capacity on a given
project that is not simple. Given enough time, I can convince them
its a good idea, but I have to go through the same 'sales pitch' each
time, bringing out the samples, prototypes, etc that I have to show
what I can do with it, what others have done with it, and educating
them on its abilities.
The real problem isnt that they think python is a scripting language,
but that they assume that all scripting languages are toys. Many of
these people are used to thinking of scripting languages as /bin/sh or
batch files on DOS. And with this mindset, I dont blame them for
questioning my wanting to use a 'scripting' language on a project.
Education is the only solution that there is, but its a slow process.
So as I mentioned in an earlier post, either by separating python from
its scripting heritage, or improving the image of scripting to a point
where its not a bad word among some seems the only quick solution. Of
course, quick is probably not the right term here. Both of these are
probably just as time consuming as education.
Thanks to everyone that responded so far!
More information about the Python-list