Getting Python Accepted in my Organisation

Steve Holden steve at holdenweb.com
Thu Nov 3 07:50:06 EST 2005


Stuart Turner wrote:
> Hi Everyone,
> 
> I'm working hard trying to get Python 'accepted' in the organisation I work
> for.  I'm making some good in-roads.  One chap sent me the text below on
> his views of Python.  I wondered if anyone from the group could give me
> some advice on how to respond / if they had been in a similar position.
> 
> Any help appreciated,
> 
> Thanks in advance,
> 
> - Stuart
> 
> 
>  "Python is a scripting language like Perl, awk, tcl, Java etc...  it is
> not quite a fully developed OO language, but does support some OO that Perl
> doesn't.  To be clear, these scripting languages have their place in our
> environment, but they are not full replacements for C#, Java, C, etc... 
> because they do not come with the full range of libraries e.g GDI
> libraries.  Python has to be compared to Perl, Awk in order to evaluate it. 
> Perl, until recently, did not support threading.  Why would it? it is a
> scripting language and can run async shell commands.  I would be interested
> to learn if Python supports a robust threading model (not just a pointer
> reference to an object), as this is a significant drawback when using a
> scripting language.  CGI only works because the container can thread with
> Perl.  Python is object orientated, but I do not know what implementation? 
> Essentially any language with a pointer can claim to be OO, although Python
> does market itself on OO capabilities.  Do you know what implementation
> they have used?
>   
>     Lets discuss, as I am not a great fan of Perl and if Python is more
> structured then it is possibly worth promoting."

First of all, let's dismiss the notion that "Python is a scripting 
language". It can be used for scripting tasks, and has been successfully 
so used in many environments, but it's a fully-developed programming 
language with a well-defined and cleanly-implemented OO model. Many 
people call Python a scripting language because it is interpreted, but 
the parallel with Java is better that that with Perl, since Python 
compiles programs into bytecodes for a virtual machine.

An advantage of Python is that while it is fully object-oriented it is 
also well-suited to procedural programming and, unlike Java, you are not 
forced to try and fit all tasks into an object-oriented model.

Python does indeed support a robust threading model, and has recently 
improved threading support still further by adding explicit features to 
support per-thread state in a cleaner way. It has been used to implement 
many high-volume asynchronous network server tasks, among which Zope is 
perhaps the best known.

The author of your comments asks "what implementation" of OO 
capabilities Python uses. This is a very broad question, but basically 
Python uses a multiple-inheritance model (though nobody is forced to use 
multiple superclasses) and has a very clean object orientation.

For background I have been studying and working with object oriented 
languages for over thirty years, and find Python the most natural and 
cleanest way to express many object oriented programming solutions.

Finally I feel that the Python community is much more welcoming than 
that of most programming languages, which is important if you are 
looking for support as your familiarity with the language grows.

Good luck with your Python advocacy.

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC                     www.holdenweb.com
PyCon TX 2006                  www.python.org/pycon/




More information about the Python-list mailing list