Сразу оговорюсь, что считаю нижеизложенную идею пустопорожней и не собираюсь заниматься её реализацией, разве что поспособствую по мере сил распространению результатов, полученных кем-то другим, с помощью форума или через включение в мою собственную сборку BlackBox.
Как мы знаем, многие энтузиасты программирования — они же и мечтатели. Это моё прошлое. Такой человек мечтает всерьёз написать ОС. Или придумать новый язык программирования. В этом нет ничего плохого, это этапы личностного роста программиста. Но самим личностям кажется, что они и только они знают как нужно всё сделать идеально правильно. И это мнение может тянуться годами. У человека сайт, на котором он расписал свою мечту, с посещением в полтора человека в сутки. И полтора же единомышленника, а он мечтает изменить мир.
В деле ОС’естроения и разработки языков меня интересует в первую очередь насколько широко они могут распространиться. И если не очень, то часто не играют особой роли даже их несомненные достоинства.
Ну вот такое лирическое отступление, но к тому, что многие люди, которые хотели бы иметь ЯП с национальным синтаксисом являются именно такими мечтателями, как я описал выше. Т.е. хорошо если человек может сформулировать преимущества национального языкостроения чётко и правдоподобно, чтобы иметь возможность заинтересовать потенциальных единомышленников. Люди с форума
rus.24bb.ru, даже те, кто может обосновать свою точку зрения, по моему скромному мнению претендуют на всё то же скромное (возрастное, поэтапное) звание почётного мечтателя. А нам бы выработать пути, которые могли бы не только продемонстрировать умение сокращать русское слово КОНЕЦ до КОН, но и сделать полученные результаты в той или иной степени доступными и полезными для заинтересованных. Поэтому следует разобраться с этим вопросом всерьёз.
Глагол. Прекрасный язык программирования. Потому что это передранный Оберон.
Некоторые принятые сокращения русских слов вызывают не то что недоумение, а желание избить автора. Ну да ладно, это только моё мнение. Но раз оно имеет место, значит найдётся тот, кто со мной согласится. Учтём этот момент.
Далее. Русскость, повальная абсолютная русскость, делающая абсолютно безполезным этот язык для нерусскоговорящего социума программистов. Это очень плохо, но это не смущает господ патриотов — молодых ведь учить надо на родном языке де, не так ли? Это второй момент. И как уж тут всем угодить.
Третий момент — это само проталкивание такого языка (допустим, Глагола) в школьные классы и студенческие аудитории. Будет много протестов, дескать, язычок весьма искусствен и далёк от потребностей мэйнстрима. А тут ещё MS с их VisualBasic подпирают, как уж тут подвинуться.
Ещё моментик. Повальное количество языков программирования. Даже чтобы с ними разобраться, пусть не со всеми, а хотя бы с основными, требуется хренова куча времени. А выбрать из них несколько для преподавания, да и ещё чтобы этот выбор понравился Минобразу и прочим сотоварищам? Нонсенс, коллеги. Тут консенсус не будет достигнут никогда. У Глагола нету шансов ни сейчас, ни в ближайшем будущем. У него ведь ещё и исходники закрыты. Ану как автор помрёт, дай ему боженька долгих и счастливых лет жизни, что тогда делать будем?
Вместе с тем, я знаю человека, который идёт по пути автора Глагола. И передирает Модулу-2 под русский синтаксис. С учётом сказанного выше — эдакий господин мечтатель, который занимается собственным личностным ростом. Что меня угнетает в этом процессе — его позиция благодетеля всея человечества в лице будущих школьников, которые несомненно будут программировать на Модуле-2 с русскими ключевыми словами.
Ну хорошо. Хватит философии, будем смотреть что в сухом остатке. Итак, что я предлагаю.
Поскольку моим самым любимым языком является Оберон-2 (и его диалект Компонентный Паскаль), а любимой средой — BlackBox Component Builder, с удовольствием констатирую, что эти прекрасные для обучения программированию технологии уже используются в системе образования
проектом Информатика-21. Поэтому одиночка, переводящий Модулу-2 на русский синтаксис остаётся за бортом по определению, потому что он не умеет и не хочет ни с кем объединиться (Что думаете по поводу его позиции благодетеля человечества?), и по сути занимается хорошим и правильным делом, называющимся варение в собственном соку. С чем я и поздравляю всех любителей форума
rus.24bb.ru.
Наша позиция будет несколько иной. Есть много плюсов в том, чтобы одиночке-благодетелю присоединиться к проекту
Информатика-21. Эти люди знают толк в обучении. Они понимают модульные языки и парадигмы грамотного программирования. Они борются против засилья коммерческих технологий в образовании. Это весьма веские плюсы. Значит с точки зрения нашего гипотетического благодетеля им просто не хватает русского синтаксиса, что и попробуем исправить.
Предлагаю одиночке-благодетелю, если он чувствует в себе силы пойти на адекватный диалог с умными людьми и попробовать их убедить в разумности обучения с национальным синтаксисом, разработать подсистему для BlackBox Component Builder, которая будет реализовывать словари русского (а также других языков) для ключевых слов языка Компонентный Паскаль. С возможностью переключаться между языками. Т.е. меню
Язык -> Список языков. Учащийся выбирает свой родной язык, если он присутствует в списке, и все ключевые слова в исходнике моментально становятся на нужном языке. Это, кстати, безусловно снизит моё напряжение по поводу
только русского синтаксиса, а по мнению некоторых товарищей понизит барьер вхождения будущих программистов. Быть может и так, не знаю. Не уверен.
Кроме зашитых переводов ключевых слов Компонентного Паскаля на разные языки, а также их сокращений, я был бы рад видеть в такой подсистеме возможность иметь свой собственный вариант словаря. Потому что английские слова, такие как IF, THEN, FOR, WHILE — устоявшиеся, а национальные (русские и т.д.) будут мозолить глаза пока не притрутся. Короче говоря, не верю я в то, что взгляды на вариантность перевода ключевых слов будут столь уж однозначными, всегда найдётся тот, кому не понравится перевод. Вот для них и предлагаю возможность личного варианта словарей. В то же время, хранить токены нужно так, чтобы, имея личный перевод, в общее хранилище попадал бы вариант, который можно было бы переводить на другой язык и на другой вариант словаря безо всяких трудностей.
Кроме ключевых слов, каждая программа имеет переменные, процедуры, комментарии и проч. Это всё господа русофилы тоже хотят видеть всенепременно на русском языке. Посему идея усложняется. Интеллектуальная подсистема будет строить словарь всех идентификаторов модуля в виде отдельного дерева, храниться такой словарь может, например, в одноименном с модулем файле или в отдельной папке подсистемы. Также нужен инструмент, который позволит внедрять в это дерево информацию для перевода на другие языки. Выглядеть это может так:
Код: "OBERON"
MODULE Test; (* This is a test module *)
PROCEDURE Do*;
BEGIN
END Do;
END Test.
Выбираем русский язык, модуль становится таким:
Код: "OBERON"
МОДУЛЬ Test; (* This is a test module *)
ПРОЦЕДУРА Do*;
НАЧАТЬ
ЗАКОНЧИТЬ Do;
ЗАКОНЧИТЬ Test.
Теперь вызываем наш гипотетический инструмент, который сканирует идентификаторы и выводит их список, в который мы вводим перевод на русский:
Код: "TEXT"
После автоподстановок из введённого списка-словаря получаем:
Код: "OBERON"
МОДУЛЬ Тест; (* This is a test module *)
ПРОЦЕДУРА Делать*;
НАЧАТЬ
ЗАКОНЧИТЬ Делать;
ЗАКОНЧИТЬ Тест.
Теперь наикошернейшего русофила здесь смутит только комментарий, и — вуаля — надо придумать что-то ещё. Например, хранить списком комментарии и их переводы на другие языки в том же дереве переводов или переводить комментарии автоматически с помощью, например, сервиса Google translator.
Если такой подход будет востребован, он несомненно будет развиваться и пополняться другими идеями, я лишь наметил некоторые моменты. Готов ответить на вопросы и обсудить это, но только в положительном ключе, если можно. Недостатков и у этой идеи, и у самого подхода с национализированным синтаксисом — хватает. Напомню, что Никлаусу Вирту задавали вопрос почему его языки — не с немецкими ключевыми словами. И мне не стыдно, что моё мнение в итоге совпадает с мнением уважаемого мэтра.
Конечно для реализации такой подсистемы придётся глубоко влезть и в другие подсистемы (Dev), но BlackBox видится идеальной платформой для этой цели, в ней как раз заложен потенциал для такого рода расширений. Что ещё более привлекательно с учётом того, что BlackBox обещают выпустить под упрощённой лицензией BSD.
А вопросы предвижу такие. Почему Оберон? (Потому что по многим критериям это наилучший язык для обучения, господа!) Почему BlackBox? (А потому, что это самая расширяемая система из всех, мне известных. Однако если вам хочется, можете попробовать внедрить русские ключевые слова в TurboPascal/FreePascal или Delphi, и светлой вам дороги на этом поприще, господа!)
Почему не только русский синтаксис? На этот вопрос ответят господа националисты, а также патриоты других наций, которым хочется видеть везде свой родной язык.
А может быть в скором будущем появится такая профессия как локализатор исходников п/о под национальные особенности граждан?
Трудно ведь предугадать последствия такой плодотворной идеи, а?