Информация об изменениях

Сообщение Re: Статья про 1С и вообще про LowCode от 13.09.2022 18:53

Изменено 13.09.2022 18:57 vsb

Re: Статья про 1С и вообще про LowCode
Я считаю, что возможно. Но у автора немного узкий взгляд (ну или у меня широкий).

Вот примерный план, как сделать лоукод убийцу.

Это большое предприятие. Примерно на 10-20 человеколет работы крутых программистов, из разряда тех, кто может написать компилятор и спроектировать яндекс. Думаю, поэтому пока ничего ни у кого не получилось. Но скорей всего когда-нибудь получится.

Платформа должна быть полностью в вебе. IDE в браузере, разрабатываемое приложение в браузере. Весь код должен крутиться в облаке у компании-производителя. Ну сделать опцию селф-хостед для компаний уровня Газпрома, ок.

Надо понимать, что многие компоненты нужно переосмысливать фундаментально. К примеру я считаю, что в мире нет языка программирования, которыйй можно использовать для правильной low code платформы. Нужно писать свой язык программирования, свой транслятор и тд.

Клиентский стек на котором это всё работает: WebAssembly, WebGPU. Это очень молодой, можно сказать зарождающийся стек, к примеру GC для Wasm пока нет, WebGPU за экспериментальными флагами, поэтому будут фоллбеки на JS, Canvas.

Язык программирования должен быть с очень богатой, но в то же время очень простой для использования системой типов. Это реальный challenge. Возможно я ошибаюсь и надо делать его нетипизированным. Но лучше — типизированным.

В языке должен быть синтаксис для XML-like (аналог JSX), SQL-like (аналог PL/SQL), HTTP-like (аналогов не видел). Это фундаментальные технологии, вынесение которых в библиотеки сильно усложняет всё.

Вот пример псевдокода, для демонстрации того, о чём я говорю.

function update_person_info() {
  select person from Person where status = 'PENDING'
  for p in results {
    GET conf.update_person_url/person-info?id=p.id
    p.name = response.name
  }
  return <message>results.count persons updated</message>;
}


Тут сплав фронта и бэкэнда. Это должен быть полностью типизированный код. Часть его выполняется на бэкэнде, часть на фронте. Программист об этом не думает, об этом думает платформа.

Должны быть средства разработки БД, должны быть всякие построители отчётов, экспортов. Доступ к БД должен быть как ORM. Реальная БД должна быть чем-то роде YDB — облачной и распределённой. Бэк должен бесконечно масштабироваться в облаке, ну в 2022 году очевидно нужно использовать kubernetes.

В примере кода выше нет ничего про connection, transactions, HTTP auth. Это не просто так, это то, что должно настраиваться отдельно и для кода работать прозрачно.

Конечно должен быть визуальный построитель UI с современными layouts и тд, тут особо ничего изобретать не надо, посмотреть, как сделано у других и взять хорошие идеи.

И ещё очень важный момент, хотя многим покажется спорным. Должна быть возможность писать код не в тексте, а блок-схемой. Вот то, что я выше написал, должна быть возможность это же делать вазюкая мышкой. Не-программистом это реально проще. И при этом это должно работать бесшовно. Т.е. буквально переключая табы. Хочешь — пиши текст, хочешь — переключился и таскай квадратики.

Это не слишком всё продумано, я до деталей это не продумывал, но вообще мысли мне такие в голову приходили и опыт с lowcode-wannabe платформами у меня есть.
Re: Статья про 1С и вообще про LowCode
Я считаю, что возможно. Но у автора немного узкий взгляд (ну или у меня широкий).

Вот примерный план, как сделать лоукод убийцу.

Это большое предприятие. Примерно на 10-20 человеколет работы крутых программистов, из разряда тех, кто может написать компилятор и спроектировать яндекс. Думаю, поэтому пока ничего ни у кого не получилось. Но скорей всего когда-нибудь получится.

Платформа должна быть полностью в вебе. IDE в браузере, разрабатываемое приложение в браузере. Весь код должен крутиться в облаке у компании-производителя. Ну сделать опцию селф-хостед для компаний уровня Газпрома, ок.

Надо понимать, что многие компоненты нужно переосмысливать фундаментально. К примеру я считаю, что в мире нет языка программирования, которыйй можно использовать для правильной low code платформы. Нужно писать свой язык программирования, свой транслятор и тд.

Клиентский стек на котором это всё работает: WebAssembly, WebGPU. Это очень молодой, можно сказать зарождающийся стек, к примеру GC для Wasm пока нет, WebGPU за экспериментальными флагами, поэтому будут фоллбеки на JS, Canvas.

Язык программирования должен быть с очень богатой, но в то же время очень простой для использования системой типов. Это реальный challenge. Возможно я ошибаюсь и надо делать его нетипизированным. Но лучше — типизированным.

В языке должен быть синтаксис для XML-like (аналог JSX), SQL-like (аналог PL/SQL), HTTP-like (аналогов не видел). Это фундаментальные технологии, вынесение которых в библиотеки сильно усложняет всё.

Вот пример псевдокода, для демонстрации того, о чём я говорю.

function update_person_info() {
  select person from Person where status = 'PENDING'
  for p in results {
    GET conf.update_person_url/person-info?id=p.id
    p.name = response.name
  }
  return <message>results.count persons updated</message>;
}


Тут сплав фронта и бэкэнда. Это должен быть полностью типизированный код. Часть его выполняется на бэкэнде, часть на фронте. Программист об этом не думает, об этом думает платформа.

Должны быть средства разработки БД, должны быть всякие построители отчётов, экспортов. Доступ к БД должен быть как ORM. Реальная БД должна быть чем-то роде YDB — облачной и распределённой. Бэк должен бесконечно масштабироваться в облаке, ну в 2022 году очевидно нужно использовать kubernetes.

В примере кода выше нет ничего про connection, transactions, HTTP auth. Это не просто так, это то, что должно настраиваться отдельно и для кода работать прозрачно.

Конечно должен быть визуальный построитель UI с современными layouts и тд, тут особо ничего изобретать не надо, посмотреть, как сделано у других и взять хорошие идеи.

И ещё очень важный момент, хотя многим покажется спорным. Должна быть возможность писать код не в тексте, а блок-схемой. Вот то, что я выше написал, должна быть возможность это же делать вазюкая мышкой. Не-программистом это реально проще. И при этом это должно работать бесшовно. Т.е. буквально переключая табы. Хочешь — пиши текст, хочешь — переключился и таскай квадратики.

Конечно должна быть отличная IDE. К примеру в коде выше должно быть полностью рабочее автодополнение как по полям БД, так и по полям в ответе HTTP, который типизируется через OpenAPI или описанием структур запроса/ответа где-то рядом с кодом (к примеру сделали несколько запросов, получили несколько ответов, платформа распознала шаблоны и сгенерировала схему, мы её подправили).

Это не слишком всё продумано, я до деталей это не продумывал, но вообще мысли мне такие в голову приходили и опыт с lowcode-wannabe платформами у меня есть.