Про те, чим Wren особливий
Wren - це невелика, швидка конкурентна скриптова мова на основі класів. Це наче Smalltalk у пакунку розміром із Lua, з дрібкою Erlang, загорнутий у звичний сучасний синтаксис.
Невелика. Віртуальна машина вміщається в менш ніж 4000 крапок з комою читабельного C з любовними коментарями.
Швидка. Розумний однопрохідний компілятор створює компактний ефективний байт-код.
На основі класів. Класи та обʼєкти тут на першому плані.
Конкурентна. Легковагі волокна вбудовані в саму мову.
Скриптова. Вбудовується будь-куди, не має залежностей, має невелику стандартну бібліотеку й простий у використанні C API.
Серце Wren - віртуальна машина. Віртуальна машина Wren - це ядро мови; вона виконує весь вихідний код Wren. Це лише бібліотека, а не окремий застосунок. Її призначено для вбудовування в більший застосунок-хост.
Wren вбудовано в такі проєкти:
Wren можна навіть вбудувати у власні проєкти. Для Exercism як застосунок-хост ми будемо використовувати Wren Console, що дозволяє запускати й тестувати наші скрипти Wren із термінала.
Спочатку Wren створив Боб Ністром, відомий завдяки книжці Crafting Interpreters. За його плечима не одна мова, але він окремо пояснює, що саме привело до створення Wren:
Існує кілька скриптових мов для вбудовування в застосунки. Lua - головна з них. Колись це був TCL. Є ще Guile, дедалі частіше JavaScript, а деякі застосунки вбудовують Python. Я колишній розробник ігор, тож коли я думаю про «скрипти», то зазвичай думаю про «ігрові скрипти».
Lua чудова: вона невелика, проста й швидка. Але, і я не кажу це як докір, вона також дивна для тих, хто звик до таких мов, як C++ і Java. Синтаксис інший. Семантика, особливо обʼєктна модель, незвична. До індексації з одиниці може звикнути будь-хто, але такі речі, як метатаблиці, яскраво показують, що обʼєкти прикрутили до Lua згодом.
Я вважаю, що є місце для мови такої ж простої, як Lua, але природної для тих, хто має досвід в ООП. Wren - моя спроба зробити саме таку.
Можна швидко спробувати його прямо у браузері (без жодного встановлення). Якщо хочеться поекспериментувати з Wren у приємному інтерфейсі, варто поглянути на Wren Playground.