Jython

Last updated

Jython
Initial releaseJanuary 17, 2001;23 years ago (2001-01-17) [1]
Stable release
2.7.3  OOjs UI icon edit-ltr-progressive.svg / 11 September 2022;17 months ago (11 September 2022)
Repository
Written in Python and Java
Operating system Cross-platform
Platform Java virtual machine
Type Python Interpreter
License Python Software Foundation License (for older releases see License terms)
Website www.jython.org OOjs UI icon edit-ltr-progressive.svg

Jython is an implementation of the Python programming language designed to run on the Java platform. The implementation was formerly known as JPython until 1999. [2]

Contents

Overview

Jython programs can import and use any Java class. Except for some standard modules, Jython programs use Java classes instead of Python modules. Jython includes almost all of the modules in the standard Python programming language distribution, lacking only some of the modules implemented originally in C. For example, a user interface in Jython could be written with Swing, AWT or SWT. Jython compiles Python source code to Java bytecode (an intermediate language) either on demand or statically.

History

Jython was initially created in late 1997 to replace C with Java for performance-intensive code accessed by Python programs, moving to SourceForge in October 2000. The Python Software Foundation awarded a grant in January 2005. Jython 2.5 was released in June 2009. [3]

Status and roadmap

The most recent release is Jython 2.7.3. It was released on September 10, 2022 and is compatible with Python 2.7. [4]

Python 3 compatible changes are planned in Jython 3 Roadmap. [5]

Although Jython implements the Python language specification, it has some differences and incompatibilities with CPython, which is the reference implementation of Python. [6] [7]

License terms

From version 2.2 on, Jython (including the standard library) is released under the Python Software Foundation License (v2). Older versions are covered by the Jython 2.0, 2.1 license and the JPython 1.1.x Software License. [8]

The command-line interpreter is available under the Apache Software License.

Usage

See also

Related Research Articles

<span class="mw-page-title-main">Python (programming language)</span> General-purpose programming language

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

The Simplified Wrapper and Interface Generator (SWIG) is an open-source software tool used to connect computer programs or libraries written in C or C++ with scripting languages such as Lua, Perl, PHP, Python, R, Ruby, Tcl, and other language implementations like C#, Java, JavaScript, Go, D, OCaml, Octave, Scilab and Scheme. Output can also be in the form of XML.

IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

Psyco is an unmaintained specializing just-in-time compiler for pre-2.7 Python originally developed by Armin Rigo and further maintained and developed by Christian Tismer. Development ceased in December, 2011.

The Bean Scripting Framework is a method of allowing the use of scripting in Java code. It provides a set of Java classes which provides support within Java applications for scripting languages, and also allows access to Java objects and methods. Some examples of languages that can be used in combination with BSF and Java include Python, Jython and Tcl, as well as JRuby and Apache Groovy using their own libraries.

CPython is the reference implementation of the Python programming language. Written in C and Python, CPython is the default and most widely used implementation of the Python language.

Stackless Python, or Stackless, is a Python programming language interpreter, so named because it avoids depending on the C call stack for its own stack. In practice, Stackless Python uses the C stack, but the stack is cleared between function calls. The most prominent feature of Stackless is microthreads, which avoid much of the overhead associated with usual operating system threads. In addition to Python features, Stackless also adds support for coroutines, communication channels, and task serialization.

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

<span class="mw-page-title-main">PyPy</span> Alternative implementation of the Python programming language

PyPy is an implementation of the Python programming language. PyPy often runs faster than the standard implementation CPython because PyPy uses a just-in-time compiler. Most Python code runs well on PyPy except for code that depends on CPython extensions, which either does not work or incurs some overhead when run in PyPy. Internally, PyPy uses a technique known as meta-tracing, which transforms an interpreter into a tracing just-in-time compiler. Since interpreters are usually easier to write than compilers, but run slower, this technique can make it easier to produce efficient implementations of programming languages. PyPy's meta-tracing toolchain is called RPython.

In computer programming, a programming language implementation is a system for executing computer programs. There are two general approaches to programming language implementation:

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

<span class="mw-page-title-main">Cython</span> Programming language

Cython is a superset of the programming language Python, which allows developers to write Python code that yields performance comparable to that of C.

ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.

mod_gzip is an external extension module for the Apache HTTP Server v1 and v2.

Ignition is an Integrated Software Platform for SCADA systems released by Inductive Automation in January 2010. It is based on a SQL Database-centric architecture. Ignition features cross platform web based deployment through Java Web Start technology. The Ignition platform has three main components: the Ignition Gateway, the Designer, and the runtime clients. Independent modules provide separate functionality in any or all of the platform components. Ignition SCADA modules provide features such as: Real-Time Status Control, Alarming, Reporting, Data Acquisition, Scripting, Scheduling, MES, and Mobile support.

MicroPython is a software implementation of a programming language largely compatible with Python 3, written in C, that is optimized to run on a microcontroller.

Nuitka is a source-to-source compiler which compiles Python code to C source code, applying some compile-time optimizations in the process such as constant folding and propagation, built-in call prediction, type inference, and conditional statement execution. Nuitka initially was designed to produce C++ code, but current versions produce C source code using only those features of C11 that are shared by C++03, enabling further compilation to a binary executable format by modern C and C++ compilers including gcc, clang, MinGW, or Microsoft Visual C++. It accepts Python code compatible with several different Python versions and optionally allows for the creation of standalone programs that do not require Python to be installed on the target computer.

References

  1. Wierzbicki, Frank (March 22, 2015). "jython: 3d8067c56a1d NEWS" . Retrieved March 28, 2015.
  2. "JythonFaq/GeneralInfo - JythonWiki". April 3, 2014. Retrieved March 28, 2015.
  3. Wierzbicki, Frank (June 16, 2009). "Jython 2.5.0 Final is out!" . Retrieved July 2, 2009.
  4. "News". Jython. Retrieved April 19, 2020.
  5. "Jython 3 Roadmap". Jython. Retrieved October 14, 2022.
  6. "JythonFaq". Jython's project. Retrieved July 5, 2009.
  7. "Differences between CPython and Jython". Jython's project. Retrieved July 5, 2009.
  8. "The Jython License". Jython's project. Archived from the original on October 9, 2018. Retrieved February 9, 2008.
  9. "Introducing Ignition - Ignition User Manual 7.9 - Ignition Documentation". docs.inductiveautomation.com. Retrieved April 24, 2019.