# BeanShell

> Java-like scripting language

**Wikidata**: [Q812964](https://www.wikidata.org/wiki/Q812964)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/BeanShell)  
**Source**: https://4ort.xyz/entity/beanshell

## Summary
BeanShell is a Java-like scripting language designed to integrate seamlessly with the Java ecosystem. Incepted in 1999, it functions as an object-oriented programming language that features both dynamic and strong typing. It is distributed under the Apache License and the GNU Lesser General Public License (LGPL).

## Key Facts
*   **Classification:** BeanShell is an instance of a programming language and is influenced by Java.
*   **Inception:** The language was created in 1999.
*   **Design:** It was designed by the Java Community Process.
*   **Licensing:** It is available under the Apache License and the GNU Lesser General Public License.
*   **Latest Stable Version:** Version 2.1.1 is the preferred stable release, published on December 2, 2022.
*   **Programming Paradigm:** It follows the object-oriented programming paradigm.
*   **Typing Discipline:** The language utilizes both dynamic typing and strong typing.
*   **Source Repository:** The source code is hosted on GitHub at `https://github.com/beanshell/beanshell`.
*   **File Formats:** It uses the "Beanshell script" format for both readable and writable files.

## FAQs
### Q: What programming paradigm does BeanShell use?
A: BeanShell utilizes object-oriented programming. It is designed to be Java-like and is influenced by the Java programming language.

### Q: What are the licensing terms for BeanShell?
A: BeanShell is dual-licensed. It is available under the Apache License and the GNU Lesser General Public License (LGPL).

### Q: When was the most recent version of BeanShell released?
A: The most recent stable release is version 2.1.1, which was published on December 2, 2022. Previous versions include 2.1.0 (2020) and 2.0b6 (2016).

### Q: What typing discipline does BeanShell support?
A: BeanShell supports dynamic typing as well as strong typing.

## Why It Matters
BeanShell serves as a bridge between scripting flexibility and the robust Java architecture. As a Java-like scripting language, it matters to developers who require a lightweight, dynamically typed environment that can interact directly with Java objects and APIs. This allows for rapid prototyping and scripting tasks without the boilerplate code often associated with standard Java development.

Its creation in 1999 and continued maintenance—with updates as recent as December 2022—demonstrate its enduring utility in the software ecosystem. By adhering to object-oriented programming principles while offering dynamic typing, it provides a unique toolset for extending Java applications. Its design under the Java Community Process ensures it aligns with established standards, making it a reliable component for Java-based projects.

## Notable For
*   **Java-Like Syntax:** It is explicitly a "Java-like" language, lowering the learning curve for Java developers.
*   **Hybrid Typing:** It is notable for supporting both dynamic typing and strong typing within an object-oriented framework.
*   **Community Design:** Unlike many independent scripts, it was designed by the Java Community Process.
*   **Longevity:** The project has been active since 1999, with stable releases spanning over two decades (2003 to 2022).
*   **Open Source Integration:** It is widely packaged in major Linux distributions and package managers, including Arch Linux, OpenSUSE, Mageia, and MacPorts.

## Body

### History and Development
BeanShell was officially inceptioned in **1999**. Its development has been marked by several key releases tracked over the last two decades:
*   **Version 1.3.0:** Released in August 2003.
*   **Version 2.0b6:** A stable version released on February 18, 2016.
*   **Version 2.1.0:** Released on December 22, 2020.
*   **Version 2.1.1:** The current preferred stable version, released on December 2, 2022.

The language was designed by the **Java Community Process** and remains an active project with a public source code repository on GitHub.

### Technical Specifications
BeanShell operates as an **object-oriented programming** language. It is heavily influenced by **Java** (listed as a primary influence alongside Q2005 and Q42478).
*   **Typing:** It employs a unique mix of **dynamic typing** and **strong typing**, allowing developers flexibility in how they define variables and enforce type safety.
*   **Paradigm:** The language strictly follows object-oriented programming methodologies.
*   **Formats:** Scripts are written in the "Beanshell script" format, which serves as both the readable and writable file format.

### Distribution and Licensing
BeanShell is open-source software distributed under two major licenses:
1.  **Apache License**
2.  **GNU Lesser General Public License (LGPL)**

The software is accessible via its official website (beanshell.org) and is integrated into various package management systems. It is available as:
*   `bsh` in Mageia and OpenSUSE.
*   `beanshell` in Arch Linux and MacPorts.
*   `beanshell` project on Repology.

### External Identifiers
The entity holds various identifiers across knowledge bases and developer platforms:
*   **Open Hub ID:** beanshell
*   **Quora Topic:** BeanShell
*   **Freebase ID:** /m/05bw2b
*   **Wikipedia:** Available in 10 languages including English, German, French, Japanese, and Chinese (Yue).

## References

1. [The beanshell Open Source Project on Open Hub: Languages Page. Open Hub](https://www.openhub.net/p/beanshell/analyses/latest/languages_summary)
2. [Release 2.1.0. 2020](https://github.com/beanshell/beanshell/releases/tag/2.1.0)
3. [Release 2.1.1. 2022](https://github.com/beanshell/beanshell/releases/tag/2.1.1)
4. Freebase Data Dumps. 2013
5. Quora