Wednesday, 1 March 2017

Python Implementations

Other Implementations of Python:
  • Python is actually a specification for a language that can be implemented in many different ways.


CPython:

  • CPython is the reference implementation of Python, written in C. It compiles Python code to intermediate byte-code which is then interpreted by a virtual machine.
  • CPython provides the highest level of compatibility with Python packages and C extension modules.
  • If you are writing open-source Python code and want to reach the widest possible audience, targeting CPython is best.
  • To use packages which rely on C extensions to function, CPython is your only implementation option.
  • All versions of the Python language are implemented in C because CPython is the reference implementation.


PyPy:

  • PyPy is a Python interpreter implemented in a restricted statically-typed subset of the Python language called RPython.
  • The interpreter features a just-in-time compiler and supports multiple back-ends (C, CLI, JVM).
  • PyPy aims for maximum compatibility with the reference CPython implementation while improving performance.
  • If you are looking to increase performance of your Python code, it’s worth giving PyPy a try. On a suite of benchmarks,
  • it’s currently over 5 times faster than CPython.
  • PyPy supports Python 2.7.
  • PyPy3  released in beta, targets Python 3.


Jython:

  • Jython is a Python implementation that compiles Python code to Java byte code which is then executed by the JVM (Java Virtual Machine). 
  • Additionally, it is able to import and use any Java class like a Python module.
  • If you need to interface with an existing Java code base or have other reasons to need to write Python code for the JVM.
  • Jython is the best choice.
  • Jython currently supports up to Python 2.7


IronPython:

  • IronPython is an implementation of Python for the .NET framework.
  •  It can use both Python and .NET framework libraries, and can also expose Python code to other languages in the .NET framework.
  • Python Tools for Visual Studio integrates IronPython directly into the Visual Studio development environment, making it an ideal choice for Windows developers.
  • IronPython supports Python 2.7



PythonNet:

  • Python for .NET is a package which provides near seamless integration of a natively installed Python installation with the .NET Common Language Run time (CLR). 
  • This is the inverse approach to that taken by IronPython,to which it is more complementary than competing with.
  • In conjunction with Mono, PythonNet enables native Python installations on non-Windows operating systems, such as OS X and Linux, to operate within the .NET framework. 
  • It can be run in addition to IronPython without conflict.
  • PythonNet supports from Python 2.6 up to Python 3.5



No comments:

Post a Comment