Статьи

SVG — будущее разработки приложений

С недавним выпуском браузера Chrome от Google я много думал о возможностях, которые дают нам растущие возможности Интернета. Почти все в новом браузере Google, от изолированной программной среды на страницу до интерфейса приложения, кричит «платформа приложения». Одним из ключевых компонентов является новый движок Chrome V8 JavaScript , который быстро превращает язык в жизнеспособного конкурента. серьезные вычисления благодаря скорости выполнения.

Конечно, гуглеры — не первые и не единственные, кто придумывает возможность сделать веб-приложения первоклассными гражданами на рабочем столе. Существует Prism (ранее WebRunner) , проект Mozilla, который запускает веб-страницу без какого-либо хрома, связанного с браузером. Существует также Fluid , которая делает то же самое для движка Mac WebKit . Все эти программы в основном являются тонкими клиентами для приложений облачных вычислений, таких как Apple MobileMe , набор инструментов Google или любые другие свойства «Web 2.0» , появившиеся в последние годы.

Такие компании, как Adobe и Microsoft, тоже участвовали в этом конкурсе. Предложение Adobe называется AIR и позволяет разработчикам, знакомым с технологиями веб-разработки, такими как MXML , ActionScript и Flash или HTML, CSS и JavaScript, создавать сетевые настольные приложения. У Microsoft есть конкурирующее предложение под названием Silverlight . Оба являются кроссплатформенными и способны использовать веб-стандарты в качестве основных частей кодовой базы приложения.

Является ли (X) HTML / CSS действительно PostScript будущего?

Я начал свою технологическую карьеру в 90-х годах с создания веб-страниц, потому что HTML был самым простым «языком GUI» для изучения в то время. Как мы знаем, попытки написать кроссплатформенный код на основе браузера долгое время были просто кошмаром. Однако по мере того, как веб-технология стабилизировалась, и прочные инженерные практики начали проникать в сообщество веб-разработчиков , trifecta (X) HTML, CSS и JavaScript стал, пожалуй, наиболее широко применяемым инструментарием GUI на планете. Теперь, его вездесущность и независимость от реализации — это то, что делает разработку веб-приложений настолько привлекательной, но можем ли мы подойти к этой проблеме с неправильной точки зрения?

Идея, что HTML является языком отображения, давно доказала, что это плохо . CSS научил нас отделять нашу презентацию от нашего контента, и двери, которые открывались, когда мы это делали, были неоценимы. Однако сегодня мы все еще поставляем веб-приложения в виде HTML-документов с небольшим количеством сценариев в верхней части. Это работает, но задушен всеми ограничениями HTML. По сути, HTML — это не формат доставки приложений, а язык описания контента , несмотря на все усилия рабочей группы HTML5 .

Введите рыжий пасынок веб-графики: SVG

Где наши тени? Закругленные углы — все еще PITA, чтобы сделать в HTML. Чтобы анимации и стилизованные модальные диалоговые окна работали легко, нам нужно сложить слой за слоем абстракции JavaScript на наших страницах в виде библиотек, и все же мы не можем делать то, что GTK и OpenGL могут сделать для нас на настольном компьютере. приложения .

Так что, если HTML не может доставить нам сюда, что будет? Microsoft хочет, чтобы мы использовали Silverlight, а Adobe хочет, чтобы мы использовали Flash и AIR, конечно. И Apple …? Apple якобы хочет, чтобы мы использовали canvas И претенденты Microsoft, и Adobe являются частными, что, по-видимому, является достаточной причиной для веб-разработчиков, чтобы в определенной степени избегать их, и все они — грязный HTML, что опасно для семантической сети.

Но у Apple на самом деле есть хитрость в рукаве. Как Mozilla работает с Firefox , Apple незаметно внедряет лучшую поддержку SVG , Рекомендации W3C для векторной графики на основе XML , в WebKit. SVG предоставляет те же возможности векторной графики, что и Flash, но делает это, используя все преимущества взаимодействия, которые XML приносит с собой.

SVG отлично подходит для графического отображения текста и изображений, манипулирования ими с помощью декларативных визуальных примитивов, и он поставляется с множеством забавных эффектов. По иронии судьбы, SVG изначально разрабатывался совместно Adobe и Sun Microsystems, но в последнее время Sun Labs занимается интересными технологиями. Самым убедительным экспериментом такого рода должен быть проект Live Labnel от Sun Labs .

Положить немного живого в сеть

