Введение

BeanShell — это небольшой, бесплатный, встраиваемый интерпретатор исходного кода Java с возможностями объектного скриптования, написанный на Java. Он работает в среде выполнения Java (JRE), динамически выполняет стандартный синтаксис Java и расширяет его удобными функциями, характерными для скриптовых языков, такими как нестрогая типизация, команды и замыкания методов, как в Perl и JavaScript.

Особенности

Хотя BeanShell позволяет пользователям определять функции, которые можно вызывать из скриптов, его основополагающий принцип заключается в том, чтобы не перегружать синтаксис излишними расширениями и "синтаксическим сахаром". Это гарантирует, что код, написанный для Java-компилятора, как правило, может быть выполнен интерпретатором BeanShell без изменений, и почти в такой же степени – наоборот. Благодаря этому BeanShell является популярным инструментом для тестирования и отладки на платформе Java Virtual Machine (JVM). BeanShell поддерживает скриптовые объекты в виде простых замыканий методов, как в Perl и JavaScript. BeanShell – это проект с открытым исходным кодом, который был интегрирован во многие приложения, такие как Apache OpenOffice, Apache Ant, WebLogic Server Application Server, Apache JMeter, jEdit, ImageJ, JUMP GIS, Apache Taverna и другие. BeanShell предоставляет простой в интеграции программный интерфейс (API). Его также можно запускать в режиме командной строки или в собственной графической среде.

История

Первые версии BeanShell (0.96, 1.0) были выпущены Патриком Нимейером в 1999 году, за которыми последовала серия выпусков. BeanShell 1.3.0 был выпущен в августе 2003 года. Версия 2.0b1 была выпущена в сентябре 2003 года, кульминацией которой стала версия 2.0b4 в мае 2005 года, которая по состоянию на январь 2015 года является последним выпуском, размещенным на официальной веб-странице. BeanShell включен в дистрибутив Linux Debian с 1999 года. Проходила стандартизация BeanShell через Java Community Process (JCP) в рамках JSR 274. После одобрения JCP голосования по обзору JSR BeanShell в июне 2005 года, заметной активности вокруг BeanShell не наблюдалось. Статус JSR 274 – "В спящем режиме". Начиная с Java 9, Java включает JShell, другую оболочку "чтение-вычисление-печать" (REPL), основанную на синтаксисе Java, что указывает на то, что BeanShell не будет развиваться дальше. Форк BeanShell, BeanShell2, был создан в мае 2007 года на ныне не существующем веб-сайте Google Code. Проект beanshell2 внес ряд исправлений и улучшений в BeanShell и выпустил несколько версий. По состоянию на январь 2020 года последней версией BeanShell2 является v2.1.9, выпущенная в марте 2018 года. Этот форк был объединен обратно в основное дерево в 2018 году, сохранив все независимые изменения, и официальный проект был размещен на GitHub. В декабре 2012 года, после предложения принять BeanShell в качестве проекта Apache Incubator, BeanShell был лицензирован The Apache Software Foundation и перенесен в Apache Extras, с изменением лицензии на Apache License 2.0. Проект не был принят, но планировалось, что в будущем он станет частью Apache Commons. Однако, из-за изменений в личных обстоятельствах разработчиков, сообщество BeanShell не завершило переход в Apache и осталось в Apache Extras. С тех пор проект выпустил BeanShell 2.0b5, который был создан в 2013 году. Он включает в себя функции интеграции с рабочим столом.