История мобильных платформ Windows – от CE до Phone. Windows Core OS — модульная платформа будущего

Дорогие хабравчане!

Хотел бы попродробнее рассказать вам про одно из самых интересных на мой взгляд нововведений . Речь пойдет про одновременную разработку приложений для Windows 8 и Windows Phone, т.е. про универсальные приложения для платформы Windows .

Платформа Майкрософт покрывает широкий спектр устройств - от смартфонов и планшетов до настольных компьютеров и игровой приставки Xbox One, и вполне естественно, что разработчику хочется минимизировать усилия при создании приложений под все форм-факторы. На конкурирующих платформах существует огромная разница между настольными и мобильными приложениями (поскольку они работают под управлением различных операционных систем), при этом мобильные приложения, разработанные для смартфона, могут работать на планшетных устройствах, что зачастую приводит к неудовлетворенности пользователя из-за не очень качественного пользовательского интерфейса.

На данный момент Майкрософт вплотную подошел к тому, чтобы унифицировать все платформы (Windows Phone, Windows 8, Xbox One) с точки зрения API, и позволить программисту максимально использовать общий код при создании приложений, при этом сохранив возможность использования различного дизайна для различных форм-факторов. Подробнее про то, как это реализовано на текущий момент - читайте ниже.

Как раньше создавались приложения Windows + Phone
До сегодняшнего дня для создания приложений с общим кодом для Windows и Windows Phone приходилось использовать разделяемую переносимую библиотеку (portable library) для выделения общего кода, отвечающего за доступ к данным и бизнес-логику, и различные проекты для UI. Подробнее такой подход описан в специальном курсе на Microsoft Virtual Academy , или . Также из-за разницы в API Windows 8 и Windows Phone приходилось часть кода делать платформенно-зависимым.
Универсальные приложения Windows
На конференции build были объявлены следующие нововведения:
  • В новой версии Windows Phone 8.1 будут использоваться Windows RT API Это означает, что около 90% системных вызовов между Windows 8.1 и Windows Phone 8.1 будут общими. Кроме того, язык разметки XAML также был унифицирован между платформами. Иными словами, новые приложения Windows Phone 8.1 будут использовать Windows XAML, а не Silverlight. Если вам нужна совместимость, для Windows Phone по-прежнему можно будет разрабатывать с использованием Silverlight, в т.ч. используя новые возможности, но это тема для отдельной статьи.
  • В Visual Studio 2013 Update 2 появится новый шаблон проекта для унифицированных приложений Windows. Этот шаблон создает различные проекты для Windows и Phone, и третий «разделяемый» проект, в котором размещается весь общий код. При этом разделяемый проект
    может содержать не только код, но и XAML-разметку, общие ресурсы, изображения и т.д. Этот проект не компилируется в отдельную библиотеку, а разделяется между двумя платформенными проектами на уровне текстового включения на этапе компиляции. Такой шаблон можно использовать для разработки на C#/XAML, C++/XAML или HTML/JS.
  • Если вы хотите выделить часть платформенно-независимого кода в отдельную библиотеку, разделяемую между несколькими приложениями, то по-прежнему можно использовать переносимую библиотеку, в которую теперь можно включать также и XAML-разметку . Переносимые библиотеки можно использовать для разработки на C# или Visual Basic.
  • Бинарной совместимости между платформами пока нет , т.е. приложения Windows 8 и Windows Phone по-прежнему будут распространяться через соответствующие магазины, и разработчику будет необходимо создать и загрузить в каждый из магазинов пакеты приложения (хотя теперь Windows Phone 8.1 будет использовать такой же формат.appx, что и Windows 8. Однако в магазинах Windows и Windows Phone будут использоваться единые идентификаторы приложений , что позволит реализовать сценарии единой покупки приложения для использования на всех платформах .
  • Приложения для Xbox One в текущей версии Visual Studio Update 2 не так хорошо вписываются в общую историю, хотя на пленарном докладе было показано универсальное приложение Khan Academy с использованием Kinect, работающее на Xbox и Windows (да, Kinect v2 будет поддерживаться в приложениях магазина Windows, но это опять же тема для отдельной статьи). Разработка для Xbox One на текущий момент предполагается на HTML/JS/CSS и C++
Таким образом, теперь появилась удобная возможность для разработчиков создавать приложения под платформы Windows и Windows Phone, которые содержат значительное количество общего кода, с возможностью кастомизировать дизайн под разные платформы для максимизации удовлетворенности пользоваталя!
Universal Hello World
Рассмотрим небольшой пример создания универсального приложения. Структура проектов в Visual Studio 2013 Update 2 была изменена, и теперь в разделе Магазин Window доступны как приложения для Windows и Windows Phone, так и универсальные приложения и библиотеки.

Вновь создаваемое универсальное приложение будет расчитано на платформу Windows Phone 8.1 и Windows 8.1 Update. При этом в разделе приложений Windows Phone доступны шаблоны проектов Windows Phone, основанные на Silverlight, которые позволят создавать приложения для ранних версий платформы - но возможности универсальных приложений при этом использовать нельзя.

После создания пустого универсального приложения, мы получим следующую структуру, состоящую из трех проектов: по одному проекту на каждую платформу и общий разделяемый проект:

Обратите внимание:

  • По умолчанию дизайн страничек (XAML) для платформ разнесен по разным проектам. Однако в простых случаях вы можете использовать общие XAML-файлы для всех платформ, если вы уверены, что ваш дизайн будет достаточно хорошо адаптироваться к разным разрешениям, от смартфона до десктопа. При этом многие встроенные элементы управления (например, GridView) умеют адаптироваться и изменять свой внешний вид в зависимости от платформы.
  • Если у вас есть уже готовый проект Windows или Windows Phone, вы можете создать на его основе универсальное приложение, выбрав в контекстном меню проекта соответствующий пункт. При этом проект будет преобразован в такую же трех-проектную структуру, и вы сможете переносить файлы приложения в общий проект для их совместного использования.
  • В разреляемый проект можно включать ссылки на библиотеки (References), при этом эти ссылки будут добавлены в оба проекта (мы видим, что в ссылках каждого из платформенных проектов присутствует Shared-ссылка). Если какие-то библиотеки доступны только для одной из платформ, то мы все равно можем использовать соответствующую функциональность в общем коде, окружая её директивами условной компиляции #ifdef. Visual Studio настолько удобна, что при этом будет работать Intellisense, предупреждая нас о том, что ссылка доступна только в одной из платформ.
  • Если мы выносим XAML-код в общий проект, то в редакторе XAML доступен drop-down для переключения платформы, и мы можем визуально редактировать дизайн страницы как в режиме телефона, так и в режиме планшета/десктопа.

В большинстве случаев вы захотите разделять как можно больше кода между платформами, перенеся все, что возможно, в проект shared. В нашем случае мы можем перенести MainPage.xaml из одного из проектов в разделяемый проект, и удалить его в платформенных проектах, поскольку в нашем случае дизайн странички не будет отличаться от платформы к платформе:

Hello, world!
Таким образом, мы получили универсальное приложение, код и дизайн которого полностью находятся в разделяемом проекте.

На пути к реальному приложению - Photo Viewer
Попробуем превратить наше приложение Hello World во что-то полезное - например, в просмотрщик лучших фотографий flickr. Flickr предоставляет RSS-поток фотографий, поэтому определить соответствующий источник данных сравнительно просто (для пущей простоты загрузка RSS сделана не-асинхронной, в реальных проектах так делать не надо):

Код для получения картинок из Flickr

public class Flickr { List list = new List(); public Flickr() { var xdoc = XDocument.Load("http://api.flickr.com/services/feeds/photos_public.gne"); XNamespace xn = "http://www.w3.org/2005/Atom"; var res = from z in xdoc.Descendants(xn + "entry") let l = (from x in z.Descendants(xn + "link") where x.Attribute("rel").Value == "enclosure" select x.Attribute("href").Value).FirstOrDefault() where (l!=null) && (l!="") select l; foreach (var x in res) { list.Add(new BitmapImage(new Uri(x))); } } public List Images { get { return list; } }


На основной страничке используем GridView, привязанный к этому источнику данных. Для того, чтобы на разных платформах фотографии были разного размера, используем ключ из ресурсного файла, определяющий требуемый размер фотографии.

XAML-дизайн основной страницы приложения



Чтобы задать разные параметры в ресурсном файле, создадим в каждом из платформенных проектов свой ресурсный файл Resource.xaml следующего содержания:
150

И в завершение нам надо подключить этот ресурсный файл в App.xaml (который находится в разделяемом проекте):

App.xaml



В результате мы получаем пару приложений для Windows 8 и Windows Phone, которые корректно отображают галерею изображений с учетом специфики платформы.

Полный исходный код приложения можно получить на github .

Мораль
Для создания новых приложений на платформе Windows 8 сейчас лучшим решением будет использовать универсальные приложения. Если у вас есть существующее приложение Windows 8, то его имеет смысл потихоньку конвертировать в универсальное приложение и портировать на Windows Phone 8.1. Существующее приложения Windows Phone 8 преобразовать в универсальное приложение сложнее (т.к. для ряда операций используются другие наборы API), об этом мы еще с вами поговорим. Наконец, универсальные приложения для Windows Phone требуют версии Windows Phone 8.1, поэтому на текущий момент, чтобы иметь достаточно широкую install base, имеет смысл использовать приложения Silvelight 8.0

Windows 10 стала единственной программной платформой Microsoft, управляющей различными устройствами: от микроконтроллеров и до больших серверных систем. Только вдумайся: одно ядро для ПК, для миниатюрных девайсов (Internet of Things), консоли (Xbox One), моноблока (Surface Hub), устройств дополненной реальности HoloLens! Между ядром и прикладными программами расположена система выполнения UWP. Она служит подсистемой, которая предоставляет приложениям аппаратную функциональность, управляемую ядром посредством драйверов устройств. Программистам, соответственно, предложены высокоуровневые средства для взаимодействия с системой. В этой статье мы в деталях разберемся в платформе UWP и в ее возможностях управления компьютером.

Коротко о главных фичах UWP

Universal Windows Platform включает все те передовые возможности и сервисы, которые зарекомендовали себя еще в Metro и Windows RunTime. Это живые плитки , информация на экране блокировки , соответствующая текущему времени и зоне пребывания устройства, всплывающие уведомления , в необходимый момент напоминающие пользователю о разного рода событиях в системе, Action Center , позволяющий настраивать всплывающие уведомления и другой контент, с которым юзеру надо взаимодействовать; выполнение приложения в фоновом потоке , откуда его можно всегда вызвать или восстановить посредством триггеров, происходящих при определенных условиях, удобных пользователю. Твое приложение может взаимодействовать с другими процессами посредством контрактов ; приложение может взаимодействовать также со всем окружающим миром: им можно управлять голосовыми командами, оно может общаться с другими устройствами по Bluetooth и многое другое.

Взаимодействие с аппаратными платформами

Помимо хороших новостей, с которыми я познакомил тебя во введении, есть одна плохая. На самом деле она скорее средняя:). Дело в том, что приложения для UWP не «унаследованные», их придется писать с нуля. То есть ради благого дела исполнения одного бинарника на всех устройствах придется поднапрячься. Кстати, когда я говорю про «один бинарник», я немного лукавлю. Когда разработчик заливает свое приложение в общий для всех платформ Store, находящийся в облаке компилятор.NET Native (подробнее см. в предыдущей статье) компилирует приложение под все поддерживаемые Windows 10 микропроцессоры.

Между аппаратными платформами приложение сохраняет не только общий функциональный код, но и общий пользовательский интерфейс. Однако различные устройства предлагают наличие определенных хардварных расширений: у смартфона по сравнению с PC это акселерометр, Touch-screen (есть на PC, но далеко не на всех), GPS, компас, аппаратная кнопка BACK и прочее. В то же время у смартфона отсутствует жесткий диск, CD/DVD/Blue-ray. С такими аппаратными возможностями позволяют работать специально заточенные под определенный вид девайса расширения - SKU: Desktop SKU, Mobile SKU, IoT SKU, Xbox SKU и так далее.

Если абстрактно представить устройство операционной системы Windows 10, то мы увидим расширения SKU под ядром, которые и являются ядерными компонентами. Отсюда следует, что эти расширения подобны драйверам устройств . С другой стороны над ядром находится Universal Windows Platform - универсальная платформа для выполнения специальных приложений.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

4.4 (88.55%) 159 votes


Новый Lite Browser это бесплатный веб-браузер для быстрого доступа к сети Интернет с минимальным потреблением ресурсов компьютера. Несмотря на скромный размер (220 кб) имеет динамические вкладки, ведет историю, умеет получать исходный код страницы, а также сворачивается в трей. Легкий браузер Lite жертвует некоторыми функциями основного веб-браузера, чтобы уменьшить потребление системных ресурсов и, в частности, свести к минимуму объем памяти.

При работе Lite Browser на русском используется общий механизм компоновки и поддерживается уникальное сочетание функций обеспечивающий малую нагрузку на компьютер. На панели инструментов имеются кнопки переходов на главную страницу, следующую и предыдущую. Также тут находится кнопка поиска и настроек.

Веб-браузер Lite имеет полностью русифицированный интерфейс и способ установки в онлайн режиме. Браузер основан на Chrome.
Приложение LiteBrowser - это первая альтернатива устройств Windows и она уникальна тем, что предлагает - полнофункциональный браузер, похожий на рабочий стол, в вашем кармане. Быстрый, безопасный, настольный просмотр веб-страниц, возможность потокового видео, поддержка XML, ATOM и RDF форматов. Быстрая загрузка веб-страниц с большим количеством изображений и графикой. Максимально сокращен расход ресурсов благодаря уникальной технологии сжатия и кеширования. Про это приложение можно сказать в полном смысле этого слова, что это браузер нового поколения является самым быстрым при минимальной нагрузке на компьютер.

Основные возможности программы Lite Browser 2018 года:
  • Работает на всех основных платформах: Windows
  • Быстрый доступ к любимым сайтам
  • Удобные ярлыки популярных сайтов на рабочем столе
  • Доступ к тысячам видеороликов, сериалов и телешоу
Достоинства Windows Lite Browser:
  • Режим трансляции веб-содержимого
  • Русскоязычный интерфейс браузера
  • Возможность установки дополнений
  • Диспетчер задач
  • Встроенные инструменты разработчика
Изменения последней версии Lite Browser 58.3.3029.49:

Улучшено:

  1. быстродействие браузера;
  2. оптимизация памяти;
  3. безопасность;

Обновлено:

  1. переводы;

Исправлено:

  1. мелкие ошибки
Помните:

Дистрибутивы браузера Lite проверены известными антивирусными программами и считаются безопасными.

Думаем что на вопрос который может возникнуть у пользователей «Lite Browser что это?» мы ответили и ответ на вопрос «Скачать или удалить Lite Browser?» очевиден - скачать и пользоваться новым браузером!

Компания Microsoft была пионером во многих индустриях. Стоит отметить, что понятие "смартфон" и "коммуникатор" также пришло к нам от детища Билла Гейтса. Революция началась в далеком 1990 году. И началась она не с iPhone (какого даже в помине близко не было). В этой статье мы пройдемся по всех версиях мобильных платформ от Microsoft. Успешные или провальные? От Windows CE до . От Casio Cassiopeia до Nokia Lumia 1520.

Впервые Microsoft обратила внимание на мобильный рынок в 1990 году. Именно тогда Билл Гейтс захотел расширить возможности своей компании и создать компьютер, который будет помещаться в карман ваших брюк. Спустя два года, в 1992 году, началась разработка первой мобильной ОС от Microsoft - Windows CE. Работа продвигалась крайне медленно и сложно. Первая версия Windows CE появилась на свет в 1996 году под версией 1.0. Фактически, это была сильно урезанная версия Windows 95, но на другом ядре. Что-то на подобии Windows RT. Интересно, что первая версия Windows CE была оптимизирована для устройств с 32 Кб оперативной памяти...

До сегодняшнего дня, Windows CE (сейчас Windows Embedded) активно развивается и продвигается отдельным от смартфонов путем. Но именно с Windows CE началась история портативных коммуникаторов, сейчас известных как смартфонов.

Windows CE послужила отличным основанием для новой операционной системы мобильных устройств - Pocket PC. Эта платформа представляет самую настоящую классику от Microsoft и, стоит отметить, в мире еще много устройств, на корпусах которых горят огнем два слова - Pocket PC.

Как платформа, Pocket PC канула в небытие в 2003 году, когда вышла первая Windows Mobile 2003. Но Microsoft полюбила название "Pocket PC" и использовали его как бренд в Windows Mobile устройствах. Окончательно о Pocket PC забыли в 2007 году с выходом Windows Mobile 6.

Начало нового поколения мобильных компьютеров от Microsoft. В системе появились приложения как развлекательного характера (графический редактор, Windows Media Player), так и для профессиональной работы. Существенно доработан IE, в котором появилась поддержка JavaScript и более оптимизирован под "тяжелые" страницы. Система также обзавелась поддержкой беспроводных стандартов Bluetooth, Wi-Fi, IPSec/L2TP, IPv6.

WM2003 выходила в четырех редакциях - Premium для топовых устройств, Professional с более урезанным набором приложений для более доступных устройств, версия Pocket PC Phone Edition (в ней была функция ответа на звонок путем отправки смс) и Windows Mobile 2003 for Smartphone. В этой же WM2003 появилась первая игра Jawbreaker.

Это не отдельная версия операционной системы, а обновление, которое было ориентировано на улучшение работы системы и оптимизацию под новые виды устройств. К примеру, WM2003SE получила поддержку экранов 640х480, функцию изменения ориентации экрана и систему защиты WiFi-сетей.

Вышла 10 мая 2005 года. Совершенно новый уровень Windows Mobile. Система получила ряд новых, нигде не выданных ранее возможностей. Интерфейс пользователя был оптимизирован для более удобной работы с джойстиком. Смартфоном стало легко управлять одной рукой, а также появилась QWERTY-клавиатура. В этой версии Windows Mobile 5 начинает постепенно уходить слово Pocket. К примеру, офисный пакет был переименован с Pocket Office в Office Mobile.

В офисный пакет вошло новое приложение - PowerPoint Mobile. Все офисные приложения теперь работают с полнофункциональными классическими файлами из десктопной версии Office, а от Pocket-формата отказались. Коммуникаторы на Windows Mobile 5 умели работать в 3G-сетях, поддерживали USB 2.0, Active Sync 4.0 и имели встроенный Windows Media Player 10.

Система была представлена 12 февраля 2007 года в Барселоне. Именно на этой операционной системе работал первый сенсорный смартфон, который распознавал нажатия пальцем, а не пером. Назывался он HTC Touch. Windows Mobile 6 могла похвастать системой шифрования карт-памяти, системными звуками, а также системой Windows Update для обновления системы в автоматическом режиме. Присутствовала также тесная интеграция с Live-сервисами.

Впервые за историю Windows Mobile, в ОС появился Marketplace для разработчиков и построения приложений ими. Офисный пакет был дополнен Office Exchange и One Note. Именно в Windows Mobile появилась поддержка разрешения экрана 800х480, которое используется в текущих Windows Phone.

Шел 2008 год. Microsoft выпускает небольшое обновление системы Windows Mobile 6.1. Оно принесло Internet Explorer новые функции - масштаб и обзор страницы. Файлы на устройстве могли быть зашифрованы и появился диспетчер задач. Смс-переписки обрели новый вид. В редакции Windows Mobile 6.1 для смартфонов появилась возможность изменять пользовательский интерфейс на фирменный "карусельный".

Последняя ОС под названием Windows Mobile. Система была анонсирована на Mobile World Congress в Барселоне в 2009 году. Интерфейс был значительно переработан. Экран блокировки отображал небольшую информацию о событиях в системе. Элементы на экране "Сегодня" были полностью переработаны под управление пальцами.

Internet Explorer обновился до шестой версии, а пользователям стал доступен Windows Marketplace for Mobile, откуда можно было скачать приложения для своего устройства.Обновление Windows Mobile 6.5.3 принесло поддержку емкостных экранов, мультитач и оптимизацию интерфейса под новые типы сенсоров.

Переворот мобильной операционной системы от Microsoft. В момент выпуска Windows Mobile 6.5, корпорация Microsoft осознала, что битва за мобильный рынок частично проиграна. Конкуренты Apple и Google начали стремительно завоевывать рынок, а позиции WM падали. Надо было срочно что-нибудь менять и Microsoft решили создать все заново, выпустив принципиально новый продукт, известный сейчас как Windows Phone. Windows Phone 7 была анонсирована на MWC.

Большим минусом Windows Phone 7 являлось отсутствие возможность обновления с Windows Mobile 6.5.3 и это не удивительно, ведь все было начато заново. Система получила радикально другой, нигде не виданный ранее интерфейс, полноценный магазин приложений, закрытую ФС, новый IE, новый Office, синхронизацию с Zune и интеграцию с Xbox.

Ровно через год вышло крупное обновление Windows Phone 7.5 Mango. Более 500 изменений и нововведений существенно ускорили и улучшили работу системы. Появился русский язык, русская клавиатура и поддержка работы с фронтальной камерой. Еще через год, в том же феврале, вышла Windows Phone 7.5 Tango, которая сделала возможным выпуск бюджетных устройств с 800Мгц процессором и 256Мб оперативной памяти. Таким устройством стала Nokia Lumia 610.

В конце 2012 года, корпорация Microsoft объявила о выходе Windows Phone 7.8 - следующем обновлении для Windows Phone 7.5. Обновление было создано с целью продлить жизненный цикл Windows Phone 7-устройств, так как до Windows Phone 8 они не смогли обновиться.

7.8 расширило графический интерфейс, принесло три размера плиток, новые акцентные темы оформления, а также динамические обои Bing. Для пользователей Nokia, с установкой Windows Phone 7.8 стали доступны приложения, расширяющие функционал системы - установка рингтонов на борту экрана и передача файлов по Bluetooth.

Windows Phone 8

Совершенно новое ядро Windows Phone 8 обрекло пользователей Windows Phone 7 на отсутствие возможности обновиться до последней версии ОС и установки приложений, которые созданы исключительно для Windows Phone 8. По сравнению с Windows Phone 7, восьмая версия стала значительно лучше. В системе появились функция "Детская", передача по Bluetooth, поддержка FullHD (GDR3-обновление) и 720p-экранов, многоядерных процессоров, 2Гб оперативной памяти, NFC-чипов, тесную интеграцию с SkyDrive, новый IE10, блокировку ориентации экрана, режим "В автомобиле" и много других обновлений. Существенным нововведением является наличие функции обновления "по воздуху" и отсутствие необходимости в дополнительном ПО для синхронизации. Пользователи Zune были крайне не довольны приложением. На данный момент Windows Phone 8 GDR3 является актуальной версией ОС.

Windows Phone 8.1

Версия операционной системы, которая находится в стадии разработки и должна быть анонсирована в начале 2014 года. Согласно слухам, в ней появится центр уведомлений, а также слияние с Windows RT.

О руководстве

С помощью этого учебного пособия вы научитесь программированию с использованием инструментария wxWidgets. В конце каждой главы вы найдёте ссылки на остальные материалы руководства.

wxWidgets

wxWidgets это набор инструментов для создания графического пользовательского интерфейса (GUI) в C++ приложениях. Это кросс-платформенный инструментарий с открытым исходным кодом. wxWidgets приложения работают на всех основных платформах: Windows, Unix and Mac. Проект был основан Юлианом Смартом (Julian Smart) в 1992 году. Это больше чем просто набор инструментов. Он предоставляет большое разнообразие классов для работы с потоками, базами данных, командными последовательностями, интерактивной помощью и настройками приложения. wxWidgets содержит большую группу виджетов. Познакомиться с сообществом wxWidgets можно на сайте http://www.wxwidgets.org/ .

Язык программирования C++

C++ один из наиболее широко используемых языков программирования на этой планете. На нем написано большинство известных программных пакетов таких как MS Office, Macromedia Flash, Firefox, Photoshop и 3D Max. C++ доминирует в мире игр для PC. Это один из самых сложных языков программирования. С другой стороны, программирование на C++ в 2007 году отличается от программирования в 1997. Многое стало проще в наши дни.

Индекс сообщества программистов TIOBE отображает примерную долю использования языков программирования (информация ниже по состоянию на 2010 год - прим. Sl-Alex). Java рулит. C++ свергнут с престола. Но C++ служит их основой и в ближайшие десятилетия для него нет серьёзных угроз. Мы можем ясно видеть специализацию среди языков программирования. Java в основном используется в корпоративных проектах и портируемых программах, C - король в системном программировании (ОС, драйверы устройств, небольшие программы), PHP прочно закрепился на небольших и средних веб-сайтах, Javascript используется для реализации клиентской части веб-приложения.

C/C++ наиболее часто используемые языки для создания классических ГУИ (Графический Пользовательский Интерфейс (GUI)) приложений для настольных систем. Вот прекрасная , поясняющая почему Java не уничтожит C++ в ближайшие годы.

Мультиплатформенное программирование

Сегодня, мультиплатформенное программирование - это модное слово. Многие языки и библиотеки хотят стать мультиплатформенными. wxWidgets изначально создавался как мультиплатфоменный инструмент. Большинство разработчиков выбирают такие возможности. Если это возможно, используют web. Или же выбирают между Qt, wxWidgets, Swing или SWT. Так же существует такая вещь как FLTK, но он не так популярен и это не лучший выбор. В моей стране есть большая железнодорожная компания. Эта компания использует ПО написанное на Java и Swing. Этот выбор обусловлен тем, что дешевле купить новое оборудование и написать ПО на Java. Используя Java, скорость разработки возрастает и количество багов уменьшается. Конечно, такой выбор правильный. Но когда мы пишем текстовый редактор на Java мы не можем сказать нашим заказчикам, эй ребята, вам нужно будет докупить ещё 1 Гб памяти. В такой ситуации Java нам мало чем может помочь. Что касается Qt, то эта библиотека главный конкурент wxWidgets. Поэтому для каждой задачи нужно использовать правильный инструмент - это самое важное решение любого программиста и менеджера.