Мы используем cookie для улучшения вашего опыта.
А вы знали?
Первый университет в России — МГУ — основан в 1755 году

Что можно делать на компьютере? Поиграть в Counter-Strike, поставить лайки на фотографии, можно скачать интересный фильм или ... Да, еще можно принять участие в интернет-конкурсе, или пройти тест на подготовленность к ЕГЭ. А еще можно - создать новый язык программирования, правда, знаний для этого понадобится побольше, чем для игры в Minecraft.
Не знаю, насколько точным будет утверждение, что каждый программист мечтает создать новый язык программирования, но задумываются об этом многие. Это не столько самоцель, сколько возможность проверить свои силы и применить полученные знания. Например, одиннадцатиклассник из Ульяновска Роман Трусов, разработал язык Riemann, позволяющий разрабатывать базовые алгоритмы.
– Какими были твои первые шаги в программировании?
– С программированием было так: начал я довольно бездумно, писал разные простейшие вещи вроде игры «Крестики-нолики» на Delphi, что к серьезному продвижению не приводило. В более старшем возрасте познакомился с базами данных и языком SQL, изучал все изнутри – чтобы понять механизм работы, я писал все сам, по учебникам заниматься было скучнее. После этого было кратковременное увлечение скриптами – написал несколько вещей для собственных нужд на Python, а затем начал осваивать современные профессиональные инструменты – Oracle Database и Java. На последней написал эмулятор машины Поста и исполнитель для алгоритмов Маркова с целью расширения познаний в теории алгоритмов, на данный момент изучаю Android SDK – весьма перспективная для молодых разработчиков отрасль.
Я принимал участие во многих олимпиадах и конкурсах по программированию, но задания там выполнялись на устаревших языках, используемых преимущественно в школах – Pascal с его вариациями и BASIC. Между тем, считаю, что начинать обучение программированию стоило бы с современных сред разработки, дабы не искажать представление о настоящей деятельности программистов.
– То, что в школе используются устаревшие технологии, еще можно объяснить, но почему на олимпиадах-конкурсах не применяются более новые языки программирования?
– Здесь все просто. Современные языки программирования используют, так называемые, фреймворки – масштабные структуры, объединяющие в себе очень мощные встроенные библиотеки, содержащие практически все необходимые алгоритмы. Это упрощает очень многие процессы.
– Если я все понимаю правильно, то главная цель курса информатики в школе (ну и олимпиад, наверное, тоже) – научить составлять алгоритмы для решения определенных задач. В этом случае каждый конкретный язык программирования выступает лишь как способ реализации этого алгоритма, иначе говоря, для данной поставленной цели, сам язык программирования вторичен, так?
– В целом да. Алгоритм - это математический метод, он вообще не зависит от языка. Но математическая подготовка для описания алгоритмов с помощью исключительно математических методов требуется слишком серьезная.
– Как, по-твоему, какие новые языки программирования стоило бы использовать сегодня в школе?
– Учитывая общий уровень подготовки, можно не говорить о новых языках программирования, ведь очень многие старшеклассники не имеют никаких знаний логики – основы всей математики. В этом случае хорошо подходит Prolog, который являясь логическим языком, как раз поставит всех перед необходимостью осваивать логику.
То, чем сейчас занимаются на уроках информатики, строго говоря, не всегда можно назвать программированием – вместо решения алгоритмических задач, которые лежат в основе всех проблем, решаемых программистами, предлагается выучить конкретные реализации решения частных случаев прикладных задач. Не так давно мы проходили построение графиков. О том, чтобы разработать универсальный метод построения даже вопроса не стояло – процесс был упрощен до переписывания ключевых моментов из учебника. Пропадает творческий момент.
– Это и было отправным пунктом создания нового языка?
– Нет. Я создал его скорее ради интереса (назвал его Riemann – в честь великого немецкого математика Бернхарда Римана). Просто у меня появилась свободная неделя, и мне захотелось сделать что-то в этой области для ознакомления. Я до этого вообще ничего не знал о формальных языках.
- Почему именно Риман?
- Незадолго до описываемых событий прочитал книгу «Простая одержимость» Джона Дербишира, посвященную Гипотезе Римана – одной из величайших нерешенных математических проблем. Как-то само в голову пришло.
- А зачем понадобился еще один новый язык программирования? Было ли это просто хобби, проверкой сил, или были какие-то другие цели?
– В первую очередь, я создал его в познавательных целях. Мне попала в руки книжка по ассемблеру, захотелось написать простой исполнитель, который бы выполнял базовые функции, через которые можно было бы реализовать все остальное.
– Какие программы были написаны на этом языке?
– Несколько демонстрационных для конкурса – показать, что все базовые функции работают, а также – сортировка массива с заданием случайных значений. Вообще, я собираюсь переписывать его на Java, ну и доработать, конечно. Тогда уже можно будет использовать его для автоматизированного создания алгоритмов – программы на нем будет создавать другая моя программа, а не люди. Это довольно интересная область в теоретической информатике.
– А что ожидается в перспективе?
– Метаязык, описывающий исключительно математические абстракции. Это в идеале позволит «переводить» алгоритмы с одного языка на другой, что уже совершенно другой уровень технологий, так что ожидается ближе к моей дипломной работе.
– Что учительница информатики сказала, когда узнала о твоей затее?
– Учительнице понравилась идея нового языка программирования. Друзьям тоже, но сложность проекта показалась им чрезмерной.
– Что было главным для тебя при выборе будущей профессии?
– Я хочу стать программистом, и у меня очень большой интерес к этой профессии. Само программирование стало для меня фактически образом мышления и жизни. Поступать я собираюсь в МГУ, на факультет вычислительной математики и кибернетики, или физфак – там тоже готовят хороших программистов.
– Какие твои увлечения помимо программирования?
– В двенадцать лет вместе с программированием я увлекся игрой на гитаре. Интерес к тому и к другому пробудил мой дядя, научивший меня азам, а дальнейшее продвижение было самостоятельным. От нотной грамоты я отказался, что совершенно не создало для меня препятствий. Учился играть, переигрывая фолк-баллады Ричи Блэкмора, впоследствии перешел на блюз и открыл для себя импровизацию, черпая вдохновение в записях австралийского виртуоза Томми Эммануэля.
– Нравится ли тебе играть в компьютерные игры?
– Да. С удовольствием играю в Minecraft, когда есть время. Серия Half-Life – вообще любовь с раннего детства.