Deprecated: Runtime\rtl::correct(): Optional parameter $def_value declared before required parameter $type_value is implicitly treated as a required parameter in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/rtl.php on line 679

Deprecated: Return type of Runtime\CoreStruct::offsetExists($k) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/CoreStruct.php on line 120

Deprecated: Return type of Runtime\CoreStruct::offsetGet($k) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/CoreStruct.php on line 121

Deprecated: Return type of Runtime\CoreStruct::offsetSet($k, $v) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/CoreStruct.php on line 122

Deprecated: Return type of Runtime\CoreStruct::offsetUnset($k) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/CoreStruct.php on line 123

Deprecated: Return type of Runtime\_Map::offsetExists($k) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Dict.php on line 131

Deprecated: Return type of Runtime\_Map::offsetGet($k) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Dict.php on line 132

Deprecated: Return type of Runtime\_Map::offsetSet($k, $v) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Dict.php on line 133

Deprecated: Return type of Runtime\_Map::offsetUnset($k) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Dict.php on line 134

Deprecated: Return type of Runtime\_Map::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Dict.php on line 65

Deprecated: Return type of Runtime\_Collection::offsetExists($k) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php on line 91

Deprecated: Return type of Runtime\_Collection::offsetGet($k) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php on line 92

Deprecated: Return type of Runtime\_Collection::offsetSet($k, $v) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php on line 93

Deprecated: Return type of Runtime\_Collection::offsetUnset($k) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php on line 96

Deprecated: Return type of Runtime\_Collection::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php on line 47

Deprecated: usort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php on line 522

Deprecated: usort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php on line 522

Warning: http_response_code(): Cannot set response code - headers already sent (output started at /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/Collection.php:20) in /var/www/vhosts/bayrell.kz/www/bayrell.org/docs/lib/Runtime/php/loader.php on line 154
TODO List | Документация BAYRELL

TODO List

  1. Написать базовую документацию.
  2. Сделать юнит тесты.
  3. Переписать Collection и Dict в функциональный стиль (чистые функции).
  4. Перевод документации на английский язык.
  5. Автокомпиляция на PHP.
  6. Подсветка синтаксиса.
  7. Проверка типов на этапе компиляции.
  8. Прикрутить ANTLR.
  9. Пересмотр некоторых технических решений. Код ревью. Особенно того что касается с работой баз данных, ORM, обмена сообщениями.
  10. Модульное разделение.
    Например, разделить шаблонизатор, от компилятора. Или использовать флаги в компиляторе, которые отключат некоторые функции. Возможность написания модулей для компилятора.
  11. Сделать команду bayrell-lang-nodejs serve для запуска веб сервера.
  12. Добавление функционала для работы с анимацией.
  13. Добавить новые транспорты в механизм обмена сообщениями.
  14. Больше демо приложений. Сейчас только доступен clear-project и simple-crudlist.
  15. Оптимизация неизменяемых структур данных.
    Сейчас, например, в языке, когда массив пересоздается, он полностью копируется через slice. Вообще, я думаю, написать неизменяемые структуры данных на C++ и скомпилировать модули для PHP и WebAssembly, для быстрой работы.
  16. Поддержка языков: Java, Python, C#. Go, Lua.
  17. Компилятор языка на LLVM и WebAssembly.
    Особенно в WebAssembly. Очень интересно, на мой взгляд, скомпилировать фронтенд, чтобы он быстрее работал, и чтобы защитить код от взлома и копирования, особенно для бизнес задач.
  18. Интеграция с технологиями Cordova, для разработки мобильных приложений.
  19. Интеграция с WebPack. Пока идей мало как это правильно сделать.
  20. Сборка js bundle. Сейчас все JS файлы подключаются каждый по отдельности.
  21. Интеграция с ReactJS.
    Я несколько раз пытался интегрировать язык BAYRELL Language с реактом. Пока не получилось. В итоге написал свой рендер. Возможно это из-за того, что не было публичного релиза, и до конца не было понятно, что в итоге должно получиться. Сейчас виденье прояснилось. Концепция HTML шаблонизатора очень сильно схожа с реактом. Может в будущем получится. Нужно больше опыта и сил.
  22. Интеграция с Sass и Less.
  23. Инструмент автосборки и автодеплоя. bayrell-lang-nodejs watch он хорош, но нужен инструмент, который на хостинге позволит компилировать исходный код. Компилировать в консоли, а затем загружать по фтп, это сложный способ. Должна быть автокомпиляция на стороне хостинга.
  24. В документации History Api кнопка вперед, назад должна делать рендер.

FaaS. Функциональное визуальное программирование в облаке.

Планируется добавить возможность развернуть облачную среду Docker Swarm. И прямо в нем сделать возможность писать программу виде функций, мышкой блок схем, без перезапуска и деплоя контейнеров. Конечно, сборка контейнеров будет, но это будет компиляция релизов. Но чтобы протестировать и быстро запустить, не обязательно запускать весь цикл DevOps. Мне нравится php, потому чтобы с ним легко работать достаточно FTP. Можно вносить изменения, и получать сразу результат, без компиляций и сборок. Но потом появился nodejs с gulp, babel, webpack, docker и процесс сильно усложнился.

Я планирую работы над упрощением процесса разработки и деплоя. Решение, которое я вижу, лежит в области FaaS систем и программировании прямо в облаке.