Amber Smalltalk , ранее называвшийся Jtalk, представляет собой реализацию языка программирования Smalltalk -80, работающую в среде выполнения JavaScript веб-браузера . Он предназначен для разработки на стороне клиента с использованием Smalltalk. [2] Среда программирования в Amber называется Helios. [3]
Amber включает интегрированную среду разработки (IDE) с браузером классов , рабочей областью, транскриптом, инспектором объектов и отладчиком . Amber написан сам по себе (является самостоятельным хостингом ), включая компилятор , и компилируется в JavaScript, сопоставляя один к одному с эквивалентом JavaScript. [4] Это сопоставление один к одному с JavaScript отличает Amber от других вариантов Smalltalk, таких как Pharo , Seaside и Squeak . [2] Разработка проекта Amber требует Node.js для запуска инструментария; развернутому проекту для запуска нужен только браузер. Amber не работает медленно на виртуальной машине байт-кода благодаря удобному сопоставлению с JavaScript, что делает скомпилированный код быстрым.
Amber изначально был создан Николасом Петтоном в 2011 году. [5] На Amber повлиял более ранний проект Smalltalk в браузере под названием Clamato , созданный Ави Брайантом. [5] [6] [7] Amber и Clamato оба используют библиотеки грамматики выражений синтаксического анализа (PEG) для разбора исходного кода Smalltalk . Amber использует библиотеку PEG.js на основе JavaScript [8] [9], написанную Дэвидом Майдой. Clamato использует PetitParser, библиотеку на основе Smalltalk, написанную Лукасом Ренггли. [5] Clamato и Amber оба были вдохновлены более ранней работой Дэна Инголлса по разработке реализации Lively Kernel Morphic для запуска в веб-браузерах с помощью JavaScript. [5] [10]
Начиная с версии 0.12.0, модули Amber компилируются в асинхронное определение модуля (AMD). [11] Начиная с версии 0.12.6, инструмент интерфейса командной строки (CLI) помощника по разработке извлекается в выделенный модуль, который может быть установлен из npm как @ambers/cli
; и настройка проекта и его экосистемы JavaScript (npm, grunt) значительно упрощается с помощью этого инструмента CLI путем выдачи amber init
и ответа на несколько вопросов. [12] С августа 2018 года упрощена поддержка проекта "amber init", больше не используется bower и основан только на npm, а весь проект находится в организации npm @ambers
. Это упрощает настройку Amber Smalltalk для людей с небольшим опытом работы с JavaScript. [13]
Актуальные инструкции можно найти по адресу https://lolg.it/amber/amber.
Для установки Amber сначала необходимо установить Git , если он еще не установлен. Следующие команды установят Amber: [3]
# для macOS и Linux требуются следующие две команды:
npm config set prefix = ~/npm export PATH = " $PATH : $HOME /npm/bin" # добавить в .bash_profile или .bashrc npm install -g grunt-cli grunt-init @ambers/cli
Чтобы создать новый проект, напишите:
# Создаем пустой каталог проекта
mkdir example-project cd example-project# Создать и инициализировать новый проект Amber
amber init
Шаг "amber init" приведет к некоторым вопросам о проекте. Для большинства из них можно задать ответ по умолчанию. Следующий шаг — запустить сервер:
янтарная подача
После этого ввод http://localhost:4000
в браузере приведет к приложению. Большинство браузеров по умолчанию блокируют всплывающие окна Helios IDE, поэтому может потребоваться изменить настройки браузера, чтобы разрешить появление всплывающего окна Helios IDE.
Программное обеспечение npm может использоваться для доступа к огромному массиву библиотек JavaScript. Библиотеку можно интегрировать, выполнив всего четыре шага: [3]
При запуске grunt deploy
проект Amber упаковывается с помощью RequireJS всего в несколько файлов, как минимум, только index.html
и the.js
, которые могут быть размещены статически, как и любая другая статическая веб-страница.
сейчас мы делаем первый релиз со скромным номером 0.9. Мы также воспользовались возможностью выбрать более броское название для Jtalk - Эмбер!