«То о бэнтли я мечтал, то о мазерати,
То рыбалка, то футбол, то с друзьями пати…»
Группа Жуки
Захотелось мне что-то провокационной статьи, так сказать взбодрить чем-то наше профессиональное сообщество. Хватит заумных статей и философских рассуждений. Итак, делимся на две команды: «любители Соса-Cola - горнолыжники - виндсерферы» против «любители Pepsi - сноубордисты - кайтеры». Счет на табло 0-0 , начинаем!
Сначала давайте определимся, что же будем считать десктопным приложением, а что же веб-клиентом:
При использовании любого из перечисленных клиентских приложений может применяться трехзвенная архитектура - Аллилуйя! Термины «толстый» и «тонкий» клиент сюда не вплетаем. Веб-клиент можно создать совсем не «тонким», ровно также как и с десктопного приложения по максимуму снять обработку бизнес-логики.
Что каждый из пользователей, владельцев системы, архитекторов и сотрудников служб безопасности ждет от программного продукта и клиентского приложения:
Надеюсь, разобрались и можно начинать «играть». Звучат гимны команд, понеслась…
В каждой второй конкурсной документации (если не чаще), в разделе технических требований, можно заметить требования к наличию веб-клиента или веб-доступа. Возникает резонный вопрос «Вам вот это зачем, помимо того, что это модно?»
Как правило, обоснования такие:
Часть этих преимуществ можно достичь и в варианте с десктопным приложением используя RDP доступы, доменные политики и прочее. Но в целом, удар из штрафной площади и 1-0 в пользу веб-клиента. Свисток, центр поля.
Безопасность и надежность - очень серьезный вопрос. Некоторые организации принципиально не хотят и не предоставляют возможность работы в корпоративных системах за пределами своего домена. Необходимость применения средств криптографической защиты информации (СКЗИ) и электронной подписи (ЭП) уже давно никому доказывать не надо, за нас это делают регуляторы. Для использования данных технологий необходимо обращаться к сторонним библиотекам, не все веб-приложения это «любят» и имеют ограничения. Стабильность работы самих браузеров также является потенциально узким местом, причем повлиять на это разработчик бизнес-приложения может не всегда. Оффлайн работа, объективно, чаще и проще реализуются с использованием десктопных приложений. В принципе отдельных организаций пока еще пугает работа в браузере (да-да в том самом, в котором сотрудники просиживают часами в социальных сетях, выкладывая туда всю свою подноготную). Это прорыв по флангу и счет 1-1 . Звучит свисток, первая половина игры закончена, команды уходят в свои СЭД закрывать накопившиеся поручения.
Все покупатели хотят видеть «свой» продукт, отличный от множества других. Конечно, сложно на это надеяться, покупая массовый коробочный продукт. А сделать его «под заказ» значительно дороже и рисково. Но только не в IT области.
Повальная мода на скины, по-моему, уже прошла, или я постарел, и иметь не классическую «морду» аудио-проигрывателя мне уже не принципиально. Тем не менее, возможность изменить цветовую раскраску, логотипы, иконки, шрифты базовых интерфейсов - хороший бонус для клиента. Десктопные приложения могут предоставлять возможность применения цветовой темы, настройки отдельных интерфейсных элементов, но веб-приложения, применяя каскадные таблицы стилей, с этим справляются явно лучше. Возможность кастомизации определяется степенью развития самого программного продукта и тип клиентского приложения тут не должно иметь особой роли. Счет 2-1 и «браузерники» вырываются вперед.
Функциональность - важнейшее требование к любому программному продукту. Исторически считается, что десктопные приложения более функциональны и эргономичны. Если пытаться разрабатывать веб-клиент с нуля, то так оно и будет. Но с годами были разработаны целые интерфейсные библиотеки, позволяющие творить «чудеса»:
Про визуальную красоту реализации я и говорить не буду - там все очень достойно. Подозреваю, что компании больше и охотнее разрабатывают новые интерфейсные элементы под браузеры, чем для традиционных win32-приложений.
Современный пользователь компьютера не меньше времени проводит в браузере, чем тратит его на работу с десктопным приложением. И первый вариант работы сложнее ему не кажется. Зато возможность масштабирования в браузере, отдельным категориям пользователей, приносит ощутимую пользу. Опасность у ворот команды веб-клиента была устранена. Счет по-прежнему 2-1 .
Корпоративная информационная система растет вместе с компанией. А значит, количество рабочих мест увеличивается, расширяется линейка клиентских устройств для работы в системах. Мировые лидеры разрабатывают новые операционные системы и платформы, и угнаться за ним не так просто. А надо ли? Может быть, доверим им обеспечить совместимость распространенного программного обеспечения, а если такая совместимость не возможна, в их же интересах предоставить альтернативу. Вот такими финтами и перепасовками в центре поля одна из команд пробирается к воротам соперника.
Разрабатывая веб-приложения с соблюдением стандартов можно надеяться, что программное обеспечение будет корректно работать во всех браузерах, по крайней мере, в первой пятерке. Чуда тут не происходит, и существует масса нюансов связанных с различной интерпретацией одной и той же разметки. Разработчики каждый день видят в системах баг-трекинга заявки из разряда «функция А не корректно работает в браузере Б, а в остальных браузерах все ОК». Но эти труды стоят получаемых бонусов.
Когда пользователь заходит на рядовой публичный сайт в Интернете он надеется увидеть корректное представление страниц с сохранением всей заложенной функциональности. Причем, посетитель сайта не хочет знать «под какие устройства» сайт создавался (стационарный компьютер или ноутбук, планшет или смартфон), это его вообще не должно беспокоить. Почему же ровно также не рассуждать пользователю корпоративной информационной системы. Зачем пользователю, находящемуся вне офиса и имеющему на руках планшет за 1000$ переживать, что он не сможет исполнить поручение, выданное ему в СЭД. Надо ли сотруднику при выборе планшета изучать вопрос, а сможет ли он конкретно с этого планшета (с его операционной системой), корректно работать в десятках корпоративных систем своей организации. А если завтра он купит другой планшет (с другой программной платформой), система на нем будет ровно такой же, к которой он привык или уже другой, а придется что-то заново скачивать и устанавливать?
Последняя пара лет обозначилась появлением нескольких новых он-лайн приложений. Обычно называемые “WebOS”, “webtops” или “web desktops”, эти приложения используют Flash, Ajax или другие web-технологии, чтобы подражать обычному рабочему столу персонального компьютера. В теории это означает, что, где бы вы не находились, вы сможете получить доступ к вашей «рабочей среде» через простой интерфейс и набор инструментов. Конечно, всё с помощью одного логина.
На практике же, не всё так просто. Взяв во внимание различные web-десктопы на разных стадиях разработки в данный момент, ни один из них не предлагает в полной мере того, что требуется веб-работнику. Я посмотрел и поигрался с почти двумя десятками таких приложений, и до сих пор не нашел то, которое бы подошло мне в моей повседневной жизни.
Но имеются перспективы. Некоторые из этих приложений заслуживают внимания, особенно за то, что они начали взаимодействовать с другими сервисами, такими как Zoho Writer и Google Docs для редактирования документов, OpenBox от Box.net для хранения файлов, и другими сервисами и плагинами сторонних компаний. Ниже я отметил три наиболее перспективных webtop сервиса, а те, что похуже - уже за ними.
По моему скромному мнению, вот три самых активно разрабатываемых и используемых веб-десктопа (в алфавитном порядке):
Давайте по-честному. Мы за первый вариант - и да, поэтому мы поставили его на первое место. И да, именно поэтому мы сами работаем в сфере веба. И поэтому мы приглашаем студентов к нам - стажироваться и работать.
Сейчас попробуем доказать, что веб выигрывает у десктоп-разработки. Погнали:
Рынок веб-разработки в России за последние годы увеличился в 1,5 раза. Это показатель, и очень хороший. Рейтинг Рунета как-то - любопытные могут сходить по ссылке и посмотреть, как дела у отечественной веб-разработки.
На самом деле, это закономерное явление - что более технологичные вещи вытесняют менее технологичные. Вы сами вспомните:
Всё правильно, слева - устаревшие технологии, справа - веб-технологии, гибкие и практичные.
Список можно продолжать и дальше. Изменения затронули не только частную жизнь пользователей, но и большие компании. Продвинутые руководители не хранят данные на физических серверах - они просто берут в аренду серверы того же Google. Это еще и экономически выгодно (а по прогнозам Cisco , облачные серверы окончательно «победят» в 2014 году).
В общем, мир понял, что веб-технологии - это удобно, и что за онлайн-сервисами будущее. Логично, что спрос на разработку подобных вещей будет расти, а на десктопное ПО - падать.
Тезис о том, что мобильные технологии и мобильные приложения начали активный захват мирового рынка, не нуждается в доказательствах. Конкурирующие мобильные платформы iOS и Android имеют собственные онлайн-магазины, где можно скачать или купить сотни приложений, игр, электронных книг, музыки и фильмов.
Однако и здесь наблюдается тенденция к переходу на веб-технологии. Итак, в ближайшие несколько лет веб-разработка (и мобильная веб-разработка на HTML5) будет только набирать обороты . В этом можно не сомневаться.
И к финансовой стороне вопроса.
У специалиста в области веб-разработки есть как минимум два преимущества.
Во-первых, спрос на такие кадры остается высоким. Более того - с ростом рынка растет и спрос на веб-разработчиков.
Во-вторых, да, они неплохо зарабатывают - у PHP-программистов одни из самых высоких ставок на IT-рынке.
Но для того, чтобы ваша деятельность еще и приносила удовлетворение - нужен третий компонент, саморазвитие. Именно поэтому мы считаем, что работа в крупных IT-компаниях не подходит тем, кто хочет качественно развиваться: ведь зачастую разрабатываемый проект настолько огромен и делают его уже столько лет, что никто, кроме руководителя отдела программирования, не помнит, что вообще происходит.
Работа протекает по принципу «конвейера»: вы получаете маленькую задачу, спецификацию, пишете код, сдаете, получаете новую (иногда даже не связанную с предыдущей).
Развития там нет, потому что развитие должно быть направленным.
Поэтому мы предлагаем студентам стажировку. Это будет наше совместное приключение, цель которого - дать вам ценные знания и навыки. Нет, мы не делаем этого бескорыстно, когда вы научитесь, мы с большой вероятностью предложим вам остаться и получим в штат подкованного разработчика:).
А еще наши внутренние процессы настроены на постоянное повышение качества. Во всем. Например, у нас есть холивары по четвергам, на которых можно послушать доклады коллег и поспорить о том, какая технология лучше. Или виски-брейки, куда мы зовем интересных людей из мира разработки и дизайна, а потом общаемся с ними в очень приятной, расслабляющей обстановке;).
В общем, не будем проводить откровенную агитацию, просто подумайте, в какой сфере вы хотели найти себе применение. А мы всегда будем рады с вами познакомиться.
A picture is worth a hundred words, and a nice live demo – even thousands. So don’t think – click on the image below and keep reading this article after watching the demo.
The demo above shows how the Web Desktop can be created on the base of Webix ui components. Such kind of shell can be used by remote user, providing them the desktop-like environment, where users can access the remote data and work with it. Users can launch inner apps, organize them on the screen, switch between them. All the same can be done with common desktop web apps. And it works in any browser (even in IE8!)
Demo is fully written in JavaScript and is using common Webix ui components. Main UI is created with a help of Layout and List components. Popup elements are Window widgets. Work area with icons is really a Data View component. Webix components allow to redefine their look and feel through CSS, and as you can see it can lead to the dramatic changes.
It may be a bit crazy to create a desktop-like shell in the browser, but why not. Webix is a powerful toolkit and it is not limited to the tables and buttons.
For now, Virtual web desktop is just a demo. While you can use it in web ui development, it doesn’t work as a standalone component, and may require a lot of code for proper integration. We are thinking about converting this demo to a standalone component, with rich API and documentation.
Please share your thoughts in comments. What do you think, does this demo need to be extended, or are there some other crazy things, which you wish to see implemented with Webix?