Python Productivity over C++

Wim Lavrijsen wlav at hpatl26.cern.ch
Fri Jun 9 10:26:07 EDT 2000


tanzer at swing.co.at (Christian Tanzer) writes:
>"Frank V. Castellucci" <frankc at colconsulting.com> wrote:
>> 1. There are gc, SmartPointer, heap management, etc. class libraries out
>> there. =

>Guess what. Something like SmartPointer was one of the first classes I
>implemented. In C++, that doesn't relieve you of thinking about memory
>management, though.

As I understand it, Python objects are simply reference counted. So, a
pervasive use of smart pointers in C++ will give the exact same effect
as in Python.

>> 2. There is the type information in standard conforming compilers.

><rant>
>If you happen to use a standard conforming compiler. In 1997, there

If 1997 was the last time you touched C++, it explains a lot about your
arguments.

>were still several compilers that didn't even fully conform to the
>1990 edition of Stroustrup und Ellis's `The Annotated C++ Reference
>Manual'.

></rant>

>RTTI doesn't offer any mechanisms remotely approaching Python features
>like `__getattr__'/`__setattr__' though. Not to speak of `eval' and
>`exec'. =

If you wish to have such in C++, use a C++ interpreter, such as ROOT/CINT.

>> 3. There is, has been, and will be more, C++ class Class libraries which
>> are powerful, easy to use, and free. I was using NIHs Class class about
>> 5 years ago.

>So what? Your pains start as soon as you want to combine libraries
>from different sources which happen to use incompatible idioms (like
>overloading global operators, ...).

If programmers (library vendors in this case) mess up, you will always
have problems, in any language. I've seen several messages on this platform
about problems with modules redefining variables from other modules. Why
is that different than a library vendor who is so erratic to use global
operators? 

>> Define 'orthodox canonical class form'

>J.O. Coplien's `Advanced C++ Programming' will tell you all about it.

Also being to only book which advocated the canonical form. Compilers
do a reasonable job by providing the cctor, assignment copy and dtor.
(I worry about efficiency, so I write my own cctor and assignment copy
operators, see: http://www.lavrijsen.net/ctotw/ctotw21.html)

Best regards,
      Wim Lavrijsen



More information about the Python-list mailing list