Будущее разработки настольных приложений (Windows): будущее WPF и Silverlight

Недавно я прочитал некоторые статьи/блоги/комментарии о развитии и истории WPF и Silverlight. На некоторых форумах многие разработчики и пользователи критикуют производительность приложений WPF (например, Visual Studio 2010). На самом деле рыночная доля Silverlight по сравнению с Flash не очень высока. На PDC 2010 Боб Маглиа сказал что-то вроде "наша стратегия Silverlight и фокус в будущем сдвинулся...", и Microsoft хочет подтолкнуть HTML5 в будущем.

Я начал изучать WPF и Silverlight несколько месяцев назад, и теперь я должен спросить себя, буду ли я продолжать инвестировать время в изучение и практикуя эти (по моему мнению) очень хорошие и мощные технологии!? У них есть будущее? У приложений Windows (настольных (клиентских) приложений есть будущее? У так называемых "богатых интернет-приложений" есть будущее? Или HTML5 станет "абсолютной истиной" - основной платформой для разработки программного обеспечения?

Каково ваше мнение и что вы думаете?

Ответ 1

У меня очень похожие вопросы, как у вас. Поскольку эти вопросы субъективны, у людей, как правило, есть разные ответы на будущее WPF и Silverlight. Для меня HTML5 никогда не заменит такую ​​технологию, как WPF. Они говорят, что "никогда не говорят никогда", но даже если он заменит его, это не произойдет в ближайшее время. HTML5 выглядит как Silverlight и Flash. Нам не нужно будет устанавливать плагины (даже эта претензия субъективна, потому что и Silverlight, и Flash продвигаются, так что HTML5 действительно полностью догонит их?). Кроме того, в прошлый раз, когда я проверил некоторые образцы HTML5, я заметил, что как только вы обновляете свою веб-страницу, анимации начинаются с самого начала - что-то Flash (для меня) плохо известна.

WPF - это другая технология. Я сам не веб-разработчик, но, честно говоря, мне бы не хотелось иметь кучу инструментов в моей панели инструментов, такой как HTML, CSS, Javascript. Вместо этого вы можете использовать единую структуру и разработать то, что вы хотите в WPF. Это отличная технология, которую еще не обнаружили многие разработчики. Конечно, это подводит нас к вопросу "Я иду с настольным компьютером или в Интернете?"

Что касается будущего разработки настольных систем, то и в ближайшее время это никуда не денется. Я вижу растущую тенденцию к разработке веб-приложений, но мы должны понимать, что развитие настольных систем и облачных разработок имеет свои плюсы и минусы. Сейчас я нахожу веб-приложения медленными, и я предполагаю, что веб-приложения не так эффективны, как настольные приложения. Будущее разработки Windows зависит от доли рынка Windows. Если Microsoft сможет сохранить свою монополию, и ваше приложение будет полезно и интересно, я не думаю, что пользователи его проигнорируют. Я думаю, что разница между разработкой настольных систем и веб-разработкой размывается, и по мере того как физические машины становятся все более и более мощными, меньше пользователей будут жаловаться на проблемы производительности и частые обновления. Почему мы даже пытаемся спросить пользователей, хотят ли они обновить свое программное обеспечение? Я думаю, что такие подсказки раздражают, как ад. Должно быть предпочтительнее устанавливать обновления молча и позволить пользователю использовать приложение при следующем запуске.

P.S. WPF будет более популярным, чем WinForms, и, надеюсь, MS прекратит последний день. Таким образом, это дает вам еще одну открытую дверь, чтобы инвестировать в нее.

Кроме того, я всегда ненавидел идею моего приложения, запущенного внутри браузера. Я думаю, это делает меня эгоистичным, но я не хочу беспокоиться о сбоях браузеров, несовместимости браузеров, браузерах, которые еще не поддерживают определенные функции технологии и т.д.

Ответ 2

Это чрезвычайно спекулятивный, но несколько ключевых моментов:

  • В разработке программного обеспечения никогда не будет ни единой "абсолютной истины". Различные инструменты используются для различных целей для решения различных проблем.
  • Вам нравится писать программы в WPF и Silverlight? Вы находите их полезными инструментами для создания качественного программного обеспечения? Ты хорош в этом? Если да, то зачем останавливаться?
  • Больше сосредоточьтесь на написании программного обеспечения и меньше на используемых вами инструментах. Важное значение имеет знакомство с широким набором инструментов, но не позволяйте инструментам сосредоточиться на том, что вы делаете... написание программного обеспечения. Если инструмент становится костылем, что-то не так. Если вы делаете карьеру из-за знакомства с данным инструментом, что-то не так. Лучше быть "разработчиком программного обеспечения, который знает Silverlight", чем "разработчик Silverlight".

Ответ 3

Цитата из Боба Маглии была неправильно понята и размыта из-за несоответствия. Фокус Microsoft не отошел от Silverlight, так как многие люди предполагали из своего интервью. Просто Silverlight теперь используется по-разному (бизнес-приложения, приложения для телефона и т.д.), И их фокус изменился соответствующим образом.

И тогда сравнение с Flash не очень справедливо, поскольку Flash имеет огромное начало. Flash был представлен в 1996 году и долгое время был распространен. На протяжении многих лет я смотрел больше, чем Silverlight. RiaStats.com теперь показывает коэффициент принятия 63% для Silverlight 4, что неплохо. Еще есть моменты, когда этот уровень адаптации немного ниже для основного приложения. Но тот факт, что он продолжает расти, обещает будущее Silverlight.

В несколько более субъективной заметке я являюсь поклонником переносимости Silverlight. Тот факт, что он все еще загружается и запускается в браузере на 5 МБ или выходит из него на ПК или Mac, очень приятен. И тогда Silverlight также используется на WP7, а вскоре и XBOX. Просто изучив Silverlight, вы открываете себя для разработки для множества компьютеров и устройств.

Ответ 4

HTML накладывает значительный уровень абстракции между разработчиком и моделью визуальных объектов. Выигрыш для этой абстракции огромен. Но абстракция означает, что всегда будет существенный разрыв между тем, что вы можете сделать в приложении HTML, и тем, что вы можете сделать с технологией, предназначенной для взаимодействия непосредственно с операционной системой.

Приложения WPF запускаются под Windows. Так делают приложения браузера, но разница в том, что приложения WPF это знают. Вы можете создать приложение WPF, которое знает, какие ресурсы доступны для текущего пользователя Windows. Вы можете создать приложение WPF, которое может взаимодействовать с файловой системой, базами данных, очередями сообщений. Большая часть этого может быть выполнена приложениями HTML, если они взаимодействуют с веб-службами, но это добавляет еще больше уровней абстракции.

В очень реальном смысле вопрос: "У WPF есть будущее?" на самом деле: "Есть ли у Windows будущее?" В конце концов, если вы не собираетесь использовать настольные приложения, зачем вам настольная операционная система? Хотя я не чувствую, что это вопрос, чей ответ обязательно очевиден - возможно, ChromeOS, то есть Android, собирается оглушить всех нас - я не теряю много сна над этим прямо сейчас.