Что такое «Malleable software»

Статус: Росток ☘️ | Посажено: Апр 27, 2023 – Обновлено: Окт 31, 2023

Malleable ➜ Податливый (как пластилин), ковкий (как металл). Легко поддающийся формовке, обработке.

Malleable software — концепция, предложенная в 2019 году Philip Tchernavskij в его докторской диссертации «Designing and Programming Malleable Software».

В том же году образовалось небольшое сообщество Malleable Systems Collective, занимающееся каталогизацией и экспериментами с подобными системами:

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

Наша миссия — изменить все это!

Мы считаем, что все программное обеспечение должно быть malleable (податливым): каждому должно быть легко повторно использовать функции, по-новому комбинировать логику и пользовательский интерфейс и делиться своими настройками с другими.

Сегодня мы очень далеки от этой волшебной вселенной, и впереди еще много работы, чтобы сделать это возможным. Если что-то из этого вас интересует, пожалуйста, примите участие, напишите и поэкспериментируйте, как мы можем воплотить это в жизнь.»

Но 2019 год можно считать условной датой рождения «Malleable software» (как термина). Сам класс подобных приложений появился намного (на десятилетия) раньше. Да и участники сообщества занимались исследовательскими проектами на данную тематику ещё до его создания.

Сообщество во многом академическое (каталогизация и эксперименты!), результаты работы публикуются в разделе «Catalog» сайта и в блоге. С июня 2023 добавился форум, где в отдельных разделах можно предложить и обсудить свои «malleable» идеи или проекты.

Подборка материалов на сайте хоть и не большая, но примечательная. Может быть источником вдохновения как для разработчиков, так и для пользователей. Например, после прочтения вы можете полностью переосмыслить свое «ви́дение» о том, как ваши личные процессы (и, следовательно, выбранные вами приложения) должны правильно выглядеть 😁

———

Malleable software, по мнению сообщества, придерживается нескольких основных принципов

На сайте сообщества в разделе «Миссия» по каждому из пункту есть дополнительное описание на 2-4 абзаца. Авторы отмечают, что многие идеи, вокруг которых построена эта миссия, распространяются уже десятилетиями.

Easy to change
Программное обеспечение должно быть так же легко изменять, как и использовать его.

Arbitrary recombination and reuse
Все уровни, от пользовательского интерфейса через функциональность до данных внутри, должны поддерживать произвольную рекомбинацию и повторное использование в новых средах.

Open-ended potential
Инструменты должны быть простыми в начале работы, но при этом иметь большой открытый потенциал.

Retain ownership and control
Люди с любым уровнем опыта должны иметь возможность сохранять право собственности и контроля.

Freely sharable
Рекомбинированные рабочие процессы и опыт должны быть доступны для свободного обмена с другими.

Modifying in the context of use
Модификация системы должна происходить в контексте использования, а не с помощью какой-то отдельной цепочки инструментов разработки и набора навыков.

Thoughtfully crafted
Работа с компьютером должна быть тщательно продуманным, увлекательным и расширяющим возможности опытом.

———

Яркие примеры приложений, которые можно отнести к Malleable software

GNU Emacs (разрабатывается с 1976 г.)

Сам себя он характеризут как расширяемый, настраиваемый, бесплатный текстовый редактор. По своей сути — это интерпретатор языка программирования Emacs Lisp с расширениями для поддержки редактирования текста.

Вы можете создавать свои приложения внутри Emacs, используя язык Lisp. При этом писать код вовсе не обязательно, поскольку большинство пользователей Emacs делятся тем, что они разработали. Вы можете расширить и сконфигурировать Emacs с помощью любого из тысяч свободно доступных пакетов.

На практике, пользователи могут настроить практически всё в системе, имея лишь немного знаний о языке.

Glamorous Toolkit (разрабатывается с 2017 г.)

Среда разработки, построенная на основе Pharo, современного преемника языка Smalltalk. Позиционируют себя как «Moldable Development environment». Похож в этом отношении на Emacs, только здесь у нас виртуальная машина Pharo с большим набором уже готовых компонентов для: программирования, исследования данных, работы с API, knowledge management, исследования логов, моделирования предметной области…

Правильнее, на мой взгляд, называть его исследовательским инструментом для разработчиков. Делал по этому поводу небольшой пост в ВК «Краткое объяснение сути Moldable Development от Tudor Girba, автора приложения», с парой картинок и ссылкой на связанную статью.

Очень много примеров по использованию приложения публикуется на его сайте и в сообществе Discord.

———

Дополнительные источники по данной теме

Список в процессе наполнения, не все свои заметки ещё перекопал, будет расширяться.

Помимо сайта и форума сообщества «Malleable Systems Collective», за какими персонами, проектами и приложениями периодически посматриваю.

Исследовательская команда «Ink & Switch»

Давно отслеживаю их публикации и периодически упоминаю в своих заметках. В рамках своих исследований, команда делает очень занимательные прототипы приложений. И в целом подробно разбирает ситуацию в отрасли.

Свою деятельность они описывают как:

«Computers can aid humans in our most noble endeavors: art, science, thinking, self-improvement. But today’s dominant computing platforms increasingly work against the needs of creative professionals. Ink & Switch is an independent research lab working on this problem».

Что важно, они ещё и практики. Помимо исследовательских проектов работают и над реальными приложениями / сервисами.

В каталоге сайта «Malleable Systems Collective» есть, в том числе, материалы от Ink & Switch.

Geoffrey Litt

Один из участников команды «Ink & Switch» и сообщества «Malleable Systems Collective». Периодически публикует собственные материалы у себя на сайте и в социальных сетях.

➌ Аутлайнеры Roam Research и Logseq

Их пока нельзя назвать полноценными malleable-приложениями (скорее, они даже далеки́ от этого), но есть хороший задел.

У Roam research, несмотря на то, что это проприетарное приложение, шансов на мой взгляд больше.

Nyxt browser: The hacker's browser

И браузер весьма нестандартный, и написан на Lisp (runtime для него), и очень близок к тому, чтобы превратиться в полноценное «malleable software». По примеру Emacs, предполагается, что его можно будет полностью переделывать под себя.

Далеко не новичок, лет 5 уже известен в узких кругах. В мае 2023 анонсировали выпуск версии 3.0 (полтора года разрабатывали), которую продолжают сейчас активно развивать.

У части пользователей возникает вопрос, почему был создан отдельный браузер, а не плагин к уже существующим браузерам или расширение к Emacs. У разработчиков по этому поводу есть 2 толковых коротких заметки:

TiddlyWiki

Приложению уже почти 20 лет, сообщество у него пусть и небольшое, но преданное. Поэтому проект продолжает развиваться, появляются новые форматы приложения.

———

Факультативный раздел (заметки по смежным темам)

В процессе размещения. Собираю сейчас свои заметки по данной теме в одну кучу.

➜ Как GPT-хайп может поспособствовать популяризации «Malleable software»