BeanShell: Difference between revisions
external link fixed |
Release info from Wikidata |
||
(35 intermediate revisions by 26 users not shown) | |||
Line 1: | Line 1: | ||
{{multiple issues| |
|||
{{Primary sources|date=September 2011}} |
|||
{{Notability|date=September 2011}} |
|||
}} |
|||
{{Infobox programming language |
{{Infobox programming language |
||
| name = BeanShell |
| name = BeanShell |
||
Line 11: | Line 6: | ||
| designer = [[Java Community Process|JCP]] |
| designer = [[Java Community Process|JCP]] |
||
| developer = |
| developer = |
||
| latest release version = {{wikidata|property|reference|P348}} |
|||
| latest_release_version = 1.3.0 |
|||
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} |
|||
| latest_release_date = |
|||
⚫ | |||
| latest_test_version = 2.0b5 |
|||
| latest_test_date = |
|||
⚫ | |||
| implementations = |
| implementations = |
||
| dialects = |
| dialects = |
||
| influenced_by = [[Java (programming language)|Java]], [[JavaScript]], [[Perl]] |
| influenced_by = [[Java (programming language)|Java]], [[JavaScript]], [[Perl]] |
||
| platform = [[Java |
| platform = [[Java virtual machine|JVM]] |
||
| operating_system = [[Cross-platform]] |
| operating_system = [[Cross-platform]] |
||
| programming language = [[Java (programming language)|Java]] |
|||
| license = [[Apache License|Apache License 2.0]] / [[GNU Lesser General Public License|LGPL]] |
|||
| license = 2012: [[Apache License|Apache-2.0]]{{efn|Apache-2.0: Since 2.0b5}}<ref name="license">{{cite web | url=http://www.beanshell.org/license.html | title=BeanShell Software License | first=Pat | last=Niemeyer | website=beanshell.org | access-date=January 13, 2016}}</ref><ref name="Apache_license">{{ cite web | url=https://github.com/beanshell/beanshell | title=BeanShell |website=github.com | access-date=January 13, 2016}}</ref><br />2001: [[Sun Public License|SPL-1.0]] or [[GNU Lesser General Public License|LGPL-2.1-only]]{{efn|SPL-1.0 or LGPL-2.1-only: From 1.1alpha5 to 2.0b4}}<ref>{{cite web|url=https://github.com/beanshell/beanshell/blob/master/CHANGES.md|title=CHANGES.md|website=[[GitHub]] }}</ref><br />1999: [[GNU Lesser General Public License|LGPL-2.1-only]]{{efn|LGPL-2.1-only: 1.0 to 1.1alpha3}}<ref>{{cite web|url=https://github.com/beanshell/beanshell/blob/1.0/BeanShell/src/License.txt|title=License.txt in 1.0|website=[[GitHub]] }}</ref> |
|||
| website = {{URL| |
| website = {{URL|https://github.com/beanshell/beanshell}} |
||
}} |
}} |
||
'''BeanShell''' is a small, free, embeddable Java source interpreter with object scripting language features, written in [[Java (programming language)|Java]]. It runs in the [[Java virtual machine#Java Runtime Environment|Java Runtime Environment]] (JRE), dynamically executes standard Java syntax and extends it with common scripting conveniences such as loose types, commands, and method closures, like those in Perl and JavaScript. |
|||
'''BeanShell''' is a [[Java (programming language)|Java]]-like [[scripting language]], invented by Patrick Niemeyer. It runs in the [[Java Runtime Environment]] (JRE) and uses a variation of the [[Java syntax]], in addition to scripting commands and syntax. |
|||
== Features == |
== Features == |
||
While BeanShell allows its users to define [[ |
While BeanShell allows its users to define [[Subroutine|functions]] that can be called from within a script, its underpinning philosophy has been to not pollute its syntax with too many extensions and "[[syntactic sugar]]", thereby ensuring that code written for a Java [[compiler]] can usually be executed [[interpreter (computing)|interpretively]] by BeanShell without any changes and, almost just as much, vice versa. This makes BeanShell a popular [[software testing|testing]] and [[debugging]] tool for the [[Java virtual machine]] (JVM) platform. |
||
BeanShell supports scripted objects as simple method closures like those in [[Perl]] and [[JavaScript]]. |
BeanShell supports scripted objects as simple method [[Closure (computer programming)|closures]] like those in [[Perl]] and [[JavaScript]]. |
||
BeanShell is an [[open source]] project and has been incorporated into many applications, such as [[Apache OpenOffice]], |
BeanShell is an [[Open-source model|open source]] project and has been incorporated into many applications, such as [[Apache OpenOffice]], [[Apache Ant]], [[Oracle WebLogic Server|WebLogic Server]] Application Server, [[Apache JMeter]], [[jEdit]], [[ImageJ]], [[JUMP GIS]], [[Apache Taverna]], and many others. BeanShell provides an easy to integrate [[application programming interface]] (API). It can also be run in command-line mode or within its own graphical environment. |
||
== |
==History == |
||
The first versions of BeanShell (0.96, 1.0) were released by Patrick Niemeyer in 1999, followed by a series of versions. BeanShell 1.3.0 was released in August 2003. Version 2.0b1 was released in September 2003, culminating with version 2.0b4 in May 2005, which as of January 2015 is the newest release posted on the official webpage.<ref>{{cite web|title=BeanShell Downloads|url=http://beanshell.org/download.html|website=beanshell.org| |
The first versions of BeanShell (0.96, 1.0) were released by Patrick Niemeyer in 1999, followed by a series of versions. BeanShell 1.3.0 was released in August 2003. Version 2.0b1 was released in September 2003, culminating with version 2.0b4 in May 2005, which as of January 2015 is the newest release posted on the official webpage.<ref>{{cite web|title=BeanShell Downloads|url=http://beanshell.org/download.html|website=beanshell.org|access-date=28 January 2015|date=2009-01-28}}</ref> |
||
BeanShell has been included in the Linux distribution [[Debian]] since 1999.<ref>{{cite web|title=Source Package: bsh (2.0b4-12)|url=https://packages.debian.org/source/stable/bsh|website=Debian| |
BeanShell has been included in the Linux distribution [[Debian]] since 1999.<ref>{{cite web|title=Source Package: bsh (2.0b4-12)|url=https://packages.debian.org/source/stable/bsh|website=Debian|access-date=28 January 2015}}</ref> |
||
BeanShell was undergoing [[standardization]] through the [[Java Community Process]] (JCP) under JSR 274.<ref>[http://www.jcp.org/en/jsr/detail?id=274 The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 274]. Jcp.org. Retrieved on 2013-07-21.</ref> |
BeanShell was undergoing [[standardization]] through the [[Java Community Process]] (JCP) under JSR 274.<ref>[http://www.jcp.org/en/jsr/detail?id=274 The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 274]. Jcp.org. Retrieved on 2013-07-21.</ref> |
||
Following the JCP approval of the BeanShell JSR Review Ballot in June 2005, no visible activity was taking place around BeanShell.<ref> |
Following the JCP approval of the BeanShell JSR Review Ballot in June 2005, no visible activity was taking place around BeanShell.<ref name=":0">{{Cite web|url=https://jcp.org/en/jsr/results?id=3208|title=The Java Community Process(SM) Program - JSRs: Java Specification Requests - results|website=jcp.org}}</ref> The JSR 274 status is "Dormant". |
||
Since Java 9, Java instead includes [[JShell]], a different [[read–eval–print loop]] (REPL) shell based on Java syntax, indicating that BeanShell will not be continued.<ref>{{Cite web|title = JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)|url = http://openjdk.java.net/jeps/222|website = openjdk.java.net|access-date = 2015-09-03}}</ref> |
|||
A [[Fork (software development)|fork]] of BeanShell, ''BeanShell2'', was created in May 2007 on the [[Google Code]] website.<ref>[https://code.google.com/p/beanshell2/ beanshell2 - fork of BeanShell - Google Project Hosting]. Code.google.com (2011-11-21). Retrieved on 2013-07-21.</ref> The ''beanshell2'' project has made a number of fixes and enhancements to BeanShell and multiple releases. As of January 2015, the latest version of beanshell2 is v2.1.8 released February 2014. |
|||
A [[Fork (software development)|fork]] of BeanShell, ''BeanShell2'', was created in May 2007 on the now-defunct [[Google Developers#Google Code|Google Code]] Web site.<ref>[https://code.google.com/p/beanshell2/ beanshell2 - fork of BeanShell - Google Project Hosting]. Code.google.com (2011-11-21). Retrieved on 2013-07-21.</ref> The ''beanshell2'' project has made a number of fixes and enhancements to BeanShell and multiple releases. {{As of|January 2020}}, the latest version of BeanShell2 is v2.1.9, released March 2018.<ref>{{cite web |last1=Jodeleit |first1=Peter |title=README.md |website=[[GitHub]] |url=https://github.com/pejobo/beanshell2/blob/0ed03360b61316b755742257f163b5fb564d821a/dist/README.md |access-date=23 January 2020}}</ref> This fork was merged back into the original tree in 2018,<ref>{{cite web|url=https://github.com/beanshell/beanshell/issues/46|title=Fork to investigate possible merge · Issue #46 · beanshell/Beanshell |website=[[GitHub]] }}</ref> retaining all the independent changes from both, and the official project has been hosted at [[GitHub]].<ref>https://github.com/beanshell/beanshell GitHub - beanshell/beanshell: Beanshell, a scripting language for the Java Virtual Machine. Retrieved on 2018-03-06.</ref> |
|||
⚫ | In December 2012, following a proposal to accept BeanShell as an |
||
⚫ | In December 2012, following a proposal to accept BeanShell as an Apache Incubator project,<ref>{{cite web|author1=Tripodi, S|author2=Bazley, S|title=BeanShell proposal|url=https://wiki.apache.org/incubator/BeanShellProposal|website=Incubator Wiki|publisher=Apache Software Foundation|date=2012}}</ref> BeanShell was licensed to [[The Apache Software Foundation]] and migrated to the Apache Extras,<ref name="auto">{{Cite web|url=https://github.com/beanshell/beanshell|title=beanshell/beanshell|date=January 27, 2021|via=GitHub}}</ref> changing the license to [[Apache License|Apache License 2.0]]. The project was not accepted but instead projected to become part of the [[Apache Commons]] at a future time. |
||
⚫ | Due to changes in the developers' personal circumstances, the BeanShell community did |
||
The project has since released BeanShell 2.0b5,<ref>[https://code.google.com/a/apache-extras.org/p/beanshell/wiki/Download BeanShell 2.0b5]</ref> which is used by [[Apache OpenOffice]] and [[Apache Taverna]]. |
|||
⚫ | Due to changes in the developers' personal circumstances, the BeanShell community did not, however, complete the move to Apache,<ref>{{cite web|last1=Tripodi|first1=Simone|title=Beanshell under Apache?|url=https://www.mail-archive.com/dev@taverna.incubator.apache.org/msg00224.html|website=Apache Taverna developer mailing list|publisher=Apache Software Foundation|access-date=28 January 2015|date=2015-01-08}}</ref> but remained at Apache Extras. The project has since released BeanShell 2.0b5,<ref name="auto"/> which is used by [[Apache OpenOffice]] and [[Apache Taverna]]. |
||
A Windows automated installer, BeanShell Double-Click,<ref>[[SourceForge:projects/beanshelldouble/|BeanShell Double-Click | Free Development software downloads at]]. Sourceforge.net. Retrieved on 2013-07-21.</ref> was created in 2013. It includes desktop integration features. |
A Windows automated installer, BeanShell Double-Click,<ref>[[SourceForge:projects/beanshelldouble/|BeanShell Double-Click | Free Development software downloads at]]. Sourceforge.net. Retrieved on 2013-07-21.</ref> was created in 2013. It includes desktop integration features. |
||
== See also == |
== See also == |
||
{{Portal|Free software}} |
{{Portal|Free and open-source software|Computer programming}} |
||
*[[List of JVM languages]] |
*[[List of JVM languages]] |
||
*[[Comparison of programming languages]] |
*[[Comparison of programming languages]] |
||
*[[Comparison of |
*[[Comparison of command shells]] |
||
== Notes == |
|||
{{notelist}} |
|||
== References == |
== References == |
||
Line 62: | Line 59: | ||
== External links == |
== External links == |
||
* |
|||
*{{Official website}} |
|||
*[https://code.google.com/a/apache-extras.org/p/beanshell/ BeanShell at Apache Extras] |
*[https://code.google.com/a/apache-extras.org/p/beanshell/ BeanShell at Apache Extras] |
||
{{Java ( |
{{Java (software platform)}} |
||
[[Category:Scripting languages]] |
[[Category:Scripting languages]] |
||
[[Category:Java programming language family]] |
[[Category:Java programming language family]] |
||
[[Category:JVM programming languages]] |
[[Category:JVM programming languages]] |
||
[[Category:Dynamically typed programming languages]] |
|||
[[Category:Java specification requests]] |
[[Category:Java specification requests]] |
||
[[Category:Software using the LGPL license]] |
[[Category:Software using the LGPL license]] |
Latest revision as of 17:06, 3 February 2024
Paradigm | Object-oriented, scripting |
---|---|
Designed by | JCP |
First appeared | 1999 |
Stable release | 2.1.1[1]
/ 2 December 2022 |
Typing discipline | Dynamic, strong |
Implementation language | Java |
Platform | JVM |
OS | Cross-platform |
License | 2012: Apache-2.0[a][2][3] 2001: SPL-1.0 or LGPL-2.1-only[b][4] 1999: LGPL-2.1-only[c][5] |
Website | github |
Influenced by | |
Java, JavaScript, Perl |
BeanShell is a small, free, embeddable Java source interpreter with object scripting language features, written in Java. It runs in the Java Runtime Environment (JRE), dynamically executes standard Java syntax and extends it with common scripting conveniences such as loose types, commands, and method closures, like those in Perl and JavaScript.
Features
[edit]While BeanShell allows its users to define functions that can be called from within a script, its underpinning philosophy has been to not pollute its syntax with too many extensions and "syntactic sugar", thereby ensuring that code written for a Java compiler can usually be executed interpretively by BeanShell without any changes and, almost just as much, vice versa. This makes BeanShell a popular testing and debugging tool for the Java virtual machine (JVM) platform.
BeanShell supports scripted objects as simple method closures like those in Perl and JavaScript.
BeanShell is an open source project and has been incorporated into many applications, such as Apache OpenOffice, Apache Ant, WebLogic Server Application Server, Apache JMeter, jEdit, ImageJ, JUMP GIS, Apache Taverna, and many others. BeanShell provides an easy to integrate application programming interface (API). It can also be run in command-line mode or within its own graphical environment.
History
[edit]The first versions of BeanShell (0.96, 1.0) were released by Patrick Niemeyer in 1999, followed by a series of versions. BeanShell 1.3.0 was released in August 2003. Version 2.0b1 was released in September 2003, culminating with version 2.0b4 in May 2005, which as of January 2015 is the newest release posted on the official webpage.[6]
BeanShell has been included in the Linux distribution Debian since 1999.[7]
BeanShell was undergoing standardization through the Java Community Process (JCP) under JSR 274.[8]
Following the JCP approval of the BeanShell JSR Review Ballot in June 2005, no visible activity was taking place around BeanShell.[9] The JSR 274 status is "Dormant".
Since Java 9, Java instead includes JShell, a different read–eval–print loop (REPL) shell based on Java syntax, indicating that BeanShell will not be continued.[10]
A fork of BeanShell, BeanShell2, was created in May 2007 on the now-defunct Google Code Web site.[11] The beanshell2 project has made a number of fixes and enhancements to BeanShell and multiple releases. As of January 2020[update], the latest version of BeanShell2 is v2.1.9, released March 2018.[12] This fork was merged back into the original tree in 2018,[13] retaining all the independent changes from both, and the official project has been hosted at GitHub.[14]
In December 2012, following a proposal to accept BeanShell as an Apache Incubator project,[15] BeanShell was licensed to The Apache Software Foundation and migrated to the Apache Extras,[16] changing the license to Apache License 2.0. The project was not accepted but instead projected to become part of the Apache Commons at a future time.
Due to changes in the developers' personal circumstances, the BeanShell community did not, however, complete the move to Apache,[17] but remained at Apache Extras. The project has since released BeanShell 2.0b5,[16] which is used by Apache OpenOffice and Apache Taverna.
A Windows automated installer, BeanShell Double-Click,[18] was created in 2013. It includes desktop integration features.
See also
[edit]Notes
[edit]References
[edit]- ^ "Release 2.1.1". 2 December 2022. Retrieved 7 December 2022.
- ^ Niemeyer, Pat. "BeanShell Software License". beanshell.org. Retrieved January 13, 2016.
- ^ "BeanShell". github.com. Retrieved January 13, 2016.
- ^ "CHANGES.md". GitHub.
- ^ "License.txt in 1.0". GitHub.
- ^ "BeanShell Downloads". beanshell.org. 2009-01-28. Retrieved 28 January 2015.
- ^ "Source Package: bsh (2.0b4-12)". Debian. Retrieved 28 January 2015.
- ^ The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 274. Jcp.org. Retrieved on 2013-07-21.
- ^ "The Java Community Process(SM) Program - JSRs: Java Specification Requests - results". jcp.org.
- ^ "JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)". openjdk.java.net. Retrieved 2015-09-03.
- ^ beanshell2 - fork of BeanShell - Google Project Hosting. Code.google.com (2011-11-21). Retrieved on 2013-07-21.
- ^ Jodeleit, Peter. "README.md". GitHub. Retrieved 23 January 2020.
- ^ "Fork to investigate possible merge · Issue #46 · beanshell/Beanshell". GitHub.
- ^ https://github.com/beanshell/beanshell GitHub - beanshell/beanshell: Beanshell, a scripting language for the Java Virtual Machine. Retrieved on 2018-03-06.
- ^ Tripodi, S; Bazley, S (2012). "BeanShell proposal". Incubator Wiki. Apache Software Foundation.
- ^ a b "beanshell/beanshell". January 27, 2021 – via GitHub.
- ^ Tripodi, Simone (2015-01-08). "Beanshell under Apache?". Apache Taverna developer mailing list. Apache Software Foundation. Retrieved 28 January 2015.
- ^ BeanShell Double-Click | Free Development software downloads at. Sourceforge.net. Retrieved on 2013-07-21.