Back to the future - python to C++ advice wanted

Jorgen Grahn jgrahn-nntq at algonet.se
Tue Jun 21 08:05:05 EDT 2005


On 17 Jun 2005 06:26:50 -0700, George Sakkis <gsakkis at rutgers.edu> wrote:
> During the last 18 months or so I have indulged in the joy of learning
> and using python for almost everything, but I may have to go back to
> C/C++ at work. Suddenly I found myself transliterating (or translating
> at least) common python idioms and patterns, looking for libraries to
> replace python's "included batteries" or writing my own from scratch,
> (over)using templates in an attempt to mimic duck typing, and so on.
> Still, I am not sure if this is a good idea in general since every
> language has its own idiosyncrasies, and this is obvious when one sees
> python code looking like C or Java.
>
> So, I wonder what have others who have gone the same path done and
> learned in similar situations.

I feel exactly like you described, both when I move from C++ to Python, and
when I move from Python to C++.  I think most multi-language programmers
feel like this, and I don't think there's anything wrong with it.

What I do?  I try to keep calm and resist the temptation to write C++ code
in Python and the other way around. Why? Because I know how much I hate C++
code written as if it was Java, or C, or Smalltalk.

(rearranged from above)
> OTOH, bringing python's higher
> level of expressiveness to C/C++ might actually be a good thing,
> leading to cleaner, safer code.

Maybe. On the other hand, you risk messing up the things that make idiomatic
C++ clean and safe: static typing, const correctness, conservative use of
inheritance and polymorphism, ... And in the end: will other C++ programmers
hate your code?  Will they modify it without butchering your original
design?

> How one can avoid the frustration of
> having to work with a low level language once he has seen the Light ?

I wouldn't call the modern C++ you (since you don't seem to be afraid of
templated) use a "low level language". It does different choices compared to
Python when it comes to run-time efficiency versus usability, and so on.

But yes, programming in C++ is usually more tedious and frustrating -- and
less fun.

/Jorgen

-- 
  // Jorgen Grahn <jgrahn@       Ph'nglui mglw'nafh Cthulhu
\X/                algonet.se>   R'lyeh wgah'nagl fhtagn!



More information about the Python-list mailing list