Найти в Дзене
Пишем Код

Как и куда писать код? Текстовые редакторы

Когда приходит мысль попробовать себя в программировании и написать свои первые строки кода, возникает естественный вопрос: что вообще из себя представляет программный код и куда его писать?
Оглавление

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

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

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

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

И никого не удивляет, что текст на естественном языке можно набирать на компьютере. Однако тут есть над чем задуматься. Компьютер – это устройство цифровое, по сути своей калькулятор. А значит и все данные тем или иным образом сводятся к числам. Но как можно в численном виде представить текст?

Текст обычный и необычный

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

Кодировка латиницы в ASCII
Кодировка латиницы в ASCII

Таких кодировок существует много, и иногда несовместимости между ними приводят к тому, что вместо текста пользователь получает такого вида арт-объект: "я┌п╟п╨я┐я▌ п╡п╬я┌ я┤я┐я┬я▄". Находятся даже люди, которые умеют это понять.

Сейчас такие ошибки уходят в прошлое, поскольку повсеместно находит применение кодировка UTF-8, остальные же встречаются все реже.

В такой модели представления текста, слова и предложения считаются последовательностями знаков. Например, фраза "Привет, мир!" кодируется как 1055 1088 1080 1074 1077 1090 44 32 1084 1080 1088 33. Числовые коды назначаются не только буквам, но и цифрам, знакам препинания, пробельным символам, и так далее.

А вот структурирование и форматирование текста – это история отдельная. Заголовки и подзаголовки, нумерованные и маркированные списки, полужирное и курсивное начертание, сноски и отступы, таблицы и схемы... как оцифровать все эти важные элементы текста кодировка UTF-8 не предписывает (да и иные кодировки тоже).

И здесь уж кто во что горазд. Microsoft Word, Google Docs, LibreOffice Writer, Apple Pages, и прочие подобные приложения, как правило имеют собственный файловый формат, будь то .docx, .rtf, .odt, или что-то еще.

Поэтому выделяют две категории текстовых форматов:

  • Текст обычный (plain text) – последовательность знаков в некоторой кодировке (например, UTF-8).
  • Текст обогащенный (rich text) – текст с дополнительными элементами форматирования, представление которых кодировкой не предписывается.

Так вот, программный код принято представлять именно в виде обычного текста, и для него существуют специальные текстовые редакторы. К таковым относятся Emacs, Vim, GEdit, Kate, Visual Studio Code, Sublime Text, но это список далеко не исчерпывающий.

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

Конечно, никто вас не остановит от написания кода в Microsoft Word, но запустить его потом не выйдет – только распечатать и повесить в рамочку. Это связано с тем, что другие инструменты разработчика, такие как компиляторы и интерпретаторы, тоже заточены на работу с текстом обычным, а не обогащенным.

Компьютер, пойми меня правильно

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

Программный код должен быть написан не на естественном языке, а на том или ином языке программирования, например на JavaScript, C++, Haskell.

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

mapM_ print [1..42]

Эта программа инструктирует компьютер перебрать и напечатать все числа от 1 до 42.

А вот аналогичный код на языке JavaScript:

for (let i = 1; i <= 42; i++)
console.log(i);

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

Код с подсветкой
Код с подсветкой

Здесь мы наблюдаем различные приемы оформления, такие как выделение цветом, курсивным начертанием, и даже замену последовательности знаков <= на лигатуру . При работе с большим объемом кода это упрощает его восприятие.

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

Код с альтернативной подсветкой
Код с альтернативной подсветкой

Такие нюансы каждый программист подбирает на свое усмотрение, настраивая свой текстовый редактор. Именно в текстовом редакторе обычно работают с кодом.

Сохраненный файл будет в обоих случаях содержать в себе лишь числовые коды символов. Например, слово "for" в соответствии с UTF-8 кодируется как 102 111 114, а оранжевое оно или фиолетовое записано не будет.

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

Теперь перейдем к практике: как редактор выбрать, установить, и уже начать писать наконец-то код.

Выходила на берег Катюша

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

Как это часто бывает, инструмент подходящий для профессионала не всегда хорошо подходит для начинающего. При желании можно совершить героическое усилие и освоить какой-нибудь там Emacs или Vim, но если хочется поменьше отвлекаться на это все и просто писать код, то начинать лучше с чего-то попроще.

А потому, дамы, господа, и их домашние животные, я предлагаю вашему вниманию Kate. Устанавливаем в зависимости от операционной системы удобным способом:

Варианты установки Kate
Варианты установки Kate

В случае, если этот шаг вызывает затруднения, предлагаю обсудить в комментариях ↓

При запуске, видим такое вот окно:

Новый файл в Kate
Новый файл в Kate

Внизу видим, что кодировка UTF-8, это хорошо. Начинаем писать код! Для примера я наверстаю небольшую страницу на HTML и CSS:

Редактирование в Kate без подсветки
Редактирование в Kate без подсветки

Путем незамысловатого сочетания клавиш Ctrl+S (или ⌘S на macOS) сохраняем файл. В данном случае формат документа .html, что отражается просто в названии файла:

Окно сохранения
Окно сохранения

Сразу после этого редактор догадывается, как подсветить:

Редактирование в Kate с подсветкой
Редактирование в Kate с подсветкой

Остается только полюбоваться результатом в браузере:

Страница в браузере
Страница в браузере

Ухх, дизайн.