Классы программного обеспечения

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

Настольное приложение (desktop application)

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

Для создания настольных приложений можно использовать такие технологии:

  • C/C++, Delphi, C++ Builder, etc.
  • Java, .NET/WPF
  • Adobe AIR

Веб-приложение (web application)

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

Примеры веб приложения - это любой веб-сайт. В зависимости от сложности, сайт может представлять собой как простой набор статических HTML файлов, так и программный продукт, например Drupal, "ВКонтакте", или Wordpress, серверная часть которых состоит из тысяч строк программного кода. Социальные сети, чаты - это всё веб-приложения.

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

На сервере

  • PHP, Perl
  • SQL / MySQL
  • Java, .NET
  • Ruby
  • С/C++ (для особых случаев)

На клиенте

  • HTML
  • JavaScript
  • Adobe Flash
  • Microsoft Silverlight, WPF
  • Java (applet, JavaFX)

Мобильные приложения

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

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

  • J2ME
  • .NET Compact Framework,
  • Android SDK
  • iPhone SDK
  • С/C++

... и так далее

Разумеется, такое деление на "классы" ни в коей мере не является исчерпывающим. Существуют различные комбинации одного-другого-третьего, программы на Brainfuck и многое другое.

Раздел: