Обновить
1

Пользователь

Отправить сообщение

Печатать можно, побуквенный ввод работает, но вот насчет аккордов, из коробки точно нет, пока никакой информации о языковых пакетах не нашел

Ко мне наконец доехала Charachorder Two, как освою расскажу, могу сказать что за первый день в целом все буквы запоминаются, больше всего запоминается бэкспейс)

Это особенности реализации, к терминологии не относятся

И это никак не отменяет того, что TUI частный случай GUI, текст является графическим элементом.

Давайте так, TUI это частный случай GUI. Следовательно сам по себе в вакууме GUI хуже быть не может. Хуже могут быть дизайнеры, которые его создают. GUI может обладать всеми преимуществами TUI и при этом даже больше. У меня есть примеры: Blender, который под завязку забит комбинациями клавиш, которыми в нем в итоге можно делать практически все. При этом в консоли ты Blender не напишешь, ведь так крайне важно взаимодейтсвие с изображениями и видео, кооторые в консоли крайне ограниченны. Другой пример - жесты мыши в Vivaldi. Вещь исключительно для GUI, при этом значительно ускоряющая взаимодейтсвие с программой.

Насчет потребления ресурсов. GUI в основном потребляет видеокарту, а не процессор. В то время как на большинство задач требуется именно процессор.

Он нескалярный

Если говорить про скалярные пользовательские типы, то добавляются они за счет тега + строки.

В любом случае, это несложно реализуется в YAML.

Пользвоательские типы в YAML добавлются за счет строк, что делает строки двузначными.

В блочных скалярах YAML нет спецсимволов и экранирования.

Насколько мне известно YAML сам определяет уровень отступа, а следовательно в блочных скалярах в начале документа я не могу написать в начале строки более 1 пробела.

Теги есть в YAML.

Хорошо, я не полностью располагал о них информацией, поэтому в статье ? , исправлю.

Честно говоря, идея глобального пространства имён для многих файлов выглядит не очень.

У каждого файла свое пространство имен, просто они могут быть вложенны.

Так в любом формате это можно сделать. Разве нет? Можете пример привести?

&anchor key: *anchor

Выйдет структура:

{
  "key": {
    "key": {
      "key": ...
    }
  }
}

Про синтаксическую строгость не понял.

Отсутствие свободы в использовании пробелов, табов и переносов строк например.

В теории у внешнего шаблонизатора 0 обработанной информации о структуре документа. Если писать его простым путем, то он будет работать в том числе в неэкранируемых строках, что крайне нежелательно. А найти эти строки без структуры документа крайне сложно, так как последовательность >> может встречаться еще и внутри комментариев и других строк.

Можете уточнить про строки, их как-никак 3 вида.

  • Да, но это уже обсуждалось в другой цепочке комментариев, можете почитать.

  • Неэкранируемые означает, что внутри отсутвуют какие-либо спецсимволы и как следствие экранирование, то есть любой символ я могу просто записать напрямую.

  • Например, если вы хотите загрузить из файла объект реализующий определенный интерфейс/трейт, то в качестве тэга можно указать тип.

  • Файлы встроенны в формат для интеграции с якорями, крайне сложно ввести файлы отдельно от языка, что бы они могли работать вместе с якорями, обычно парсеры не дают доступа к подобной информации. Насчет безопасности - в тот же парсер на C++ встроенна точка расширения, за счет которйо можно подменить код загружающий файлы как вам нужно.

  • За счет якорей можно описывать полноценные графы, например можно сделать цикл из узлов ссылающихся друг на друга.

  • Это в минусах формата, он достаточно плохо сжимается по размеру файла.

  • Якоря накладывают достаточно жесткие ограничения, которые сужают круг возможных оптимизаций.

Но также в преимуществах перед YAML отсутвие Norway Problem и синтаксическая строгость.

Файлы выходили большимии, в них было много повторящихся шаблонных фрагментов.

Написал, YAML нам не хватило. Но раз уж делать свой формат, то стоит постараться.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Десктоп разработчик, Архитектор программного обеспечения
Стажёр
От 60 000 ₽
ООП
C++
SFML
Cmake
Кросс-платформенная разработка
Разработка программного обеспечения
Разработка игр