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

Выбор языка программирования

Сразу скажу, что сам я этих правил не придерживаюсь по двум причинам:

  • Уже поздно. Свой родной язык я выбрал случайно, когда понятия не имел о программировании. И, поскольку он и сейчас полностью подходит для решения моих задач, то менять его смысла нет. И этот язык - Паскаль (разумеется, современные его реализации).
  • Практически все современные средства разработки соответствуют приведённым ниже требованиям, поэтому и обращать особое внимание на них также не стоит.

Так зачем же я тогда об этом пишу?

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

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

Также скажу, что эта статья написана на основе одной не самой новой книги о Фортране, поэтому какие-то термины могут показаться слегка устаревшими.

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

  • Текстовый редактор. Ну это понятно. Где-то же вам надо писать код. Хотя раньше всё было веселее. Компиляторы поставлялись в виде отдельной программы и запускались из командной строки. А писать код приходилось в редакторах от сторонних разработчиков. Правда, это было давно.
  • Компилятор. Специальная программа, которая преобразует исходный текст вашей программы в объектный модуль, который содержит команды в машинном коде для определённого процессора. Иногда исходные тексты сначала преобразуются в команды языка ассемблера, а уж потом в объектные файлы.
  • Интерпретатор. Компилятор собирает исходные коды в исполняемый файл, то есть создаёт из них программу, которую вы потом можете запустить на компьютере без помощи каких-либо других программ. Интерпретатор же выполняет программу “на лету”, то есть исполняемый файл не создаётся, а просто инструкции исходного кода выполняются и выдают результат. Обычно среда разработки имеет или компилятор, или интерпретатор. Чтобы было и то и другое - такого не бывает (во всяком случае я об этом не знаю).
  • Библиотекарь. Экзотический для меня инструмент. Но раз это упоминается, значит это кому-нибудь нужно. Библиотекарь поддерживает работу с ранее полученными объектными файлами (добавление, удаление, обновление). Видимо, это всё работает в фоновом режиме и большинству разработчиков (включая меня) об это мало что известно.
  • Компоновщик (он же редактор связей или линкер). Собирает вместе объектные файлы отдельных частей программы и системные подпрограммы, разрешает внешние ссылки между ними и формирует исполняемый файл. Компоновщик может быть объединён с компилятором, но часто это разные программы.
  • Загрузчик. Копирует исполняемый файл в оперативную память и подготавливает компьютер для выполнения программы.
  • Отладчик. Даёт возможность управлять выполнением программы на уровне отдельных операторов (инструкций), что позволяет выполнять программу в пошаговом режиме. Это облегчает в сложных случаях поиск ошибок в программе.
  • Профилировщик. Измеряет, сколько времени затрачивается на выполнение каждой части программы. Затем программист может улучшить (оптимизировать) те части программы, которые критичны к времени выполнения.
  • Среда тестирования. Автоматизирует процесс тестирования программы, создавая и выполняя тесты, а затем анализируя результаты тестирования. К таковым могут относиться, например, средства моделирования среды (воздушное движение, орбитальный полёт, гидравлические процессы). Это достаточно специализированная штука, в обычных средствах разработки отсутствует.
  • Средства конфигурирования. Автоматизируют создание программ и прослеживают изменения до уровня исходных файлов. Обновляют объектные файлы, для которых изменились исходные коды. Сюда же можно отнести средства контроля версий.

Ну вот так всё непросто в мире программирования. Погрузитесь в этот мир - подпишитесь на канал, чтобы ничего не пропустить…

Рекомендуем почитать