Wednesday, October 5, 2011

Священная война: веб против десктопа (web vs desktop) - часть 2 или как решить проблему

Итак, передо мной в очередной раз встала задача - выбрать, что лучше - делать десктопное приложение или же для веба. Чтобы упорядочить доводы и не пропустить ничего важного, я прибегла к старому и проверенному способу - mind mapping (не знаю подходящего перевода). Для этого вы изображаете свои мысли на бумаге в виде дерева, по мере продвижения вглубь (или вширь) возникают новые ассоциации и тем самым вы (как будто) ничего не пропускаете. В результате получился чек-лист, который может быть использован каждый раз, как только вам нужно решить данную проблему (в данном случае выбора между двумя технологиями).

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

1. Использование
1.1. Примеры продуктов для В и Д
1.2. Установка
- В: Не надо скачивать ни программу, ни обновления (+)
- Д: Надо скачивать программу, может быть неудобно (-)
1.4. Обновления
- В: Установка обновления происходит прозрачно для пользователя (+)
- В: Если обновление установлено неправильно или содержит баг, это коснется сразу всех пользователей (-)
- Д: Сложно организовать обновление программы, БД (локальной) (-)
1.5. Работа в офлайне
- В: Невозможна (-)
- Д: Легко организуется (+)
1.6. Работа в онлайне
- В: Легко организуется (+)
- Д: Может быть организована, если надо (+)
1.7. Загрузка медиафайлов
- В: Не надо загружать их специально, могут подгружаться в процессе просмотра (прослушивания) (+)
- Д: Надо загружать медиафайл целиком (-)
2. Разработка
2.1. Нагрузка (на сервер):
- В: может быть большой (-)
- Д: небольшая (+)
2.2. Доступность кода
- В: Если используется Flash, код недоступен (-)
- Д: Если используется Qt, код доступен (+)
2.3. Доступность IDE
- В: Для Flash - Adobe Flash Builder Standard (~$250) (-)
- В: Сайт на ASP.Net - VS Express ($0) (+) - Д: Qt SDK ($0) (+)
2.4. Разработка для мультимедиа
- В: Flash Player, неясны возможности. Можно загружать локальный файл, поддерживает потоковое видео, аудиоформаты. (+)
- Д: Qt Phonon: ограниченные возможности, которые (теоретически) могут быть расширены. (-)
2.5. Разработка интрефейса
- В: Можно сделать интерфейс любой сложности, но это непросто (-)
- Д: Интерфейс сделать очень легко (+)
2.6. БД
- В: Используется БД на сервере, например, SQL Server, а также куча удобных средств: EF, Linq (+)
- Д: Используется локальная БД, например, SQLite, для которой нет ORM (-) но можно использовать и серверную БД (+)
2.7. Создание инсталлятора
- В: Не требуется (+)
- Д: Требуется, при этом либо платить бешеные деньги за готовое мультиплатформенное решение (~ от $2000) либо писать инсталлятор под каждую платформу (-)
2.8. Локализация
- В: Немного мутно, но вполне осуществимо (-)
- Д: Легко (+)
2.9. Монетизация - реализация - защита
- В: Доступ к дополнительным возможностям сервиса, работа без ограничений - защита может быть выполнена без особых трудностей (+)
- Д: Продажа копий - организовывать защиту для каждой платформы - трудно и дорого (-)

Теперь подсчитаем плюсы и минусы, вот что получилось:
Веб: плюсов - 9 минусов - 6
Десктоп: плюсов - 8 минусов - 7
Результаты несильно отличаются, но если ввести понятия "веса", то, возможно, разница будет более существенной.

4 comments:

  1. На мой взгляд, вопрос действительно серьезный.
    Я пока не собираюсь переходить в Web, хотя преимуществ реально много у меня всё пока упёрлось в поддержку 3D графики.

    http://matrixfailure.wordpress.com/2011/10/09/desktop-vs-web/

    ReplyDelete
  2. А веб разве не поддерживает 3D?

    ReplyDelete
  3. Насколько я знаю, сейчас нет технлогии сделать в вебе 3D так, чтобы оно работало на всех браузерах на всех платформах. В качестве платформы можно было бы выбрать Flash / Flex, но оно не работает на iPAD/iPhone.

    ReplyDelete
  4. >оно не работает на iPAD/iPhone

    А люди то и не в курсе:) Тысячи флэшевых приложений под iOS обман?

    ReplyDelete