«1С:Исполнитель»: особенности языка
Официальный технологический блог «Заметки из Зазеркалья» опубликовал материал о новом инструменте для разработчиков и администраторов, который представляет собой новый язык разработки сценариев, а также его интерпретатор, совместимый со всеми платформами, поддерживаемыми 1С – с Linux, macOS и Windows.
«Язык сценариев <в 1С:Исполнителе> базируется на языке разработки 1С:Предприятие, но имеет от него ряд существенных отличий. Мы постарались сделать язык современным, лаконичным и простым в освоении», – говорится в описании нового продукта.
Скриншот Visual Studio Code со скриптом 1С:Исполнителя демонстрирует многострочные комментарии, интерполяцию строк, многострочные литералы и английский синтаксис с выводом результата работы скрипта в терминальную консоль. Источник: wonderland.v8.1c.ru
На данный момент разработчики обозначили такие особенности и возможности языка в «1С:Исполнителе»:
- Типизация: язык статически типизированный, у каждой переменной, параметра и метода, возвращающего значения, должны быть заданы типы; проверка типов будет происходит в момент компиляции.
- Иерархия типов: под типом понимается множество допустимых значений и набор операций, которые можно выполнять над данными, принадлежащими этому типу. При описании типов будет использоваться понятие «контракт» - набор свойств и методов, присущих тому или иному типу, а также поведение этих свойств и методов.
- Базовые типы, например, Число, Булево, Строка, Ууид - уникальный идентификатор и другие.
- Типы для работы с датой и временем
- Коллекции: массив (список элементов, без контроля уникальности), множество (коллекция, содержащая только уникальные элементы), соответствие (словарь, список пар «ключ-значение»)
- Перечисление: специальный тип данных, множество значений которого представляет собой явно заданный набор идентификаторов.
- Структура: тип, имеющий фиксированный набор полей и конструкторов. Каждое поле имеет тип, указанный при разработке структуры. Структура может содержать только данные и не может содержать описания методов.
- Стандартная библиотека: набор объектов, который является составной частью системы «1С:Исполнитель» и позволяет выполнять различные действия, в том числе с внешним окружением.
Для работы «1С:Исполнителя» потребуется Java Runtime Envinronment (JRE) или Java Development Kit (JDK) версии 1.8 или более новой, а также Liberica JDK (64-разрядный дистрибутив из последней таблицы с заголовком «Полная версия Liberica включает LibericaFX и Minimal VM, где это применимо»).
Будет ли мир разработчиков 1С прежним после релиза «1С:Исполнителя»
В заметке на страницах блога «Зазеркалье» говорится, что уже сейчас «1С:Исполнитель» работает в облачных сервисах 1С:Фреш и 1С:ГРМ, и применяется для администрирования информационных баз и виртуальных машин.
Предполагаем, что по мере распространения решений для корпоративного сегмента, когда «заметать под коврик» вопросы администрирования и управления разработкой практически невозможно, востребованность такого рода продуктов будет только расти.
Соответственно, появление «1С:Исполнителя» сейчас выглядит вполне разумно, а в случае публикации рабочего релиза еще и оптимистично.
В общем, у прогрессивных разработчиков 1С, которые уже какое-то время следят за развитием 1С:EDT, возникла еще одна точка, на которой можно будет фокусировать свое внимание – это развитие «1С:Исполнителя».
Подробнее о возможностях в блоге «Заметки из Зазеркалья»
Интервью с Андреем Овсянкиным
Мы поговорили об анонсе «1С:Исполнителя» с создателем скриптового интерпретатора OneScript Андреем Овсянкиным. Обсудили, какие перспективы у нового движка и как разработка скажется на отрасли в целом.
Пока нет возможности оценить анонсированный инструмент, и доступна только его концепция, как вы считаете, насколько эта концепция удачно сформулирована?
Вот как раз концепция сообществу и непонятна. Да, это язык для девопс. Но почему он настолько отличается от 1С? Если придуман новый язык, то в чем мотивация учить его, а не Python, например? Т.е. концепция сформулирована пока очень размыто. И об ее «удачности» сложно что-либо сказать.
Я так понимаю, что фирма 1С написала свой внутренний инструмент для поддержки ГРМ и Фреш, и возможно, они не планировали создать универсальный продукт, они просто выразили свои представления об инструменте работы, вложили в него то, что им показалось удобным.
Возможно все, что угодно. Мы пока не знаем о предпосылках создания языка. Ни для кого не секрет, что язык 1С застоялся и требовал развития. 1С сделала смелый шаг и развитие пока выглядит очень радикальным. До появления вопроса: «выглядит то-ли как Typescript, то-ли как Python, но будто бы менее удобно чем то и другое». Надо попробовать. Пока синтаксис вызывает жаркие споры. Мне кажется можно было бы дать новый толчок исходному языку 1С и без столь радикальных изменений. Что явилось толчком к созданию? Не знаю. Во-первых, конечно, желание развить язык. Во-вторых – 1С «разглядела» востребованность devops и разумеется сделала для этого свой инструмент. По традиции, информации «с той стороны» минимум. Хотелось бы, чтобы фирма была более открытой к сообществу.
Но судя по анонсу, развитие действительно шло сразу в нескольких направлениях – есть и среда отладки, и возможность создания классов, и поддержка EDT. Т.е. апробация шла несколькими командами.
Это очень круто. Подошли комплексно, даже VS Code поддержали. Видно, что старались
Может быть, эти изменения специально оформлены настолько шокирующе, чтобы произвести впечатление? Возможно, изначально спорные моменты будут скорректированы в дальнейшем?
Сомневаюсь. 1С никогда не славилась эпатажем ради эпатажа. Насчет «спорных моментов» – дело в том, что спора-то и нет. Выпущен язык «как есть». Почему он такой, в чем его конкурентное преимущество, поможет ли он привлечению новых разработчиков, чем? Будет ли он успешен при конкуренции на международном рынке и т.п. Вопросов много, ответов нет. Хотелось бы услышать рассказ о языке от самих создателей.
То есть 1С-никам придется радикально переучиваться на новый синтаксис?
Что значит «придется»? Пока никто не заставляет.
Как вы относитесь к 1С:Исполнителю? Будете ли вы им пользоваться?
Меня многие об этом спрашивают, полагаю из-за OneScript. Я отношусь крайне положительно, как ни странно. Выход инструмента специально для devops, означает, что последние 5-6 лет нашей работы не пропали зря. 1С заметила полезность инструментов. Известно, что наработки сообщества активно не только изучаются, но и применяются внутри самой 1С. Но, конечно, досадно, что на официальном уровне 1С делает вид, что не существует ни OneScript, ни bsl ls, ни Снегопата. Пользоваться буду, если он будет выпущен под лицензией, которая позволит мне это делать. И, если он будет пригоден для моих задач, конечно. То, что скриптинг теперь официально актуален, как явление - это очень круто, я рад.
Просто интересно ваше мнение про целевую аудиторию анонсированной разработки? Сейчас она обозначена размыто. Как вы думаете, для каких задач она может быть полезна?
Аудитория как раз обозначена четко: админы парка серверов 1С. Вопрос в том, что админы крупных парков как правило уже владеют мейнстримными скриптовыми языками. Почему они захотят изучить новый инструмент? Что их должно мотивировать? Успех 1скрипт как раз во многом и объясняется тем, что учить ничего было не нужно. И простые 1Сники смогли зайти в сферу автоматизации админства без слома собственных навыков.
Спасибо, что уделили время на наши вопросы!