Getting Python Accepted in my Organisation

Roy Smith roy at panix.com
Thu Nov 3 09:03:03 EST 2005


Stuart Turner <turnerst at family-zone.co.uk> wrote:
>  "Python is a scripting language like Perl, awk, tcl, Java etc...

It is difficult to say whether Python is a scripting language or not until 
you define what you mean by "scripting language".  People throw the term 
"scripting language" around with wild abandon these days.  As far as I can 
tell, what they usually mean is something like, "It's not C++", or perhaps 
somewhat more generally, "It doesn't fit the compile-link-load-execute 
model I learned in college 20 years ago".

> it is not quite a fully developed OO language

Ask the guy in what way he thinks it's not quite fully developed.  My guess 
is he doesn't really know, or perhaps will latch onto something like "it 
doesn't have private data".  That is true, but only partially so.  And for 
people who are hung up on that, you can point out that it's also only 
partially true about C++.

Some people have been working with C++ and Java for so long they have 
started to think that "OO" means "The way C++ and Java do things", which 
pretty much means static typing and complex access control models.  It 
doesn't have to be that way.

> To be clear, these scripting languages have their place in our
> environment, but they are not full replacements for C#, Java, C, etc...

With this I am in complete agreement.  A good craftsman keeps a wide 
selection of tools at his or her disposal.  Each is useful for some tasks, 
can be pressed into service for many more, and is utterly wrong for others.

> because they do not come with the full range of libraries e.g GDI
> libraries.

No language has libraries for everything you might ever possibly want to 
do.  Python has a wide range of libraries for many common tasks, but my no 
means all.  Still, if it comes down to "language X has a good library for 
what we need and language Y doesn't", that will often be (and rightly so) 
the decision maker as to which language to use.

> Python has to be compared to Perl, Awk in order to evaluate it.

Comparing Python to Perl makes a lot of sense, but comparing it to Awk is 
absurd.   What Awk provides is decent flow control (including an implicit 
read-match-execute outer loop), excellent pattern matching, automatic 
memory management, implicit string-numeric conversion, and associative 
arrays.  Packaging all this up in a handy to use form was a great advance, 
and the features it provides are well suited for a large class of data 
reduction and text processing tasks.

But, Awk has no OO features, is not extensible, has poor error handling, 
and provides no system access.  It doesn't even have subroutines.  It is, 
with some minor exceptions, a "read one input stream, process it in a 
single pass, write one output stream" text processing scripting (there's 
that word again) language.

If you want to compare Python to other roughly similar languages, I would 
include Perl, Java, Tcl, and Ruby.  If this guy thinks comparing Python to 
Awk makes sense, he either has no clue what Awk is, or no clue what Python 
is.  BTW, comparing Java, Tcl, or Ruby to Awk would be equally absurd.

> Essentially any language with a pointer can claim to be OO,

And Perl is the proof of that statement!



More information about the Python-list mailing list