# BeanShell

BeanShell est un langage de script proche de Java inventé par Patrick Niemeyer.
Il s'exécute dans l'Environnement d'Exécution Java (JRE) et utilise une variante de la syntaxe Java, en plus des commandes de script et de la syntaxe.

## Caractéristiques

BeanShell permet à ses utilisateurs de définir des fonctions qui peuvent être appelées à partir d'un script. Le choix a par ailleurs été fait de ne pas encombrer sa syntaxe avec trop d'extensions ni de sucre syntaxique, dans le but qu'un code écrit pour un compilateur Java puisse généralement être interprété par BeanShell sans nécessiter de changement et réciproquement. Cela fait de BeanShell un outil de test et de débogage populaire pour la machine virtuelle Java (JVM).
BeanShell prend en charge les objets scriptés ainsi que les fermetures avec des méthodes simples, comme ceci est également possible en Perl et en JavaScript.
BeanShell est un projet open source et a été intégré dans de nombreuses applications, telles qu'Apache OpenOffice, Apache Ant, le serveur d'applications WebLogic Server, jWork.ORG DataMelt, Apache JMeter, jEdit, ImageJ, SAUTER SIG, Apache Taverna et beaucoup d'autres. BeanShell fournit une interface de programmation d'application (API) le rendant facilement intégrable. Il peut également être exécuté en ligne de commande ou à l'intérieur de son propre environnement graphique.

## Histoire

Les premières versions de BeanShell (0.96, 1.0) ont été rendues publiques par Patrick Niemeyer en 1999, suivi par une série de versions. BeanShell 1.3.0 a été publié en août 2003. La Version 2.0b1 a été publié en septembre 2003, et culmine avec la version 2.0b4 en mai 2005, qui est encore, en janvier 2021, la version la plus récente publiée sur le site officiel.
BeanShell a été inclus dans la distribution Linux Debian depuis 1999.
BeanShell était en cours de normalisation par le Java Community Process (JCP) sous la JSR 274. En juin 2005, la JSR 274 ne montre aucune activité visible. La JSR 274 est à l'état Dormant.
Depuis Java 9, Java inclut JShell (en), un REPL (Read-eval-print loop (en)) différent, basé sur la syntaxe Java. Ceci indique que le projet BeanShell ne sera pas continué.
Une fourche de BeanShell, BeanShell2, est créée en mai 2007 avec Google Code. Le projet BeanShell2 a apporté un certain nombre de corrections et améliorations de BeanShell et de multiples versions. À compter de janvier 2015 la dernière version de BeanShell2 est v2.1.8, publié en février 2014. Depuis la fermeture de Google Code, le projet est hébergé sur GitHub.
En décembre 2012, à la suite de la proposition d'accepter BeanShell comme un projet d'Apache Incubator (ru), BeanShell est autorisé à l'Apache Software Foundation et a migré vers Apache Extras, changeant la licence en Licence Apache 2.0. Le projet n'a pas été accepté, mais devrait devenir à la place une partie de l'Apache Commons.
En raison de changements dans la situation personnelle des développeurs, l'ensemble des utilisateurs de BeanShell n'ont pas migré vers Apache, mais sont restés à Apache Extras. Le projet a depuis publié BeanShell 2.0b5, qui est utilisé par Apache OpenOffice et Apache Taverne.
Un programme d'installation automatisée Windows, BeanShell Double-Click, a été créé en 2013. Il comprend le bureau des fonctionnalités d'intégration.