Open Question - I'm a complete novice in programming so please bear with me...Is python equivalent to C, C++ and java combined?

Dan Stromberg drsalists at gmail.com
Sat Jan 11 21:43:03 EST 2014


On Sat, Jan 11, 2014 at 12:07 AM, pintreo mardi <bigearl497 at outlook.com> wrote:
> Hi, I've just begun to learn programming, I have an open question for the group:
> Is the Python language an all in one computer language which could replace C, C++, Java etc.. I only ask becuase I am starting off with python and I want to learn everything in basic and advanced programming with python itself...So any advice and suggestions would be more than welcome.
> Thanks!!

As others have mentioned, they're all turing-complete.  In other
words, with an infinite memory and infinite coding patience, they can
all solve the same problems.

The main distinctions, at least to my mind, are:
1) Python tends to require fewer words to solve the same problems, but
tends to be slow running.
2) C tends to be very fast running, but takes a lot of words to solve
the same problems, and is prone to hard-to-fix memory errors
3) C++ and Java aren't that different in performance today, because of
Java's good JIT.
4) Java's not great for systems programming (apparently can't detect
symlink races for example), but C, C++ and sometimes Python are.

Each language will tend to have API's (Application Programming
Interfaces) that make some classes of problems easier or harder.
API's are basically reusable code you can use to make your own
problems quicker and easier.

You probably wouldn't write an operating system kernel in Python -
it'd be too slow.  However, writing an application in Python might be
a very good use of time.

If Python proves too slow for a problem (which is uncommon), you can
rewrite small portions in C to get good performance.  Also, there is
another implementation of Python called PyPy that's much faster than
the reference implementation, which is known as CPython.

C++ and Java cover similar kinds of programming - they're both object
oriented C-like languages.  However, C++ is more prone to memory
errors than Java, and I'm told that C++ has many incompatible
implementations of fundamental things like strings.  For these
reasons, I'd recommend Java over C++ for most things (except systems
programming).

C, C++ and Java are all statically, manifestly typed.  Python is duck
typed.  These are fundamentally different approaches to program
correctness.  In C, C++ and Java, programmers tend to assume that if a
program compiles, it's working.  This is not a great assumption, but
it isn't that far off the mark, either.  Python on the other hand,
will compile a lot more programs than those that work - for this
reason, it's a very good idea to use automated tests with Python.
Automated tests are a good idea with C, C++ and Java too, just not as
crucial.

HTH



More information about the Python-list mailing list