Spin Lang — Демонстрация
Spin — субъектно-ориентированный, декларативный, реактивный язык программирования данных, позволяющий описывать данные динамически вычисляемыми формулами. Ниже Вы можете попробовать минимальные интерактивные примеры.
Пример 1: Ввод имени и приветствие
Сравнение с привычными ЯП
// HTML, JS
<input type="text" id="name" placeholder="Ваше имя" oninput="updateMessage()">
<div class="output" id="message"></div>
<script>
function updateMessage() {
const name = document.getElementById('name').value || 'Аноним';
document.getElementById('message').textContent = `Привет, ${name}!`;
}
updateMessage()
</script>
// Spin (эквивалент)
name {^//keyboard/text}; "Входящий поток данных от клавиатуры - поле ввода"
hello {'Привет, ' + (/name|Anonim) + '!'}; "Автоматически пересчитываемая формула зависимости от поля ввода"
Преимущества Spin
- Меньше кода - понятная лаконичность арифметики
- Приложения строятся на основе иерархии взаимозависимых элементов, где зависимость определяется арифметической формулой и поддерживается ядром, не нужно думать о процессоре, сосредоточтесь на модели
- Локализация значений, только формула определяет значение, невозможно изменить значение извне, что повышает безопасность, исключая побочные эффекты и упрощая поддержку программ
- Ядро реализует механику работы на графах, что позволяет исключить гонку параллельных вычислений
Полноценная демонстрация будет доступна после релиза ядра
После реализации ядра Spin вы сможете запускать интерактивные графы зависимостей и видеть живую реактивную модель прямо на странице.
Проект находится на стадии разработки. Для обсуждения и любой помощи обратная связь.