RUBasic

История проекта RUbasic

Этот проект «зародился» очень давно. Примерно в 1993 году в МИФИ для задач обучения персонала АЭС нами был разработан язык создания обучающих систем «LEARN». Сначала это был текстовый интерпретатор с поддержкой псевдографики, работавший под MS DOS, затем в него был добавлен графический режим, использующий спрайты и рисованные мнемосхемы. Однако, хоть интерфейс и был русским, сам язык программирования, следуя общепринятой тогда традиции, оставался английским. Пользователи (преподаватели МИФИ, сотрудники НИИА и МинТопЭнерго) уже тогда высказывали пожелания иметь полностью русскую систему для удобства работы. Однако, дальнейшего развития именно эта система не получила.

Спустя некоторое время началась разработка проекта Алгос — среды визуально-текстовогого программирования, в которую были заложены все наши идеи, многие из которых не реализованы до сих пор ни в одной системе:

  • возможность графического программирования на уровне блоков — по аналогии с современным Scratch
  • возможность многоуровневой свертки-развертки блоков алгоритма начиная от уровня ассемблерных команд и заканчивая функциональными блоками уровня функций (методов, классов или обработчиков событий) и более высоких уровней
  • возможность перехода от визуальной (графической) алгоритмической схемы к текстовым блокам на любом взаимно-совместимом языке программирования низкого, среднего и высокого уровня
  • полуавтоматическая визуализация и документирование всех процессов и этапов создания программных проектов
  • совмещение средств компиляции, трансляции, сборки, интерпретации, препроцессирования, а также всевозможных инструментов и методов отладки в процессе разработки программ

Одним из оптимальных текстовых языков программирования, от которых имело смысл отталкиваться, был созданный довольно давно (в 1973 году) Бабаяном, Пентковским и другими язык программирования ЭЛЬ-76, предназначенный для программирования процессоров «Эльбрус». Этот язык в принципе отвечал всем требованиям текстового учебного языка программирования высокого уровня:

  • русским синтаксисом, в том числе, и в области разделителей
  • полноценной читаемостью кода
  • простотой

Вы можете посмотреть пример программы на ЭЛЬ-76 и убедиться в том, что это был один из наиболее простых с точки зрения чтения и понимания языков программирования:

 программа
   процедура передатьпривет = проц(ф32 числоприветов)
   начало
     если числоприветов = 0 то
       печатьмс(стр8 "МИР не получил ни одного привета!")
     инес числоприветов = 1 то
       печатьмс(стр8 "В МИР был отправлен всего один привет!")
     иначе
       печатьмс(стр8 "МИРУ передали несколько приветов. А если точно, то их было");
       печать(числоприветов)
     все
   конец;
   
   печатьмс(стр8 "Привет просто так!"); % такой привет мартышка точно не потеряет
   печатькс();                          % разрыв строки
   передатьпривет(100)                  % привет из процедуры
 конец

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

Интерфейс работающей программы
Визуальное представление текстового алгоритма
Развертка текстового алгоритма
Процесс редактирования

Но… «времена изменились», и дальнейшая разработка стала просто невозможна. Довольно долгое время мы не возвращались к проектированию и разработке учебных систем программирования в силу различных причин. Потом наконец появились замечательные учебные системы программирования Microsoft Small Basic и Scratch. Разумеется, появилось ещё много всего, но внимания заслуживают именно эти два проекта. Эти языки очень удачно заполнили практически пустовавшую нишу учебных языков программирования начального уровня. И все были счастливы — c одним «Но!» — хорошего русского текстового учебного языка программирования так и не появилось. По идее его нишу должен был бы занять Small Basic с локализованной семантикой и вводом, но этого не произошло. Более того, как любой продукт Microsoft — Small Basic оказался «заражен» определенными проблемами и недостатками, изжить которые Microsoft даже не попытался.

Разумеется, не стоит воспринимать всерьез тот кошмар под названием «Школьный Алгоритмический Язык» или «КуМир», который и поныне предлагается в школьных учебных программах по Информатике в качестве «русского средства программирования». В том, что это — на самом деле кошмар для учащихся (и вообще, для всех, кого это касается), нетрудно убедиться, открыв любой школьный учебник информатики, ибо, несмотря на заявленную «русскую лексику», этот язык абсолютно нечитаем — и даже не важно, знаете вы русский язык или нет. Для справки: этот язык был «введён в употребление» академиком А. П. Ершовым примерно в 1975 году в качестве основы для «безмашинного» курса информатики. То есть, с момента разработки этого языка прошло почти полвека, а компьютерные средства программирования (кроме ручки и бумажки) появились не более 10 лет назад…

Спустя некоторое время проект Scratch реализовал полноценную русскую версию, благо Scratch — язык исключительно графический, и особых усилий для этого не потребовалось. Однако, что-то серьезное, полезное и интересное на Scratch не напишешь, да и не нужно ему это – у него другие задачи, и он с ними прекрасно справляется. Но для задачи полноценного обучения текстовому программированию он все-таки не подходит — не та базовая концепция.

