Mon Mar 28 23:45:01 CEST 2005
#! rnews 2354
From: Harry George <harry.g.george at boeing.com>
Subject: Re: Which is easier? Translating from C++ or from Java...
Content-Type: text/plain; charset=us-ascii
Message-ID: <xqx3bufihui.fsf at cola2.ca.boeing.com>
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3
Sender: hgg9140 at cola2.ca.boeing.com
Organization: The Boeing Company
References: <1112043435.991699.11460 at g14g2000cwa.googlegroups.com>
Date: Mon, 28 Mar 2005 21:24:53 GMT
Xref: news.xs4all.nl comp.lang.python:369571
"cjl" <cjlesh at gmail.com> writes:
> Hey all:
> I'm working on a 'pure' python port of some existing software.
> Implementations of what I'm trying to accomplish are available (open
> source) in C++ and in Java.
> Which would be easier for me to use as a reference?
> I'm not looking for automated tools, just trying to gather opinions on
> which language is easier to understand / rewrite as python.
I've done a bit of manual porting from C++ and from Java, but never
for the same algorithm. Here are some points to consider:
1. Java is already garbage collected, object oriented, and generally
"safe". So an algorithm could be copied almost verbatim into
Python. In C++ you might get pointers, casts, etc. which would
leave you stumped.
2. Java as a community is trying to reinvent the wheel for everything
you might already have in a library. So whereas in C++ you might
just bind to the same library, in Java you might have to fight your
way through layer after layer of java-isms. You could end up doing
more work replicating the java-esque libraries than in doing the
actual code of interest.
Thus there is a tradeoff. For pure algorithms and
computer-science-ish programs, java may be easier. For anything that
uses libraries and API's, C++ may be easier.
As a practical matter, I have found I need to read the code and
understand it in the original language. Then, inspired by this
insight, I write a wholly new python program, using python-esque
idioms. So it comes down to which particular piece of code is easier
to understand, and that in turn depends more on the original author's
style than on the language.
harry.g.george at boeing.com
6-6M21 BCA CompArch Design Engineering
Phone: (425) 294-4718
More information about the Python-list