Как стать автором
Обновить

Нужен ли файловый менеджер?

Чулан
Мой друг1 переводил фильм2, делая к нему субтитры. Дело не самое простое: специализированный редактор субтитров по непонятной причине не заработал, приходилось отдельно править файл субтитров, постоянно перезагружая его в видеопроигрывателе.
Утомление от монотонного занятия превратилась в яблоко и упало другу на голову. Родившуюся в итоге идею я записал (кое в чём пофантазировав), и вот-вот расскажу вам.



Как мы сегодня работаем с файлами (речь пойдёт о пользовательских файлах — текстовых документах, видеозаписях, фотографиях и т.п.)?

Мы храним их в файловой системе, в которую они попадают из разных программ, перекладываем с места на место, иногда — теряем и ищем3, потом открываем при помощи других программ, меняем, сохраняем, перекладываем, удаляем.

Фактически, пользователь работает частью файловой системы, интерфейсным рабом, организатором-передатчиком. Это при том, что подобной рутины реально избежать, и тому есть готовые примеры — скажем, пакеты программ от Adobe и Apple. Категоризатор фотографий принимает снимки от фотоаппарата, сортирует, и может напрямую передать выбранный кадр на ретуширование программе-фоторедактору, та — вернуть обратно для хранения или выгрузки в интернет. Пользователь при этом не обязан даже открывать файловый менеджер.

Вот только за пределами пакетов такой интеграции нет. Вернее, она встречается, но пользователь её вынужден создавать самостоятельно — при помощи скриптов или плагинов к программам. Почему бы не реализовать её на уровне операционной системы?

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

Для этого торрент-клиент должен знать, что на компьютере есть медиа-библиотека, той должно быть известно про проигрыватель, а он, в свою очередь, обязан познакомиться с видеоредактором т.п. Сейчас это не слишком просто, особенно — если все они созданы разными командами разработчиков.
Как им помочь? Вероятно, нужно несколько деталей:

  1. Стандартные модули ввода-вывода, предоставляемые операционной системой — для того, чтобы одна маленькая утилитка (полезная, но куцая) не могла разорвать длинный конвейер работы над файлом. Программа должна уметь принимать файлы не только через меню «Открыть» или drag-n-drop, но и напрямую от другой программы, причём этот механизм её автор не должен придумывать самостоятельно с ноля. Ни одна программа не должна становиться тупиком, из которого пользователь за своим файлом может только отступить в файловый менеджер.
  2. Такая система регистрации устанавливаемых в систему программ, при которой новая программа не просто говорит, какие файлы она может открывать, но и что с ними умеет делать.
  3. Открытые форматы файлов, понятные всем программам, участвующим в файлообороте — иначе его просто не получится реализовать.
  4. Для каждой программы — стандартное меню передачи файла на дальнейшую обработку. В этом меню перечисляются варианты манипуляций, которые можно проделать над этим файлом, и названия программ-инструментов. Каждая программа, установленная и зарегистрированная, как обработчик файлов данного типа, может добавлять себя в это меню.
  5. Многое другое, о чём я даже не подозреваю.


Хочется увидеть по-настоящему умные взаимодействия между программами. Чтобы, скажем, утилита для записи дисков, получив на вход фильм, сравнила его размер с предложенной болванкой, сообщила пользователю, что фильм её займёт не полностью, обратилась к медиа-библиотеке и предложила, чем можно болванку «добить», максимально эффективно используя место. Медиа-библиотеке при этом полезно знать, какие из фильмов уже записывались, а какие ждут создания «твёрдной» копии. Другой пример: интернет-браузер, получивший на вход .JPG от графического редактора, должен понимать, что его просят не показать картинку на экране, а подставить её в форму для публикации.

Всё это — попытка сменить принцип общения с компьютером: вместо того, чтобы без конца возиться с материалами (файлами), сортируя и подготавливая их, мы сможем больше времени уделять использованию инструментов (программ) по назначению.
Надеюсь, читатели либо скажут, что всё это уже реализовано и прекрасно работает, либо покажут, почему идея нереализуема, либо… вдруг среди них найдётся кто-то, способный воплотить её в жизнь?




1 ЖЖ-юзер albin_ придумал, ЖЖ-юзер lead_and_aether пересказал.
2 Repo! The Genetic Opera
3 Потеряли файл? Пытаетесь открыть его через меню «Последние документы» программы, а она говорит «Файл не найден»? Так это потому, что вы файл переименовали или переместили, пока программа была закрыта. Идите теперь в файловую систему, ищите его.
А почему бы файловой системе (ведь у неё все ходы записаны) при запуске программы не отчитаться: «Товарищ программа! За время вашего отсутствия следующие вверенные вам файлы были перемещены и переименованы…; их новое расположение…»?

Мой первый текст на хабре; будьте снисходительны:)!

Теги:
Хабы:
Всего голосов 27: ↑23 и ↓4 +19
Просмотры 802
Комментарии Комментарии 65