Чисто текстовые интерфейсы, построенные на основе принципов UNIX известны уже давно и до сих пор являются самыми удобными из существующих в активном использовании на настоящий момент.
Удобство этих инструментов вытекает из возможности лёгкого объединения функциональности нескольких программ с помощью пайпов, позволяя создавать лёгкие небольшие программы, которые вместе могут делать сложные вещи.
Однако, классические интерфейсы UNIX неидеальны по нескольким причинам:
1) Ограниченное число стандартных потоков. Только stdin, stdout и stderr и всё.
2) В пайп можно перенаправлять только stdout, хотя ещё есть |& который перенаправляет и stdout и stderr, но в bash, по крайней мере, я не нашел оператора, что бы перенаправить только stderr.
3) Потоки по традиции завязаны на plain-text, хотя сейчас компьютеры часто обрабатывают аудио, видео и прочие данные. Хотя эти данные можно передавать по одному пайпу, однако см. (1) и (2)
А ведь у программы может быть больше потоков ввода и вывода, чем один.
Скажем, есть программы (в скобках условные названия):
* парсер файлов-контейнеров, который расщепляет файл типа ogg на видео-поток, аудио-поток, поток субтитров, поток тегов (media-split);
* программа, которая декодирует аудио-поток (vorbis-decode),
* программа, которая декодирует видео-поток (theora-decode),
* программа, которая трансформирует субтитры в видео-поток (sub-player),
* программа, которая накладывает несколько видео-потоков, используя полупрозрачность (video-mixer),
* программа, которая выводит видеопоток на дисплей (video-display)
* программа, отображающая текст (text-display)
* программа, ловящая нажатия клавиатуры и преобразующая их в команды для управления другими программам (key-hook)
* и наконец, программы для наложения всяких аудио и видео эффектов (audio-effect)
На настоящий момент, для всех этих функций можно использовать одну команду — например mplayer, однако что если будет нужен какой-то хитрый эффект, которого mplayer не умеет, или там субтитры будут в каком-то формате, которого он не знает? Можно конечно, и обходной манёвр придумать, например субтитры преобразовать в нужный формат до начала воспроизведения видео, эффекты тоже наложить до него.
А вот если бы был более гибкий способ соединения разных программ, то можно было из того что перечислено выше прямо на ходу написать команду, которая будет воспроизводить видеофайл с субтитрами, наложением эффектов на звук и видео, и управлением сочетаниями клавиш, которая к тому же будет показывать перед началом каждого видеофайла информацию о нём, которую ты хочешь. А при желании, одновременно с показом, ещё и записывать в новый видеофайл (только тогда надо будет добавить ещё несколько команд). А вот как это сделать с помощью обычных юниксовых пайпов я с трудом представляю.
Кроме того, не смотря на удобство концепции юникс, она всё-таки удобна не для всего. Графический интерфейс используется даже самыми отъявленными консольщиками...
Так вот, какие есть варианты пост-юниксового модульного интерфейса, который бы позволял безкостыльно расширить принципы юникс на графику, звук, видео..., сочетая всё полезное от текстового и графического интерфейса?
←
1
2
→
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от unanimous
Ответ на:
комментарий
от wxw
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от Xenius
Ответ на:
комментарий
от unanimous
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от Xenius
Ответ на:
комментарий
от PolarFox
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от kermzyxer
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от geekless
Ответ на:
комментарий
от Yareg
Ответ на:
комментарий
от Yareg
Ответ на:
комментарий
от Tark
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от Yareg
Ответ на:
комментарий
от Yareg
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от gh0stwizard
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от AX
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от AX
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от nu11
Ответ на:
комментарий
от baverman
Ответ на:
комментарий
от geekless
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Конструктор интерфейсов Flutter (2024)
- Форум smplayer и встроенные в видеофайл субтитры (2013)
- Форум Конструктор в конструкторе (2013)
- Форум конструктор =] (2007)
- Форум Патент на реализацию концепции универсального интерфейса (2014)
- Форум POST (2003)
- Форум POST (2004)
- Форум posting... (2001)
- Новости VLC 1.0.0 «Goldeneye» (2009)
- Новости Einarc — универсальный интерфейс управления аппаратными RAID-массивами (2008)