Этот проект «зародился» очень давно. Примерно в 1993 году в МИФИ для задач обучения персонала АЭС нами был разработан язык создания обучающих систем "LEARN". Сначала это был текстовый интерпретатор с поддержкой псевдографики, работавший под MS DOS, затем в него был добавлен графический режим, использующий спрайты и рисованные мнемосхемы. Однако, хоть интерфейс и был русским, сам язык программирования, следуя общепринятой тогда традиции, оставался английским. Пользователи (преподаватели МИФИ, сотрудники НИИА и МинТопЭнерго) уже тогда высказывали пожелания иметь полностью русскую систему для удобства работы. Однако, дальнейшего развития именно эта система не получила.
Спустя некоторое время началась разработка проекта Алгос - среды визуально-текстовогого программирования, в которую были заложены все наши идеи, многие из которых не реализованы до сих пор ни в одной системе:
- возможность графического программирования на уровне блоков - по аналогии с современным Scratch
- возможность многоуровневой свертки-развертки блоков алгоритма начиная от уровня ассемблерных команд и заканчивая функциональными блоками уровня функций (методов, классов или обработчиков событий) и более высоких уровней
- возможность перехода от визуальной (графической) алгоритмической схемы к текстовым блокам на любом взаимно-совместимом языке программирования низкого, среднего и высокого уровня
- полуавтоматическая визуализация и документирование всех процессов и этапов создания программных проектов
- совмещение средств компиляции, трансляции, сборки, интерпретации, препроцессирования, а также всевозможных инструментов и методов отладки в процессе разработки программ
Одним из оптимальных текстовых языков программирования, от которых имело смысл отталкиваться, был созданный довольно давно (в 1973 году) Бабаяном, Пентковским и другими язык программирования ЭЛЬ-76, предназначенный для программирования процессоров "Эльбрус". Этот язык в принципе отвечал всем требованиям текстового учебного языка программирования высокого уровня:
- русским синтаксисом, в том числе, и в области разделителей
- полноценной читаемостью кода
- простотой
Вы можете посмотреть пример программы на ЭЛЬ-76 и убедиться в том, что это был один из наиболее простых с точки зрения чтения и понимания языков программирования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<strong> программа процедура передатьпривет = проц(ф32 числоприветов)</strong> <strong> начало если числоприветов = 0 то</strong> <strong> печатьмс(стр8 "МИР не получил ни одного привета!") инес числоприветов = 1 то печатьмс(стр8 "В МИР был отправлен всего один привет!") иначе печатьмс(стр8 "МИРУ передали несколько приветов. А если точно, то их было"); печать(числоприветов) все конец; печатьмс(стр8 "Привет просто так!"); </strong><em>% такой привет мартышка точно не потеряет</em><strong> печатькс(); </strong><em>% разрыв строки</em><strong> передатьпривет(100) </strong><em>% привет из процедуры</em><strong> конец</strong> |
На определенном этапе нами были достигнуты очень неплохие результаты, но это были всего лишь экспериментальные наработки:
Но... «времена изменились», и дальнейшая разработка стала просто невозможна. Довольно долгое время мы не возвращались к проектированию и разработке учебных систем программирования в силу различных причин. Потом наконец появились замечательные учебные системы программирования 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 лет не смогла сделать система образования в России: предоставить русским детям возможность изучать программирование на родном языке.
Кстати...
"Вокруг любой идеи, будь она плохой или хорошей, всегда крутится толпа бездельников, словно вокруг бочки свежего пива. Потом к идее примазываются всякие жулики и политические аферисты, заинтересованные уже не в самой идее, а лишь в том, чтобы нажраться как можно больше при жизни и оставить детям кое-что в заграничных банках. И пусть наши социологи не завираются: еще никому не удалось создать рай на земле, зато в аду каждый человек побывал…"
Ф.Паулюс.