Но всё это лирика, а дьявол, как водится, кроется в деталях. Нюанс был в том, что каждая технологически развитая держава в этом мире имела свой язык программирования. В Российской империи это был русский, в Африке — один из основных диалектов рода Тафари, и наконец в Китае — ханьский китайский. Так как по историческим причинам Англия здесь не являлась страной-колонизатором (а США вообще не существовало), то и английский язык на Земле-2 был не так сильно распространен, как в моём мире, соответственно и языки программирования не ориентировались на него. Так что придётся заново штудировать программирование, только уже на русском языке. Надеюсь, этот процесс не займёт много времени, ведь логика компьютеров, созданных людьми, всегда остаётся неизменной. Различается только синтаксис.
Как я и ожидал, в русском сегменте программирования особого выбора не имелось. Существовал лишь один более или менее функционирующий язык программирования, и назывался он благородно и по-нашему — «Богатырь». Купив диск с инсталляцией языка и среды разработки, созданной под него, я вернулся домой и сразу же вставил радужный пластиковый кружок в привод своего компьютера и начал установку. К сожалению, Мишин динозавр не отличался особой ретивостью, отрабатывал процессы довольно медленно, хоть я и предварительно почистил его от системного хлама. Но в итоге всё равно понадобилось чуть больше получаса, прежде чем программа установилась.
Ну что ж, начнём!
Открыв среду разработки, и начав изучать сопутствующую документацию по программированию, которая прилагалась к диску, я с удовлетворением узнал, что оказался прав. Ничего непонятного или кардинально нового мне не встретилось. Спасибо единой во всех мирах человеческой логике и здравому смыслу!
Итак, как вообще устроены программный код и программы? По сути, с помощью языка программирования мы даём компьютеру команды, то есть список действий, который ему нужно выполнить. И тут стоит помнить, что компьютер выполняет в точности то, что ему задали. Он не способен мыслить или понимать условности. Из-за этого при программировании даже у самого опытного программиста могут и должны возникать ошибки — это просто человеческий фактор. Где-то в коде была забыта точка с запятой, или создана переменная не того типа, что ожидаемо приводит к тому, что программа выдаёт ошибку. Логично, чтобы всё работало, как часы, необходимо написать идеальный и выверенный код.
Вернёмся к Богатырю. В языках программирования моего мира фигурировали операторы «if» и «while». В переводе это звучит как — «если» и «пока». Первый оператор даёт возможность выполнять действие в том случае, ЕСЛИ записанные условия соблюдаются, а второй создаёт цикл, который повторяется снова и снова, до тех пор, ПОКА записанное условие соблюдается. В русском языке программирования были те же самые операторы, только написанные на нашем родном языке, соответственно — оператор «если» и оператор «пока». И такая логика соблюдалась практически во всём — английские наименования заменялись русскими словами.
Увы, на этом плюсы русскоязычного софта заканчивались. Первые трудности наступили после того, как я углубился в более детальное изучение Богатыря. И проблема заключалась в том, что русский язык программирования был крайне низкоуровневым.
Что вообще такое уровень языка? Изначально компьютер понимает только две команды: когда есть напряжение, и когда его нет. В первом случае для компьютера это единица, во втором ноль. Но как тогда компьютер понимает, что делать с программным кодом, где имеются совершенно разные и сложные команды? Изначально программы создавались именно с помощью чередования единиц и нулей. Такие программы записывались на перфокарты, которые, по своей сути являлись бумажными лентами с отверстиями. Если есть отверстие, значит единица, нет — значит ноль. Понятно, что на том техническом уровне это было неудобно и долго.
И тогда появился первый аналог современного языка программирования. В нем единицы и нули в определенной последовательности были отождествлены различным командам. То есть, например, мы пишем букву «П» (Падший), а язык программирования переводит её на понятный компьютеру набор единиц и нулей.
В процессе программирования люди повторяли одну и ту же последовательность действий. Например, вывести строчку на экран. Это был некий готовый набор команд, который программист должен был повторять каждый раз, когда нужно было распечатать строку. Именно тогда программистам пришла гениальная мысль собрать для удобства все полезные блоки информации и сгруппировать их, создав самую первую надстройку над языком.
То есть теперь можно было создавать программы намного проще, быстрее и с меньшим количеством кода. Таким образом языки программирования и развивались, постепенно сокращая усилия на создание более сложных программ. И чем больше было надстроек, тем более высокоуровневым считался язык программирования.
И снова вернёмся к Богатырю, то бишь низкоуровневому языку. Создать на нём аналог Фейсбука будет крайне непростой задачей. Ладно сложность, время — вот что я гарантированно потеряю, работая с этим пережитком прошлого! Тому же Цукербергу в его условиях и подручных средствах было намного проще провернуть подобное. И это уже была проблема. Ведь кроме социальной сети я собирался создавать ещё множество других айти проектов. В итоге я пришел к выводу, что мне нужно создать свою собственную надстройку над Богатырем. Свой собственный фреймворк.
* * *
Когда загораешься идеей, всё остальное просто меркнет по сравнению с ней. Учёба, отношения и другие прелести мирской жизни практически перестают для тебя существовать. И пока ты не воплотишь эту идею в жизнь или пока не разобьются надежды, связанные с ней, эта всемогущая ипостась не выпустит тебя из своих оков.
Так и случилось со мной. Я сидел на уроках только физически, а мыслями был полностью в своём проекте. Мне хотелось срочно всё обсудить со своими друзьями, но короткие перемены между уроками не давали полноценно это сделать. Наконец, наступил длинный перерыв, которым я и воспользовался:
— Ребят, я уже давно хочу поговорить с вами по поводу нашего проекта. Но вся эта канитель со школьными дуэлями и тот случай, когда выскочка Одоевский чуть не убил меня — всё это сбило меня с толку на целую неделю…
— Ух, даже не напоминай, Миша, — вздохнул Александр. — Я тогда думал, всё, потеряли мы тебя. Слава богу, всё обошлось!
Я с благодарностью принял от него рукопожатие и дружеское похлопывание по плечу.
— Да уж, — хмыкнул Сергей, с кем-то переписываясь в телефоне. — Давай, рассказывай, что у тебя на уме? Надеюсь, ещё одна гениальная идея?
На самом деле новость была несколько иного характера:
— Я начал потихоньку разбираться в Богатыре, и…
— В ком? — не понял Сергей, отвлёкшись от своего смартфона.
— Это язык программирования. Наш, отечественный, — объяснил Александр.
— Никогда не слышал, — пожал он плечами. — Я далёк от ваших компьютерных терминов. И что с ним? Какие-то проблемы?
— К сожалению он имеет слишком малые возможности для создания нашего проекта.
Если мало смыслящий в программировании Друцкий ещё сохранял самообладание, то Александр просто округлил глаза и воскликнул:
— И что теперь делать, Миш? Африканский использовать? Или того хуже, китайский? Мы же годы потратим на их изучение!
— Это как так? Почему? — непонимающе спросил Друцкий, ошарашенно смотря то на него, то на меня.
— Все современные сайты в Сети — это обычные информационные странички для широкого круга лиц. Я предлагаю сделать нечто революционное, требующее больше ресурсов. Но, как и сказал, отечественный язык программирования здесь нам не помощник.
— И что ты предлагаешь? Сворачивать проект? Чёрт! Я уже настроился на горы денег, — заныл Сергей.
— Мы всё ещё можем создать социальную сеть, — заверил я Друцкого. — Только нам с Сашей придётся хорошенько потрудиться. В принципе, если написать огромную кучу кода, сверстать сайт с помощью русского языка программирования возможно. Но я хочу предложить альтернативное решение. Мы арендуем офис, найдем программистов, и с их помощью усовершенствуем этот язык.