АРТЕЛЬДействительно, языков программирования «на любой вкус и цвет» сейчас предостаточно. Зачем ещё какие-то новые? Чтобы ответить на этот вопрос, приведём высказывание одного школьника из белорусской глубинки:
— Мне программирование не подходит, потому что там всё на английском, а у меня в классе немецкий...
Это забавное высказывание, причём совершенно реальное, как нельзя лучше отражает суть проблемы: необходимость знания английского языка является серьезным барьером при изучении программирования. Увы, английский лежит в основе подавляющего большинства современных языков и технологий программирования.
Если же взглянуть на экономику любой отдельно взятой страны, то необходимость знания английского языка для внедрения информационных технологий – это куда более серьезная проблема, чем проблема обычного школьника. Получается, что для автоматизации любого предприятия, на котором нигде и никогда не звучит английская речь, требуются инженеры с уверенным знанием английского. Это создаёт дополнительные трудности с подготовкой и удержанием таких специалистов.
Очевидно, что делать свои первые шаги в программировании и применять профессиональные навыки при решении реальных практических задач намного проще на родном языке. Для отдельно взятого человека родной язык ускоряет мышление и упрощает общение. А целой стране он даёт возможность задействовать весь человеческий потенциал для широкого внедрения информационных технологий в экономике.
Бытует мнение, что английский язык уже стал общепринятым стандартом в области программирования, и желающим программировать следует его изучать. Не подвергая сомнению важность и полезность знания английского языка, заметим однако, что в своё время и латынь была общепринятым стандартом в области науки... Между тем, расцвет наук в разные эпохи в разных регионах мира удивительным образом совпадал по времени с активным переводом научных трудов на родные языки народов.
Кто-то скажет, что для русскоговорящих народов ещё с 1970-х годов существуют промышленные и обучающие языки программирования с русскими словами. Например, в разное время были созданы языки КуМир, Эль-76, Робик, Рапира, РАЯ, 1С и др. Да, они существуют, но не отвечают требованиям времени (за исключением языка 1С, но сфера его применения ограничена лишь бухгалтерским учётом).
Устаревание и забвение языков программирования, которые создаются лишь с целью обучения, это общая закономерность. В погоне за кажущейся простотой, создатели таких языков изначально упрощают их настолько, что делают непригодными для решения реальных практических задач. Поэтому такие языки не используются в промышленности и, как следствие, мало кому интересны с точки зрения инвестиций в их развитие. В результате они устаревают и забываются.
Что касается профессиональных языков программирования, их главная проблема – это сложность и замкнутость. Входной барьер для изучения типового профессионального языка настолько высок, что лишь люди со специальным образованием способны его освоить. Неудивительно, что если изучение требует многих лет, то такой язык становится не просто средством решения задачи, а чуть ли не жизненным выбором человека. Это ли не причина технологической замкнутости людей, «познавших» такой язык?
Особняком в череде языков программирования стоит язык Pascal и его диалекты. Первоначально язык был создан Никлаусом Виртом и получил широкое распространение как в обучении, так и в промышленности. В обучении его полюбили за простоту и лаконичность, а в промышленности – за возможность быстро создавать реальные системы благодаря таким средствам разработки как Turbo Pascal и Delphi. Эти средства разработки обеспечили популярность и долгую жизнь языку. В свою очередь, одна из заслуг создателя языка в том, что при всей своей простоте язык оказался пригоден для создания промышленных систем. Никлаус Вирт неоднократно повторял, что язык должен быть пригоден и для обучения, и для профессионального применения.
К сожалению, излишняя коммерциализация диалектов языка Pascal и особенно библиотек для создания пользовательского интерфейса привели к тому, что язык, пригодный для обучения и хорошо принятый профессиональным сообществом, потерял былую популярность.
Нужны универсальные языки программирования, имеющие в своей основе слова естественных языков, на которых говорят разные народы мира. По возможности новые языки должны быть пригодны одновременно и для профессионального применения, и для обучения программированию в школе на родных языках разных народов мира. Желательно, чтобы инструменты разработки оставались открытыми и бесплатными.
Крайне важно, чтобы использование родных слов не приводило к самоизоляции языков. На практике это означает, что языки должны изначально поддерживать полную совместимость с популярными платформами, имеющими англоязычные библиотеки: .NET, JavaScript, Java, Swift и др.
Для достижения «бесшовной» интеграции с англоязычными платформами родные слова должны использоваться наравне с английскими. И между ними должен поддерживаться автоматический перевод. Например, программу, написанную изначально на английском языке, должно быть возможно увидеть в переводе на русском языке (или любом другом естественном языке), и наоборот. Это позволит использовать англоязычные платформы вместе с их богатым набором готовых библиотек так, как будто они написаны на русском языке.
Эти идеи были положены в основу при создании семейства языков программирования Артель.
Артель – это семейство универсальных языков программирования, равно пригодных и для профессиональной разработки, и для обучения программированию на родных языках разных народов мира (будь то русский, английский, арабский, китайский, испанский или любой другой естественный язык).
Название семейства происходит от слова «артель», означающего добровольное объединение людей для совместного труда.
Языки спроектированы таким образом, чтобы их профессиональные возможности не отягощали собой те базовые конструкции, с которыми сталкивается новичок при изучении программирования. Базовые конструкции достаточно просты, и потому языки пригодны для обучения программированию с нуля. При этом, профессиональные возможности языков достаточно развиты, благодаря чему они пригодны для создания промышленных систем.
Языки семейства Артель содержат слова из разных естественных языков и поддерживают автоматический перевод между ними. Это позволяет использовать на родном языке даже платформы программирования и сторонние библиотеки, изначально написанные на английском языке. Перевод имён на родной язык выполняется автоматически на основе словарей.
Языки являются мультиплатформенными, т.е. спроектированы для тесной и бесшовной интеграции с уже существующими популярными платформами. В отличие от кросс-платформенных языков, языки Артель не изолируют программу от целевых платформ с помощью своей исполняющей системы и своих библиотек, а встраивают программу в целевую платформу с её библиотеками. Любой объект целевой платформы становится «родным» в языках Артель. И наоборот, создаваемые на языках Артель библиотеки доступны к использованию из других языков, принятых на целевых платформах.
Отличительной особенностью семейства является парадигма транзакционного реактивного программирования. Транзакционное программирование упрощает создание надежных высокопроизводительных систем обработки данных. А реактивное программирование облегчает создание интерактивных пользовательских интерфейсов, обеспечивая автоматическое обновление информации на экране при изменении моделей данных.
В ближайшее время станет доступна документация по двум языкам семейства: Артель-А и Артель-М.
Все материалы, включая компилятор и средства разработки, являются бесплатными и открытыми.