BeanShell
Encyclopedia
BeanShell is a Java
scripting language
, invented by Patrick Niemeyer. It runs in the Java Runtime Environment (JRE) and uses Java syntax
, in addition to scripting commands and syntax.
", thereby ensuring that code written for a Java compiler
can almost always be executed interpretively
by BeanShell without any changes and, almost just as much, vice versa. This makes BeanShell a popular testing
and debugging
tool.
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 OpenOffice.org
, Apache Ant
, WebLogic Server
Application Server, jEdit
, JUMP GIS
and many others. BeanShell provides an easy to integrate API. It can also be run in command-line mode or within its own graphical environment.
through the Java Community Process
(JCP) under JSR 274.
Following the JCP approval of the BeanShell JSR Review Ballot in June 2005, no visible activity was taking place around BeanShell. The JSR 274 status is "inactive".
A fork
of BeanShell, BeanShell2, was created in May 2007 on the Google Code
website. The beanshell2 project has made a number of fixes and enhancements to BeanShell.
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
scripting language
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...
, invented by Patrick Niemeyer. It runs in the Java Runtime Environment (JRE) and uses Java syntax
Java syntax
The syntax of the Java programming language is a set of rules which defines how a Java program is written and interpreted.The syntax is mostly derived from C and C++. Unlike C++, Java is almost exclusively an object-oriented language. There are no global functions or variables, all code belongs to...
, in addition to scripting commands and syntax.
Features
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 sugarSyntactic sugar
Syntactic sugar is a computer science term that refers to syntax within a programming language that is designed to make things easier to read or to express....
", thereby ensuring that code written for a Java compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
can almost always be executed interpretively
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
by BeanShell without any changes and, almost just as much, vice versa. This makes BeanShell a popular testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...
and debugging
Debugging
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware, thus making it behave as expected. Debugging tends to be harder when various subsystems are tightly coupled, as changes in one may cause bugs to emerge...
tool.
BeanShell supports scripted objects as simple method closures like those in Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
and JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....
.
BeanShell is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
project and has been incorporated into many applications, such as OpenOffice.org
OpenOffice.org
OpenOffice.org, commonly known as OOo or OpenOffice, is an open-source application suite whose main components are for word processing, spreadsheets, presentations, graphics, and databases. OpenOffice is available for a number of different computer operating systems, is distributed as free software...
, Apache Ant
Apache Ant
Apache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....
, WebLogic Server
Oracle Weblogic Server
Owned by Oracle Corporation, Oracle WebLogic consists of a Java EE platform product-family that includes:* a Java EE application server, WebLogic Application Server* an enterprise portal, WebLogic Portal* an Enterprise Application Integration platform...
Application Server, jEdit
JEdit
jEdit is a text editor for programmers, available under the GNU General Public License version 2.0. It is written in Java and runs on any operating system with Java support, including Windows, Linux, Mac OS X, and BSD.-Development:...
, JUMP GIS
JUMP GIS
JUMP is a Java based vector GIS and programming framework. Current development continues under the OpenJUMP name.-Features:* platform independent * reads and writes ESRI Shapefile, GML files, DXF and PostGIS...
and many others. BeanShell provides an easy to integrate API. It can also be run in command-line mode or within its own graphical environment.
History
BeanShell was undergoing standardizationStandardization
Standardization is the process of developing and implementing technical standards.The goals of standardization can be to help with independence of single suppliers , compatibility, interoperability, safety, repeatability, or quality....
through the Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....
(JCP) under JSR 274.
Following the JCP approval of the BeanShell JSR Review Ballot in June 2005, no visible activity was taking place around BeanShell. The JSR 274 status is "inactive".
A fork
Fork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...
of BeanShell, BeanShell2, was created in May 2007 on the Google Code
Google Code
Google Code is Google's site for developer tools, APIs and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers using Google's developer products....
website. The beanshell2 project has made a number of fixes and enhancements to BeanShell.
See also
- List of JVM languages
- List of CLI languages
- Comparison of programming languagesComparison of programming languagesProgramming languages are used for controlling the behavior of a machine . Like natural languages, programming languages conform to rules for syntax and semantics.There are thousands of programming languages and new ones are created every year...
- Comparison of computer shellsComparison of computer shellsA command shell is a command line interface computer program to an operating system.- General characteristics :- Interactive features :- Programming features :- Syntax :- Data types :- String and filename matching :...