LINUX.ORG.RU

FTXUI 4.1.1 - библиотека в функциональном стиле для создания консольных приложений

 , , , ,

FTXUI 4.1.1 - библиотека в функциональном стиле для создания консольных приложений

9

3

После более трёх месяцев разработки состоялся выпуск 4.1.1 кроссплатформенной библиотеки для C++ (стандарт C++17) FTXUI (Functional Terminal (X) User Interface), предназначенной для создания приложений с текстовым интерфейсом и распространяемой по лицензии MIT.

Возможности:

  • функциональный стиль, наподобие React JS;
  • простой и элегантный стиль (по мнению автора библиотеки);
  • обработка событий клавиатуры и «мыши»;
  • поддержка UTF8 и Unicode;
  • поддержка True Color;
  • поддержка изменения стиля курсора;
  • поддержка анимаций;
  • поддержка рисования;
  • не зависит от библиотек ncurses, termbox или подобных;
  • кроссплатформенность (Linux/MacOS, WebAssembly, Windows).

Список изменений:

  • поддержка клавиш со стрелками в режиме приложения;
  • удален ненужный перевод строки при использовании альтернативного буфера экрана эмулятора терминала;
  • добавлен пунктирный стиль для границ и разделителей;
  • добавлена поддержка цветных границ;
  • добавлен линейный градиент для использования в свойствах color и bgColor;
  • функция Color::Interpolate() использует гамма-коррекцию;
  • добавлена проверка области при отрисовке компонента Graph;
  • использование глобальной переменной CMAKE_CXX_STANDARD, если она задана;
  • добавлен файл pkg-config;
  • проверка совместимости версий при использовании в CMake find_package().

На скриншоте — утилита rgb-tui от автора библиотеки.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от Mischutka

Они разные. У кого-то с файнал катом могут быть эстетические разногласия, например :)

gns ★★★★★
()
Ответ на: комментарий от Syncro

должен быть в первую очередь понятен и удобен любому другому опытному программисту

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

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

Бездоказательное обобщение.

IRASoldier ★★
()
Ответ на: комментарий от Mischutka

Конкуренция продуктов - развитие продуктов. Отсутствие конкуренции - стагнация.

IRASoldier ★★
()
Ответ на: комментарий от Deady

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

Syncro ★★★★★
()
Ответ на: комментарий от IRASoldier

ниразу не встречал два похожих функциональных кода, каждый городит свою «гениальную» в своей хитрости дрянь

Syncro ★★★★★
()

Лучше бы svgalib допилили…

zx_gamer ★★★
()
Ответ на: комментарий от IRASoldier

функциАНАЛЬЩИНА это разводняк и жоп-сысурити, хотя второе не точно, шизоидами страна кажется тоже богата.

Syncro ★★★★★
()
Ответ на: комментарий от alex1101

Я правильно понимаю, оно и в голой консоли работает?

Да, TUI - Terminal User Interface.

CLI - Command Line Interface - это когда текстовый ввод, текстовый вывод.

TUI - псевдографика в текстовой консоли, многие помнят с 90-х или около того Norton Commander под DOS - это оно. Часто очень удобно, особенно когда к удалённой машине есть только ssh, да и вообще.

Сам недавно писал скрипт для настройки полнодискового шифрования на серверах с псевдографикой в консоли, чтоб даже совсем зелёные джуны могли натыкать (в т.ч. в прямом смысле, мышкой) через менюшки все настройки. Утилита для отрисовки менюшек называется dialog, если что.

Zombieff ★★
()
Ответ на: комментарий от IRASoldier

программный код создается что-бы его можно было легко развивать и поддерживать. Если бы во главе угла стояли какие-то другие критерии типа оптимизации, алгоритмы просто сразу распаивали бы в железе(на ранних этапах когда железо было дохлым так, кстати, и делали). Функциональный подход, когда программист пытается создать наиболее усложненный вариант кода под видом его эффективности, обычно этой задаче максимально противоречит. В такой код чаще всего сложно вносить доработки, его даже тяжело может быть «прочитать» любому другому программисту. Обычно там гораздо меньше реального переиспользования кода, т.е. оно в лучшем случае очень низкоуровневое - лефтпад - пожалуйста, а разноплановое поведение сущности уже нет. Единственное разумное употребление функциональщины - синтаксический сахар внутри единиц ООП кода, ну типа сделать обработчик драгендропа в одну строчку или обрабатывать поток разнородных элементов со сложным поведением не городя семафоров.

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Ну т.е. те, кто активно использует в бизнесе тот же Erlang - должны к тебе прибежать, чтобы узнать, почему они дураки и что им надо писать так, чтобы тебе понятно было. Это ты уже говорил.

IRASoldier ★★
()
Ответ на: комментарий от IRASoldier

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

Syncro ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.