В чем разница между Morph в Morphic и NSView в Cocoa?

Я хотел бы знать о том, что делает Morphic особенным.


person Richard Durr    schedule 01.11.2010    source источник


Ответы (3)


Morphic — это гораздо больше, чем NSView или любой другой графический класс, который просто позволяет повторно реализовать ограниченный набор функций. Morphic — чрезвычайно гибкий конструктор пользовательского интерфейса. Некоторые дизайнерские идеи, лежащие в основе Morphic, ясно показывают это намерение:

  • Включена всеобъемлющая иерархия 2D систем координат. Они не ограничиваются декартовыми или линейными. Полезные нелинейные системы координат включают полярную, логарифмическую, гиперболическую и географическую (подобную карте) проекции.
  • Отделение обработки систем координат от самих морфов. Преобразованию нужно только выбрать предпочтительную систему координат, вместо того, чтобы самостоятельно преобразовывать каждую точку, которую он рисует, в мировые координаты. Его метод #drawOn: и расположение его подморфов выражаются в его собственной системе координат.
  • Полная независимость от свойств дисплея, таких как размер или разрешение. Понятия пикселя нет. Графический интерфейс мыслится на более высоком уровне. Весь графический интерфейс не зависит от разрешения в пикселях. Весь рендеринг сглажен.
  • Разделение системы координат упрощает перемещение, масштабирование и вращение морфов.
  • Все координаты являются числами с плавающей запятой. Это хорошо для разрешения абсолютно произвольных масштабов без существенных ошибок округления.
  • Иерархия Morph не является иерархией форм. У морфов нет понятия границы или цвета. Не существует общей концепции выравнивания подморфов. Конкретный морф может реализовать их любым удобным для себя способом.
  • Обработка морфических событий является гибкой и позволяет отправлять события произвольным объектам. Этот объект не должен быть подклассом Morph.
person Vijay Mathew    schedule 02.11.2010

Предупреждение. Живая динамическая среда Smalltalk — это красная таблетка. Статические, замороженные языки никогда не будут для вас прежними ;-)

В двух словах: Morphic — это виртуальный мир, в котором вы можете непосредственно исследовать живые объекты (прямо как в реальном мире). Вы когда-нибудь смотрели на пользовательский интерфейс и...

  • задаться вопросом: «Вау, это действительно круто! Как они это сделали?»
  • kvetch "Лучше бы они сделали X вместо этого!"

В то время как эти мысли привели бы к боли и разочарованию в любой другой среде, не в Morphic.

Если вы хотите взорвать свой мозг, станьте богом в морфическом мире:

  1. Запустите изображение Pharo и нажмите на фон (который на самом деле является «Миром»), чтобы вызвать меню мира:

    альтернативный текст

  2. Поднимите «ореолы» в одном из пунктов меню (Shift-Alt-щелчок на моем Mac): alt text

  3. Перетащите ореол «Взять» (вверху посередине) и бросьте его куда-нибудь в мире: alt text

  4. Наслаждайтесь своим пунктом меню, который теперь доступен везде, где вы этого хотите: alt text

Серьезно, нажмите на нее и посмотрите, как откроется браузер!

У вас когда-нибудь была опция, которую вы всегда используете, которую поставщик похоронил на три уровня меню? Может ли это быть полезным?! Это проблеск силы живой среды с прямым графическим интерфейсом, такой как Morphic.

Если вам интересно, прочтите статью Джона Мэлони и Рэндалла Смита

person Sean DeNigris    schedule 10.12.2010
comment
Спасибо за ответ и ссылку. В сети мало информации о Morphic. То немногое, что я нашел, просто изумляет, как это круто, без ссылки на резервную копию (не меньше Википедии). - person Stephen; 21.02.2014
comment
Попробуйте погуглить морфное селфи. Язык Self - это место, где был изобретен Morphic (Squeak/Pharo/LievelyKernel's Morphic являются портами). Я по-настоящему понял принципы (если понимаю сейчас, ха-ха), когда изучал работы первоначальных авторов. - person Sean DeNigris; 07.03.2014
comment
Morphic идеально подходит для живого кодирования. Это такое сопоставление, при котором при изменении кода изменяется вывод на экран, а при изменении морфинга на экране значения в коде изменяются. - person ; 24.10.2019

Заголовок не соответствует вашему вопросу, поэтому я отвечаю на ваш вопрос, а не на заголовок.
Я читал о Morphic за последние два дня и пришел к выводу, что, по моему мнению, делает morphic особенным.

Morphic идеально подходит для живого кодирования. Это прямое сопоставление, при котором при изменении кода меняется вывод на экран. И/или если морфы на экране меняются (перетаскиваются), значения в коде меняются. Это круто в художественном исполнении!

Но Morphic стремится к более высоким абстракциям. Свойства морфов абстрагируются от кода. Примените SoC к файлу или выбрать серверную базу данных.

Я полагаю, что WebStorage и файл JavaScript - хороший вариант для хранения состояния живости свойств Morph, измененных в интерактивном режиме. Видите ли - программирование осуществляется через каждый Morph. Тогда коду нужно только обрабатывать события от щелчка и перетаскивания.

Цель исследования даже абстрагировала код. . Кодирование можно выполнить с помощью Morph, чтобы определить, что происходит при щелчке или перетаскивании. Морфы могут быть кусочками головоломки, как в Scratch.

Программа должна быть где-то скопирована в файл. Я не считаю кодирование в облаке безопасным. Таким образом, JS-файл является единственной альтернативой (если нет возможности настроить сервер), потому что файлы данных не разрешены локально, даже в той же папке, что и веб-приложение. Политика того же источника означает тот же сервер, а не ту же папку.

Когда приложение запускает файл Javascript (или веб-хранилище в первое место) настроит мир морфов. Пользователь взаимодействует с этим миром. Новое состояние можно сохранить в WebStorage и создать резервную копию путем загрузки.

Вы можете использовать Lively Kernel в качестве языка в файле или сохранить преобразовать данные в объект или что-то еще, что вам проще всего сгенерировать в виде файла для загрузки.

Так что же в этом особенного? Я не повторяю принятый ответ, но это мой вывод:

  • Все, что вы видите на экране Morphic, является морфом.
  • Дерево морфов называется миром.
  • Координата, размерность и свойства каждого преобразования абстрагируются от кода в дерево.
  • Исследование также направлено на абстрагирование кода.
person Community    schedule 24.10.2019