Выбрать главу

Но пойдем дальше. Такая штука, как «виджет» [Подробнее о концепции виджета см. Тимофей Бахвалов, «Столовые приборы» («КТ» #621 или offline computerra ru/2006/621/247558)] (он же, по версии Google и Microsoft, «гаджет» – в контексте «desktop gadget» или «web gadget»), – маленькое окошко с небольшим количеством элементов, запускается либо на рабочем столе, либо на популярной в последнее время «персональной домашней странице» (например, google com/ig или netvibes). «Движок для виджетов» встроен в последние версии Google Desktop и Opera, да и в самой Vista он есть; под Маком виджеты – уже давно неотъемлемая часть окружения; есть свои решения и для Linux’овых десктопов. Технология создания виджета – как правило, опять же простой язык разметки на основе XML (или HTML) + JavaScript (иногда другой скриптовый язык, например Python).

Можно ли эти виджеты, которые уже кто только не делает кустарно, считать полноценными программами? Существующие варианты – «часики» да «блокнотики» – может, и не стоит (хотя, наверное, по low-end шароварному рынку и эти «поделочки» ударили болезненно). Но как только виджеты научатся «соединяться в цепочки», передавая друг другу примитивные потоки данных (аналогично помянутым Yahoo! Pipes)… Интересно будет узнать, скольким пользователям пачка таких «недо-программ» (одна получает почту, другая показывает, третья статистику строит, четвертая в блог постит) прекрасно заменит современный зоопарк десктопных монстров. Не зря ведь Apple, считающая себя родоначальником идеи «настольного виджета», не планирует пускать на свой iPhone полноценные сторонние приложения – при том, что виджеты на нем вполне будут работать [Можно еще вспомнить такую штуку, как Opera 9 for Devices, тоже поддерживающую все те же виджеты и превращающую разработку простого ПО для встраиваемых устройств в занятие для «простого смертного»].

Из технологий программирования уровня «просто человека, а не разработчика» можно еще вспомнить Flash с его всеохватностью – от мультиков и YouTube-роликов до крутейших игр, а ныне агрессивно продвигаемый еще и как «более красивый и быстрый интерфейс для веб-приложений». Да и встроенный в SecondLife скриптовый язык для «оживления объектов», думается, используют не только (и не столько) профессиональные разработчики.

Это перечисление можно было бы продолжать, но идея уже и так понятна.

Возвращаясь к «платформам для всех», заметим, что к ним можно отнести и современные веб-фреймворки толка Ruby on Rails: точно так же они обеспечивают полный набор основных сервисов и типичных задач; точно так же для разработки простого приложения можно практически не знать Ruby (или Python, если речь о Django, или Groovy, если о Grails), ориентируясь на простые примеры и руководства для новичков. И даже.Net/JVM до некоторой степени представляет собой такую «платформу» [Тут можно привести в пример проект AnAppADay com, автор которого решил провести эксперимент и написать за тридцать дней тридцать несложных, но полноценных программ на C# 2.0; и действительно, целый месяц раз в день выдавал законченные программы– не слишком примечательные, но сравнимые с теми, что пару лет назад гордые авторы-шароварщики толкали по $19,99].

Представляется, что «десктопная система будущего» – это всего несколько «программ» в старом смысле слова (серьезных систем, написанных на эффективных языках подготовленными командами-«колхозами» профессионалов), населенных бессчетными мелкими «штучками на все случаи жизни» и тесно переплетенных с десятками веб-приложений [Веб при этом может разделиться на два разных «Веба»– старый (тексты, связанные ссылками) и новый (программы, активно работающие и на сервере, и на клиенте). Кое-кто даже предлагает ввести новый протокол HATP (HyperApplication Transfer Protocol в пику HyperText Transfer Protocol)]. К примеру, разработчики из Mozilla такие перспективы внимательно оценили: для Firefox 3 запланирована возможность работы с веб-приложениями при отсутствии подключения к Интернету (то есть «подключились к сайту приложения, загрузили его, отключились, но можем продолжать работать»), что подчеркивает роль этого приложения как платформы, а не просто «смотрелки страничек» [Кстати, каким бы фанатом «Огнелиса» ни выглядел автор, для повседневной работы он таки предпочитает «Оперу»].

О раскулачивании колхозов

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

Пока меня не успели обвинить в «отмене программистов как класса», сакцентирую внимание на том, что платформы тоже кто-то должен создавать. И вот здесь хороши именно традиционные способы: внимательное проектирование, интенсивное тестирование на предмет ошибок (а лучше – разработка через тестирование) и проверка удобства пользования; внимание к производительности и безопасности; вообще все то, о чем единоличным авторам «программулек», которые будут работать на создаваемой платформе, хотелось бы забыть, – все это ляжет на плечи коллективов создателей.