Question

I want to learn python so I downloaded it from the python site and I saw 4 other kinds of pythons appear:

  • Python (normal)
  • IronPython
  • Jython
  • PyPy
  • Stackless Python

I can really find what the differents are between these. Also which one is the best to start with.

Was it helpful?

Solution

Updated to include corrections from kind people in the comments section:

Of the python implementations you mention, the original and most commonly used is CPython (python on your list - which is an interpreter for python implemented in C and running as a native application) and is available for pretty much every platform under the sun. The other variants are:

  • IronPython: runs on the .Net common runtime (interfaces more cleanly with other .Net apps)
  • Jython: runs on the JVM (interfaces more cleanly with Java and other JVM apps)
  • PyPy: A Python interpreter which includes a just-in-time compiler which can significantly increase program execution performance. The interpreter and JIT are implemented in RPython (rather than C), a restricted subset of Python which is amenable to static analysis and type inference.
  • Stackless Python: An implementation of a python interpreter which doesn't rely on recursion on the native C runtime stack, and therefore allows a load of other interesting programming constructs and techniques (including lightweight threads) not available in CPython.

There are a large variety of libraries for Python (one of the major advantages of the language), the majority developed for CPython. For a number of compatibility reasons, none of the variants above currently support as many as the main implementation. So for this reason, CPython is the best place to start, and then if your future requirements fit one of the other platforms - you'll be in a good place to learn the variations from a solid grounding in the basics.

OTHER TIPS

Python. All the documentation you'll find for learning the language assumes this. Then if you find a need for one of the other implementations the documentation will assume you know Python and explain the differences.

Start with Python.

The alternatives are for special use cases that apply mostly when you are integrating Python with other languages, which is a very advanced usage of the language.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top