А вот Microsoft Small Basic, несмотря на некую экстенсивность развития в последние десятилетия, до сих пор является весьма универсальным, интересным и очень удобным инструментом, на котором можно решать множество разнообразных задач, как минимум, в пределах школьного (а для многих – и институтского) курса. Он удобен в качестве учебного языка и, если бы не извечная Майкрософтовская «дискриминация по языковому признаку» — являлся бы великолепным дополнением и продолжением Scratch в деле обучения российских детей программированию. Однако, Microsoft даже не сделало попытки реализовать полноценную интернациональную версию Small Basic.

Идея полноценного полностью русского учебного языка программирования просто «носилась в воздухе». Однако, там же, «в воздухе» и оставалась. Приземлиться ей мешали «Рапиры», «Кумиры», «ШАЯ» и прочие активно пихаемые во все школы проекты академиков-теоретиков. В этот момент нашлось некоторое количество энтузиастов, которым также откровенно не нравился существующий подход в преподавании программирования в школах. И вот примерно в 2009 году мы начали пробную разработку собственного русского языка программирования.

В 2013 году мы на базе одной из московских школ начали эксперимент по обучению программированию и робототехнике детей 6-8 лет. С появлением на рынке последней версии робототехнических наборов Lego Mindstorms EV3 подобная задача стала вполне реализуемой. На самом деле, обучение программированию детей 6-8 лет — это не такая уж экстремальная задача, как может показаться на первый взгляд. Однако, мы наткнулись на одну неожиданную «неприятность»: поставляемая фирмой Lego среда визуального программирования (слегка похожая на Scratch) превращает процесс программирования роботов в «бездумное тыкание», «дурацкую возню», словом, во всё что угодно, кроме нормального осмысленного процесса построения алгоритмических структур для управления роботами, а главное — их понимания. Таким образом, система программирования от Lego ни в коей мере не способствует развитию в голове ребенка «программистского мышления». Кроме того, при программировании в этой среде, особенно при большом количестве программного кода даже на компьютерах с большим объемом памяти начинаются необъяснимые сбои в работе самой среды программирования. К слову сказать, система LabView, на которой построена данная система программирования была изначально создана для совершенно других задач (для моделирования схем и технологических процессов). Как показала практика, после работы в этой системе визуального программирования учащихся приходится потом довольно долго переучивать на обычное, в том числе, «невизуальное» (текстовое) программирование.

Что касается других систем программирования, то в таком возрасте даже те дети, которые учат английский язык, практически не в состоянии «собрать воедино» и свои зачаточные знания английского, и начальные знания по программированию, без ущерба для последнего. А ведь программы обязательно нужно читать и понимать!

Для создания и программирования роботов мы сначала решили использовать наборы Lego EV3 и так называемый «EV3 Basic» – это Microsoft Small Basic с установленной дополнительно библиотекой функций, обеспечивающей программное взаимодействие с контроллером Lego EV3.

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

И вот после проработки нового проекта русского учебного языка программирования в 2015 году на свет появился RUbasic. Тогда это была простенькая программа-транслятор, единственной задачей которой являлся «перевод» программы, написанной на языке RUbasic в текст на одном из уже существующих английских языков программирования. Спустя некоторое время было создано некое подобие программной оболочки, позволяющее писать программы на RUbasic и запускать их. А в 2016 году вышел пре-релиз RUbasic, где в качестве редактора с подсветкой кода и автоподстановкой использовался текстовый редактор Notepad++.

В настоящее время система программирования RUbasic представляет из себя компилятор языка, расширенный редактор с подсветкой кода (Notepad++), минимальный набор функций — для создания учебных приложений в среде MS Windows.

Планируется разработка интегрированной среды программирования, включающей в себя полноценный редактор кода, отладчик, визуализатор алгоритмов, также в разработке находятся расширенные библиотеки функций, обеспечивающие функциональность и взаимодействие с элементами операционной системы Windows, различными протоколами, устройствами компьютера, с Lego EV3, Arduino, Raspberry Pi и т.п.

Проект RUbasic сегодня нуждается в помощи единомышленников. Если вы как-то связаны с отраслью IT, программированием, образованием, если вам не безразлично будущее наших детей или вам просто интересно то, что происходит в области обучения детей программированию в России — вступайте в наше сообщество, следите за новостями и принимайте посильное активное участие в решении тех задач, которые стоят перед нашим проектом.

Только общими силами мы сможем сделать то, чего за последние 40 лет не смогла сделать система образования в России: предоставить русским детям возможность изучать программирование на родном языке.

Кстати…

«Вокруг любой идеи, будь она плохой или хорошей, всегда крутится толпа бездельников, словно вокруг бочки свежего пива. Потом к идее примазываются всякие жулики и политические аферисты, заинтересованные уже не в самой идее, а лишь в том, чтобы нажраться как можно больше при жизни и оставить детям кое-что в заграничных банках. И пусть наши социологи не завираются: еще никому не удалось создать рай на земле, зато в аду каждый человек побывал…»
Ф.Паулюс.
Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать rubasic.ru, вы соглашаетесь на использование файлов cookie.
Понятно