В серии: Библиотека alt м. В. Сысоева, И. В. Сысоев


Download 0.87 Mb.
bet10/40
Sana23.04.2023
Hajmi0.87 Mb.
#1387407
TuriКнига
1   ...   6   7   8   9   10   11   12   13   ...   40
Bog'liq
Боши Лекция Парадигма и методы программирование

1.4. Области программирования


главным образом, по сети. По запросам необходимо производить некоторые вычисления и/или поиск в базах данных. На первом месте в таких задачах стоит надёжность: сбой работы над одним из запросов не должен приводить к краху исполнения всех остальных или полной остановке сервера. На втором месте — производительность, в том числе способность, не снижая существенно производительности на 1 поток, обрабатывать одновременно много потоков с использованием нескольких вычислительных ядер или даже нескольких физически разнесённых ЭВМ (это свойство называется масштабируемостью). Основные языки здесь: Java, C#, Erlang, то есть языки, использующие виртуальные машины и имеющие достаточно высокие возможности абстрагирования (ООП), что позволяет локализовать многие ошибки времени исполнения. Реже используется C++, поскольку, несмотря на высокую производительность и широкие возможности, программы на C++ часто приводят к некорректной работе с памятью. В последнее время популярны Scala и Go в качестве замены Java, поскольку Scala позволяет писать более лаконичный и сложный код частично в функциональном стиле, а Go прост, поддерживает очень эффективную модель многопоточных вычислений и эффективно компилируется в машинный код.

  1. Программы для работы с базами данных

Эта область частично пересекается с предыдущей, но затрагивает также клиентские программы, где требования к скорости и надёжности работы не такие жёсткие. Программы в этой области, как правило, сочетают в себе две части. На одном языке написана высокоуровневая обёртка, с которою взаимодействует пользователь. Для её написания часто используются 1С, C#, Delphi, а также многие интерпретируемые языки, в первую очередь Python и Ruby. Вторая часть отвечает за непосредственное взаимодействие с базою данных и написана на одном из диалектов языка запросов SQL.

  1. Системное администрирование

Задача системного администратора — автоматизация основных работ по обслуживанию серверов. Это резервное копирование данных, установка обновлений, а также новых программ и библиотек, восстановление после сбоя, синхронизация разных серверов в кластере, запуск различных задач разных пользователей и их распределение по отдельным процессорным ядрам. Персональному компьютеру системный администратор почти не нужен, все основные действия по поддержанию компьютера в работоспособном состоянии производит сам пользователь. Долгое время основным языком системных администраторов был shell script, но в настоящее время языки общего применения, в первую очередь Python, также стали активно применяться, поскольку позволяют, владея на высоком уровне одним языком, совмещать работу системного администратора с работою, например, веб-программиста или программиста баз данных.

  1. Написание графических интерфейсов пользователя

В этой области очень большое распространение получила парадигма ООП и парадигма визуального программирования. Пишут на многих языках, как компилируемых: C++, Object Pascal, Vala, так и интерпретируемых: Python, Tcl, Ruby. Java и C# также иногда используются в данной области.

  1. Веб-программирование

Написание программ, работающих в браузере, начиная от простых сайтов и заканчивая сложными компьютерными играми, имеет определённую специфику. В настоящее время здесь используются все основные скриптовые языки: PHP, Python, Ruby (на платформе Rails). Наибольшую популярность имеет JavaScript, поскольку его виртуальная машина хорошо оптимизирована по производительности и потреблению памяти во всех популярных браузерах.

  1. Компьютерные игры

Уже долгое время индустрия компьютерных игр является локомотивом развития как аппаратных средств: центральных процессоров и особенно видеокарт, так и концепций и языков программирования. Первоначально игры писались на системных языках и мало отличались от прочих программ, но впоследствии именно в игростроении наибольшее распространение получила концепция объектно-ориентированного программирования. В настоящее время только самые критичные для производительности части пишутся на высокопроизводительных языках вроде C++, большая же часть программной логики и управляющих скриптов, графический интерфейс пользователя, и даже многие базовые части пишут на интерпретируемых языках, самым популярным из которых здесь является Python. Основная причина этого — необходимость соблюдать сроки: времени на разработку игр нужно много, но самая лучшая и надёжная игра потерпит фиаско на рынке, если опоздает даже на 2–3 года.

  1. Научное программирование

Учёные долгое время были одними из основных потребителей ЭВМ. Для них был создан первый компилируемый язык — Fortran, который и в настоящее время используется в случае, когда производительность программ имеет ключевое значение. Однако возможности современных компьютеров оказались столь велики, что избыточны для решения большинства задач с точки зрения производительности и объёма памяти. В результате наибольшее признание в последние 20 лет получили языки интерпретируемого типа, глубоко интегрированные со средствами разработки, библиотеками алгоритмов и средствами построения графиков. Такие интегрированные системы условно называют «пакетами». Наиболее известными примерами таких систем являются коммерческие MATLAB, Mathematica, Stasistica, а также бесплатные/свободные R, SciLab, GNU Octave. Единственный язык общего назначения, в настоящее время не только сохранивший свою привле-

Download 0.87 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   40




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling