Stuart Turner <[EMAIL PROTECTED]> wrote: ... > "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...
Java is not a full replacement for Java? Note that Java was placed in both lists. It makes sense in the first one because the typical implementations of Java and Python are very similar: compilation to bytecode, execution of the bytecode by a virtual machine (Python is slightly handier because it does the compilation automatically for you if you haven't done it beforehand, but that's a secondary issue). There are also many direct similarities between the languages' semantics (immutable strings, assignment by "object reference"), as well, of course, as many differences. I suspect there's a meaning-changing typo here and what was meant was not Java but Javascript, in the first sentence. > because they do not come with the full range of libraries e.g GDI This assertion is simply absurd. The archetypal example of a language which does emphatically NOT "COME WITH" a full range of libraries is C, which only comes with a pitifully weak "standard library" -- that doesn't matter much because you can easily download and use lots of libraries that do not "come with" the language as such. For example, GDI is a library that comes with Windows, and you can easily use it from C -- and, of course, Python (for one of many ways to do the latter, see http://jotsite.com/blogArchives/cat_python_programming.php under entry "Using Ctypes to access Windows API"). > Perl. Python is object orientated, but I do not know what implementation? There are many implementations of the Python language. If you like Java's implementation best, for example, you can download Jython and run it on a JVM: then, the implementation will be whatever the JVM supplies (Jython compiles Python sources into .class files, using JVM bytecode). > 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? The best abstract description, funny enough, can be found in a book written quite independently from Python -- "Putting Metaclasses to Work" -- shorn of the static-typing aspects. Python developed a very similar (but dynamically typed) object model quite independenty from that book's authors; lately, some metaclass characteristics were inspired by it (but Python values simplicity, so for example it doesn't autoresolve metaclass conflicts -- you'll find a recipe to do that easily as the very last one of the 2nd edition of O'Reilly's Python Cookbook). > Lets discuss, as I am not a great fan of Perl and if Python is more > structured then it is possibly worth promoting." For completeness, one should probably also consider Ruby as "more thoroughly object-oriented"; unfortunately, the implementation may be more problematic there -- the standard one is slower and there are fewer choices. Ruby's object model is much more similar to Smalltalk's or Objective C's (shorn of static typing in the latter case, again). Another variant worth looking at is Boo -- only implemented for dotNet (but then, if C# is also being considered, that apparently doesn't matter) and based on type inference, with several similarities to Python (I have no experience of Boo since Mono's installations on MacOSX haven't worked well for me, but on paper it looks nice). Alex -- http://mail.python.org/mailman/listinfo/python-list