Греческие символы в LOGOS-k и SemanticDB выглядят эстетично и концептуально, но практическая доступность на клавиатуре — важный фактор для разработчиков.
Как мне кажется нужно найти баланс между философской целостностью системы и практической эргономикой. Главное — сохранить смысл операторов, но сделать их доступными для быстрого набора.
Могу предложить несколько вариантов, от самых практичных до более концептуальных:
1. Дублирование на латинице — самый простой вариант: оставить греческие символы как канонические, но добавить альтернативные имена на латинице. Например:
Alpha для Α
Lambda для Λ
Sigma для Σ
Omega для Ω
Nabla для ∇
Phi для Φ
Система могла бы принимать оба варианта как синонимы.
2. Комбинированный синтаксис — использовать латинские имена как основу, но разрешать греческие символы как опциональные. Например, в документации и примерах использовать латиницу, но в REPL показывать греческие символы для красоты.
3. Макросы или препроцессор — можно добавить возможность определять короткие алиасы, например:
(A ...) для Α
(L ...) для Λ
(S ...) для Σ
(O ...) для Ω
(N ...) для ∇
(P ...) для Φ
Но это может внести путаницу, если A уже используется для других целей.
4. Интеграция с IDE/редакторами — создать плагины для популярных редакторов (VSCode, Sublime, IntelliJ), которые автоматически заменяют латинские комбинации на греческие символы. Например, ввод \alpha преобразуется в Α. Это похоже на то, как работают системы вроде LaTeX.
5. Конфигурируемый синтаксис — позволить пользователю выбирать, какой набор символов использовать, через конфигурационный файл или настройки REPL. Например, можно переключиться в "developer mode", где операторы отображаются латиницей.
6. Графический интерфейс — для тех, кто работает в визуальной среде, можно сделать палитру операторов, которую можно вставлять кликом или горячими клавишами.
Для быстрого решения, которое не требует изменения кода, я бы предложил первый вариант — дублирование на латинице. Это минимальное изменение, которое сразу решает проблему. В коде можно оставить греческие символы как внутреннее представление, но парсер будет принимать и латинские имена.