Несмотря на то, что он не претендует на звание «веб-приложения» или « веб-операционной системы », как и многие другие проекты, Lively Kernel представляет собой полноценную графическую среду приложений и даже включает собственную IDE . Это напоминает ранние реализации SmallTalk , без сомнения, благодаря влиянию одного из его основных разработчиков, Дана Ингаллса , который также был одним из со-создателей SmallTalk. Более того, Lively Kernel полностью построен на JavaScript и SVG.

На странице проекта говорится, что особое внимание уделяется тому, чтобы рассматривать веб-приложения как реальные приложения, в отличие от ориентированной на документы природы большинства веб-приложений сегодня. Для разработчиков веб-приложений наиболее интересным в этом проекте является то, что он выполняет многие графические функции, которые мы не можем сделать в HTML (используя только подмножество стандарта SVG , не меньше), и предоставляет возможность взаимодействия с реальным JavaScript объекты в отличие от узлов HTML DOM. Окна — это оконные объекты JavaScript, а также ползунки и кнопки, и при изменении свойств кнопки ее представление в графическом интерфейсе обновляется соответствующим образом .

Более того, поскольку ядро ​​Lively основано на опубликованных открытых стандартах, оно переносимо на любой пользовательский агент, поддерживающий указанные стандарты, включая Firefox 3, Safari и Chrome. Когда Mobile Safari добавляет поддержку SVG, Lively Kernel, вероятно, будет работать и на iPhone. Кроме того, WebKit находится в инфраструктуре, разрабатываемой в рамках проекта KDE , который используется в качестве основы для ряда мобильных устройств (например, последние модели смартфонов Nokia), и который уже поставляется с рядом игр, которые в основном используют SVG. как их графические примитивы.

Как насчет семантики? Давай поедим наш пирог и тоже его съедим!

HTML имел фантастический успех, потому что он действительно хорош для общего описания контента в веб-документах. Поскольку и SVG, и XHTML являются приложениями XML, мы можем смешать их в одном файле или ссылаться на один из другого, и буквально получить лучшее из обоих миров. Это именно то, что продвигает проект Lively Kernel, так как они говорят, что в целом одной из наших целей было максимально использовать существующие технологии.

Соединение «привлекательной» графики с семантическим содержанием — это именно то, к чему мы стремились в течение многих лет. Интерфейсы, созданные с использованием сочетания HTML и CSS, просто не способны обеспечить красивые графические интерфейсы, но, поскольку эта технология никогда не была предназначена для этой технологии, это ограничение не должно вызывать удивления. С другой стороны, каждое приложение имеет некоторые данные, связанные с ним, и если веб-гибридные технологии научили нас одной вещи, то это то, что данные одного приложения гораздо более полезны в сочетании с данными другого приложения. К счастью для нас, описание данных и их связь с другими данными естественным образом подходят для стандартных веб-технологий, таких как XHTML и RDFa .

Один из способов описать то, о чем мы на самом деле говорим, — это связать « семантический рабочий стол » с « семантической сетью» . У ребят из проекта KDE есть кое-что интересное, чтобы показать нам и этот аспект. В последнем выпуске KDE появилось несколько увлекательных вторжений в семантический десктоп , предоставив низкоуровневые фреймворки, совместно именуемые NEPOMUK , для приложений, чтобы общаться друг с другом, обмениваться информацией о том, что происходит, и позволяя приложению вести себя интеллектуально в отношении того, какую информацию дисплей или как дополнить активность пользователя. Сама по себе эта цитата из Linux.com цитирует Ансгара Бернарди, который, как говорит координатор Непомука, ничего нового. Но в сочетании с огромным распределенным хранилищем знаний, которое может открыть семантическая сеть, подобный семантический рабочий стол приближает нас еще на один шаг к реализации мечты Ванневара Буша о Memex .

Перспективные веб-сайты уже используют SVG сегодня, и существует ряд инструментов, которые помогут упростить его реализацию. Библиотека Raphaël JavaScript заслуживает особого внимания благодаря своей способности выводить SVG в соответствующие браузеры и VML в Internet Explorer. Это позволяет разработчикам внешнего интерфейса использовать векторную графику в кросс-браузерном режиме, используя только один источник.

С ростом повсеместного распространения и доступности этих веб-стандартов комбинация семантически структурированных данных в сочетании с такими способными к отображению примитивами, как SVG, несомненно, является основной частью Интернета и, возможно, даже набора инструментов графического дизайна для семантического рабочего стола.