Написать эту заметку меня побудила интересная инициатива Microsoft. Корпорация опубликовала на условиях Microsoft Public Licence (MS-PL) исходный код Mayhem — средства автоматизации для простых пользователей. Оно позволит не владеющим навыками программирования людям создавать сценарии для приложений Windows.
Предполагается, что с помощью Mayhem пользователи смогут в визуальном режиме, то есть без написания скриптов, запрограммировать компьютер на выполнение определённой последовательности действий. Для приложений будут создаваться триггеры и привязываться к неким событиям, при наступлении которых программа запустится и нужным образом отреагирует — скажем, почтовый клиент отправит письмо по заданному адресу. Если верить утверждениям разработчиков, Mayhem позволит связать между собой программы и службы Windows, а также работать с периферией.
Руководитель проекта Пол Дитц (Paul Ditz) называет его новым шагом в эволюции персональных компьютеров. Тут он немного лукавит — подобный инструмент давным-давно имеется в Mac OS X. Он называется Automator и не требует от пользователя знаний языков программирования (хотя и допускает вставки на AppleScript). Всё делается в графической среде. Шаги сценария выполняются последовательно, и выходные параметры одного из них являются входными для другого.
В Mac OS X программы (включая программы сторонних разработчиков) предоставляют системе доступ к своим командам и данным через стандартный программный интерфейс. Как будут решать проблему в Windows, я пока не знаю. Там со средствами межпроцессного взаимодействия всё не так просто. А что же Linux? Почему подобных инструментов нет в популярных свободных средах рабочего стола?
Все предпосылки для создания подобной программы есть. Ещё несколько лет назад я развлекался написанием скриптов для управления графическими приложениями KDE 3.5. Тогда в популярной среде были собственные инструменты для этой цели. В KDE 4 разработчики перешли на шину межпроцессного взаимодействия D-Bus. С ней разбираться я уже не стал, но сомневаюсь, что возможностей теперь меньше, чем в 2007 году. То есть некий аналог AppleScript у линуксоидов есть — соответствующий API можно использовать из любого скриптового языка. Более того, существует проект freedesktop.org, занимающийся стандартизацией этого безобразия — решения стали универсальными. Отсутствует только графический интерфейс для далёких от программирования пользователей.
Разумеется, никто не требует копии Automator или Mayhem (операционные системы всё же довольно сильно различаются между собой), но почему ни один из крупных разработчиков СПО не задался целью создать собственный полезный инструмент для автоматизации рутинных задач? Этого я понять не могу. Тем более что средства взаимодействия между процессами давно существуют и неплохо стандартизированы — продукт можно не привязывать к определённой среде рабочего стола и даже к определённой ОС (D-Bus используется не только в KDE и не только Linux).