Классы программного обеспечения
Всё программное обеспечение можно условно разделить на классы. Например, по выполняемым функциям: графические редакторы, бухгалтерские программы, и так далее. Но сейчас пойдёт речь не о такой классификации, а о разделении программ по признаку, где эта программа должна выполняться: дома на вашем компьютере, или на сервере в Интернет.
Настольное приложение (desktop application)
Работает на пользовательском компьютере, причём такому приложению для работы обычно не нужен доступ в сеть. Примером такого приложения может служить любой текстовый или графический редактор, многие игры.
Для создания настольных приложений можно использовать такие технологии:
- C/C++, Delphi, C++ Builder, etc.
- Java, .NET/WPF
- Adobe AIR
Веб-приложение (web application)
Веб приложение состоит как минимум из двух частей: одна часть (серверная) работает на сервере в Сети, а другая (клиентская) - на компьютере пользователя, в браузере. В браузере отображается графический интерфейс приложения: кнопки, картинки, и так далее, а сервер занимается обработкой запросов клиентской части.
Примеры веб приложения - это любой веб-сайт. В зависимости от сложности, сайт может представлять собой как простой набор статических HTML файлов, так и программный продукт, например Drupal, "ВКонтакте", или Wordpress, серверная часть которых состоит из тысяч строк программного кода. Социальные сети, чаты - это всё веб-приложения.
Поскольку у клиентской и серверной частей веб-приложения совершенно разные задачи и возможности, на них используются различные технологии:
На сервере
| На клиенте
|
Мобильные приложения
Мобильными обычно называют те приложения, которые работают на сотовых телефонах и коммуникаторах. К ним относятся приложения для iPhone и Android. В таких устройствах, как правило, связь с Интернет всегда имеется, поэтому многие мобильные приложения являются клиентской частью для некоторого веб-приложения.
Для разработки мобильных приложений, в зависимости от устройства, на котором будет работать это приложение, используются такие технологии:
- J2ME
- .NET Compact Framework,
- Android SDK
- iPhone SDK
- С/C++
... и так далее
Разумеется, такое деление на "классы" ни в коей мере не является исчерпывающим. Существуют различные комбинации одного-другого-третьего, программы на Brainfuck и многое другое.