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