Но при этом смотрите, что происходит в «Фантоме»: здесь нет файлов, зато есть объекты. Объекты отличаются от файлов прежде всего тем, что для них можно определить методы — то есть давать им возможность сказать системе, что с ними ещё можно сделать. К примеру, их можно искать по другим критериям; например, их можно по-другому классифицировать, и не одним способом классифицировать.
Даже если брать совершенно прямолинейный уровень: как родным для «Фантома» способом сделать приложение? Приложение — это некоторый класс, реализующий некоторую функциональность. И объекты этого класса являются документами с точки зрения пользователя. Уже сам этот факт означает, что вы можете одним движением найти все документы такого типа.
Мало того, в рамках этих документов вы можете построить свою иерархию и классификацию и потом работать с ней. Если это документы CAD (простой пример из известой области) для разработки схем и прошивок для ПЛИСов — в ней есть своя классификация: печатные платы, схемы, компоненты схем, библиотечные элементы. Операционка про это ничего не знает, но в рамках модели классов этого продукта это представление есть и его можно использовать. То есть можно не имея в операционке никакого знания о том, что бывают печатные платы, схемы и прочие вещи, сказать ей: «Знаешь, у меня тут есть дерево классов, такой-то CAD, а в нём есть такой подкласс — печатные платы, найди мне эти объекты». В данном случае используется некоторое штатное свойство операционной системы, которое не проектировалось специально под эту задачу, но оно есть и оно отражает эту задачу — что меня, конечно, очень радует.
- Но действительно ли пользователям необходима иерархическая структура данных? Логично было бы каждый вид данных хранить наиболее подходящим для него образом...
- Да, но многие люди бесятся и говорят: «Дайте мне файл, я хочу его потрогать». Я бы не хотел их этого лишать. Но в отличие от Windows и Unix, где объект не может не лежать в файловой системе, в «Фантоме» решение об этом принимает приложение. Оно может взять и скрыть от системы именования свои объекты, если считает это удобным и правильным или если это полезно с точки зрения безопасности. Одна из причин, почему в Windows так хорошо живут вирусы (да и в Unix проблема та же) — это собственная файловая система, где можно просканировать всё, что есть. «Фантом» позволяет не показывать то, что программа не хочет. При этом объект существует, доступен тому, кому он нужен по указателю и больше никому. Я полагаю, что это достаточно важный факт с точки зрения защиты от вирусов. У «Фантома» есть и другие свойства, которые сильно осложняют жизнь злоумышленникам.
- Следующая мечта — исчезновение (с пользовательской точки зрения) разницы между оперативной памятью и диском. Это бы отменило необходимость сохранять то и дело свои данные. «Фантом» от этого избавляет?
- Да, «Фантом» здесь больше всего похож на листочек бумажки — вы написали что-то — оно осталось. Хотите копию — сделайте копию. А вот команда Save здесь не нужна по определению. Даже больше скажу — в «Фантоме» нет разницы между иконкой и окном. То есть иконка, документ и окно — это, вообще говоря, одно и то же. Наличие окна, которое показывает содержимое документа — это всего лишь вопрос состояния hide или unhide. По сути дела, окно — это увеличенная иконка.
- То есть можно сделать раскинский zoomable-интерфейс?
- Да-да-да! Это в существенной мере движется именно в эту сторону. Я как раз про это и говорил — в Раскине меня как раз смущает то, что у него есть хорошее представление о том, что он хотел бы видеть, но нет хорошего представления о том, как это положить на реальную софтверную среду. У нас это представление, кажется, даже есть. Оно не вполне однозначно ложится на идеи Раскина, но я в целом вполне разделаю его мечты.
- Далее — разница между запущенной и незапущенной программой. Она тоже, как я понимаю, стирается?
- Да, в «Фантоме» это делается естественным образом. Как только программу перестают беспокоить, она перестала быть запущенной. Начали снова с ней что-то делать — она продолжила работать с того места, где её оставили. Собственно, это к тому же вопросу об иконке, документе и окне. Есть документ, состояние которого присутствует, и если убрали окно, это ни на что не повлияет. Документ останется в прежнем состоянии.
- Последнее — это возможность отмены любого пользовательского действия.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии