LINUX.ORG.RU

lsFusion 4

 


0

1

Вышел новый релиз одной из очень немногих бесплатных открытых высокоуровневых (уровня ERP) платформ разработки информационных систем lsFusion. Основной акцент в новой четвертой версии был сделан на логику представлений — пользовательский интерфейс и все что с ним связано.

Так, в четвертой версии появились:

  • Новые представления списков объектов:
    • Группировочные (аналитические) представления, в которых пользователь сам может группировать данные и вычислять различные агрегирующие функции для этих групп. Для представления результата в свою очередь поддерживаются:
      • Сводные таблицы, с возможностью упорядочивания, клиентской фильтрации, выгрузки в Excel.
      • Графики и диаграммы (столбчатые, круговые, точечные, плоскостные и т.д.)
    • Карта и календарь.
    • Кастомизируемые представления, при помощи которых разработчик может подключать любые javascript библиотеки для отображения данных.
  • Темная тема и вообще практически полностью новый дизайн
  • OAuth-аутентификация и саморегистрация
  • Обратная интернационализация
  • Переходы по ссылке
  • Групповые изменения данных «одним запросом»
  • Вычисляемые заголовки контейнеров и форм
  • Полноэкранный режим в веб
  • Ручное обновление представлений списков объектов
  • Выполнение HTTP-запросов на клиенте
  • Расширение форм в контексте вызова
  • Существенная оптимизация работы с DOM

>>> Подробности

Не хочу сказать, что эра ERP-решений уже прошла. Но она уже не так популярна и денежна. Мне понравился ваш цикл статей на Хабре - он вызвал дискуссия. Заинтересовало. Скачал, посмотрел и отставил в сторонку (как впрочем и Cuba) - чего то революционного не нашел. Очередной «наш взгляд на проблему». Не люблю OpenSource ERP-системы написанные на Java. Или нейтив языки как С++/Go или скриптовые языки - Python/Js и т.д.

anonymous ()
Ответ на: комментарий от anonymous

Не хочу сказать, что эра ERP-решений уже прошла. Но она уже не так популярна и денежна

Ну по личному опыту я бы не сказал. Сейчас как раз когда пыль маркетинга и иллюзии best-practice исчезли, этот рынок стал куда более зрелым и требовательным. А учитывая что в в условиях постоянно меняющихся бизнес-требований и растущей глубины автоматизации (у крупных компаний) технический долг при несовершенных низкоуровневых инструментах разработки растет очень быстро и также быстро упираются в потолок, то как раз gap для более совершенных инструментов достаточно большой. Например, мы сейчас в Беларуси на lsFusion таким образом получили в клиенты почти половину крупных розничных сетей (а знаю ситуацию в остальных с Delphi + Oracle / MS SQL, иногда 1C и т.п. это вопрос времени когда они поймут, что уперлись в потолок). Хотя не спорю рынок инертный и тяжелый. Но как говорилось в Firefly «that what makes us special» :)

Скачал, посмотрел и отставил в сторонку (как впрочем и Cuba) - чего то революционного не нашел. Очередной «наш взгляд на проблему».

CUBA это достаточно обычный ORM императивный фреймворк с небольшим обвесом, где-то на уровне Odoo / .Net. То есть если брать по декларативности / производительности будет что-то вроде:

Spring - Cuba/Odoo/.Net — ERP платформы (SAP, 1С) / 4GL (Foxpro) — lsFusion

Не люблю OpenSource ERP-системы написанные на Java. Или нейтив языки как С++/Go или скриптовые языки - Python/Js и т.д.

Строго говоря lsFusion это как раз скриптовый язык, просто поверх JVM работает, соответственно можно тем же мавеном в одну строку легко любые Java-библиотеки подключать (скажем СЛАУ которым так 1С гордится). То есть ERP-система не на Java написана. Хотя на C++ ERP-система это вообще что-то странное, так как в ERP-системах самое главное быстрая и дешевая разработка / доработка, а C++ все же слишком низкоуровневый язык.

NitroJunkie ()
Ответ на: комментарий от amm

Чем вы разработчиков заманиваете? Использование такой платформы сильно мозги выворачивает и сужает в итоге рынок труда.

Смотрите какая штука. Мозги она выворачивает, только если они изначально вывернуты архитектурой ноймана (control flow’ом, памятью / переменными и вот этим вот всем), и не ввернуты назад функциональщиной. Если человек изначально не занимался серьезно программированием, то парадигма базовых вещей в lsFusion проще, в том плане, что функции и их композицию он и так знает (со школы), простые события это обычная причинно-следственная связь, группировка и формы объясняются на примерах, и все человек продакшн ready (никаких мозговывертов из запросов, управляемых блокировок, реквизитформывзначение и прочей всякой извращенной асинхронности ему знать не надо, при этом все масштабируемо из коробки). Ну а с более сложными вещам вроде разбиений, рекурсий человек разбирается уже походу (то есть платформа отлично изучается от простых вещей к сложным). Соотвественно отвечая на ваш вопрос про заманивание:

Для наших проектов:

  1. Как я уже сказал люди без опыта ИТ или около ИТ опытом (администраторы). Это как минимум простой способ сделать первый шаг в ИТ, ну и лучше подходит для людей которым нравятся бизнес-приложения и общение с людьми (да такие есть)
  2. Разработчики других высокоуровневых платформ вроде 1С и ПХП. Сейчас на lsFusion в основном проекты для крупных клиентов, с большим объемом данных, сложными задачами и вот этим всем. То есть челендж, стабильность и больше денег.

Для внешних разработчиков

  1. Перфекционисты, так как по сути lsFusion это такая функциональщина и реактивность в абсолюте.
  2. Инноваторы, тем кому нравится когда сильно не как все.
  3. Опен-сорсеры, фанаты когда все должно быть опен-сорс, а lsFusion практически единственная опен-сорс платформа такого высокого уровня (то есть таким уровнем декларативности и например со встроенными планировщиком, политикой безопасности, интерпретатором, и вот этим вот всем).

Ну и есть естественно смеси всех этих кейсов.

К слову узость рынка труда не всегда минус, так как более редкий специалист иногда куда более ценный (так например не знаю как сейчас, а раньше САПеры часто ценились выше 1Сцев, аналогично с КОБОЛом и эрлангом вроде есть перекосы). На lsFusion знаю почти все Сколково работает, там весьма уникальный проект и они (или их подрядчик) под него спецов на lsFusion искали / ищут. Как понимаете, такой дефицит может быть быть выгоден разработчику.

NitroJunkie ()
Ответ на: комментарий от anonymous

Вот тут основные примеры и how-to по отдельным кейсам:

https://ru-documentation.lsfusion.org/pages/viewpage.action?pageId=2228236

Вот тут карта абстракций и чистая документация:

https://ru-documentation.lsfusion.org/pages/viewpage.action?pageId=5472299

Там единственное ссылки могут вести на английскую версию, confluence это какой-то пипец, поэтому в ближайшее время будем переезжать на Markdown + Docusaurus или Github pages, пофиксим эти ссылки (не только из-за дебильности confluence, а для нормальной версионности, плюс пулл реквестов по документации).

NitroJunkie ()
Ответ на: комментарий от shkolnick-kun

Исходники ERP открыты…

У lsFusion ERP коммерческая лицензия (хоть и открытый исходный код). Под Apache лицензией есть решение MyCompany.

Зарабатываем на продаже лицензий lsFusion ERP, доработке, разработке с нуля на платформе lsFusion, поддержке.

CrushBy ()
Ответ на: комментарий от shkolnick-kun

Вы бы хоть EULA в репу на видное место положили, а то ведь даже не понятно, что там с лицензией…

Да, мы думали какую-нибудь засунуть. Но вроде как необязательно это делать, так как исходники ERP просто для ознакомления (хоть там и нет никакой защиты от использования) :

From GitHub’s licensing help page: You’re under no obligation to choose a license. However, without a license, the default copyright laws apply, meaning that you retain all rights to your source code and no one may reproduce, distribute, or create derivative works from your work.

CrushBy ()
Ответ на: комментарий от vvn_black

Что это такое, наверное что-то серьёзное, если заслужило отдельного упоминания?

Там ссылка на статью есть, где есть более подробное описание. Там на самом деле много вариантов аутентификаций был добавлено (например ещп в URL’е, в Header’ах через basic и токен аутентификацию и т.п.), непонятно как объединить было в пункт, чтобы не слишком абстрактно было и понятно о чем речь, поэтому выделили пару конкретных кейсов.

NitroJunkie ()
Ответ на: комментарий от NitroJunkie

Получается, целевая аудитория неискушенные начинающие разработчики и «эффективные» ИТ-менеджеры? То есть люди, которые с непосредственно с программированием мало связаны.

Про внешних разработчиков совсем не убедительно. Трудно представить человека, который разбирается в современной индустрии разработки (.Net, Python, Java и т.д) и который добровольно согласится перейти на данную платформу. Но с 1С и SAP вполне можете конкурировать, решение использовать подобные продукты в первую очередь политическое, не технологическое.

Кстати, еще с хабра было интересно, как правильно читается?

$ echo lsFusion | tr '[:upper:]' '[:lower:]'
lsfusion

LSFUSION? Camel-style в названии?

amm ()
Ответ на: комментарий от CrushBy

Кстати, на эту тему мы целую статью написали : https://habr.com/ru/company/lsfusion/blog/471378/

Читал. Картинка про паралимпиаду понравилась. Но не понял, почему языки Java, .Net и Python более низкоуровневые чем языки бизнес-платформы?

amm ()
Ответ на: комментарий от amm

Получается, целевая аудитория неискушенные начинающие разработчики и «эффективные» ИТ-менеджеры? То есть люди, которые с непосредственно с программированием мало связаны.

«Эффективные» ИТ-менеджеры это по вашему разработчики скажем SAP, 1С, Delphi, PHP и т.п.? Или в смысле вы считаете, что прикладные программисты, в отличии от системных не программисты вообще? Попахивает снобизмом. У меня например очень хороший и математический и программисткий бэкграунд (олимпиады, десятки использованных языков, разработка парсеров, моделей булевой логики, даже 3д движками занимался), но я одновременно люблю и низкоуровневые языки (аля Java, C++), и высокоуровневые (аля SQL). Но это всего лишь инструменты. Программирование это про нечто большее - видеть как работают вещи, и заставлять их работать правильно.

Про внешних разработчиков совсем не убедительно. Трудно представить человека, который разбирается в современной индустрии разработки (.Net, Python, Java и т.д) и который добровольно согласится перейти на данную платформу

Помню застал период, когда с «файл-серверных» технологий переходили на SQL. Та же риторика была, но ничего все перешли и сейчас SQL стандарт в отрасли. А еще раньше тоже самое было при переходе с C++ на Java / .Net, а еще раньше с C на C++, а еще раньше с ассемблера на C. Повышение уровня абстрагирования всегда вызывало приступы луддизма (и не только в программировании), но как говорится «се ля ви».

Не, camel-style там из-за фонта скорее получился. Обычно либо lsFusion либо lsfusion используется.

NitroJunkie ()
Ответ на: комментарий от amm

Но не понял, почему языки Java, .Net и Python более низкоуровневые чем языки бизнес-платформы?

Ну именно как языках в них оперируют куда более низкоуровневые абстракциями (скажем полями, переменными, процедурами / методами, классами и еще несколькими абстракциями приблизительно такого же уровня). А языки более высокого уровня имеют в языке в том числе более высокоуровневые абстракции (события, агрегации, формы, более высокоуровневые операторы - группировки, примитивные рекурсии и т.п.).

NitroJunkie ()
Ответ на: комментарий от NitroJunkie

SAP, 1С, Delphi, PHP и т.п.

низкоуровневые языки (аля Java, C++), и высокоуровневые (аля SQL)

Какая-то у вас градация языков странная. Значит, ABAP, 1С, Delphi, PHP это прикладные высокоуровневые языки, а C#, Python и Java низкоуровневые, чуть ли не системные. Вообще ничего не понимаю. Вы знакомы с текущим состоянием C#? Какие прикладные задачи на нем нельзя решить?

SQL в этом ряду странно видеть. Это язык запросов, и он решает ровно одну задачу – задачу выборки данных. Хорошо хоть XML и JSON не стали с C++ сравнивать.

amm ()
Последнее исправление: amm (всего исправлений: 1)
Ответ на: комментарий от NitroJunkie

А языки более высокого уровня имеют в языке в том числе более высокоуровневые абстракции (события, агрегации, формы, более высокоуровневые операторы - группировки, примитивные рекурсии и т.п.).

Приведите, пожалуйста, пример, какие задачи вы этими абстракциями решаете.

amm ()
Ответ на: комментарий от NitroJunkie

«Эффективные» ИТ-менеджеры это по вашему разработчики скажем SAP, 1С, Delphi, PHP и т.п.?

Нет, это высокопоставленные работники, которые принимают решение об использовании подобных «бизнес»-продуктов. Техническая составляющая – это последнее, чем они руководствуются.

amm ()
Ответ на: комментарий от amm

Какая-то у вас градация языков странная. Значит, ABAP, 1С, Delphi, PHP это прикладные высокоуровневые языки, а C#, Python и Java низкоуровневые, чуть ли не системные. Вообще ничего не понимаю. Вы знакомы с текущим состоянием C#? Какие прикладные задачи на нем нельзя решить?

C# согласен с тем же LINQ начал двигаться в сторону более высокоуровневых языков, и в целом разделение на высокоуровневые / низкоуровневые языки естественно весьма условно. Хотя да я погорячился, все же правильнее такое разделение:

ASM - C - C++ - Java / Python / Delphi - C# – 1C – Foxpro – ABAP – lsFusion.

– SQL в этом ряду странно видеть. Это язык запросов, и он решает ровно одну задачу – задачу выборки данных

Не только выборки, а еще вычисления, хранения (добавления / изменения) данных (то есть одной из основных задач в программировании). Собственно да, у него логики представления нет (ну точнее она ультра примитивная и нерасширяемая), но это самый настоящий язык программирования. Никогда не сталкивались с ситуацией когда написали бОльшую часть бизнес-логики на ORM (условном Java, C#, Python), все оказалось не масштабируемым / производительным и переписали все на SQL? То есть раз такой выбор есть почему вдруг их нельзя в один ряд ставить (кстати SQL тьюринг полный язык). И да HTML, JSX в реакте это тоже языки программирования (но как раз логики представлений, а не предметной области).

NitroJunkie ()
Ответ на: комментарий от amm

Приведите, пожалуйста, пример, какие задачи вы этими абстракциями решаете.

Те же что и другие языки, как в системном, так и в прикладном программировании. Вычисление данных (высокоуровневые операторы), обеспечение целостности данных (ограничения / события), декомпозиция / модульность (события / агрегации / расширения), control flow / причинно-следственные связи (события), отображение данных пользователю / экспорт в различные форматы (формы) и т.п.

NitroJunkie ()
Ответ на: комментарий от amm

Нет, это высокопоставленные работники, которые принимают решение об использовании подобных «бизнес»-продуктов. Техническая составляющая – это последнее, чем они руководствуются.

Что-то я запутался, разработчики SAP, 1C, Delphi, PHP не принимают решения об использовании бизнес-продуктов. Решения принимают ИТ-директора (часто не разработчики) и даже просто директора (по своим каким-то критерия). Да естественно иногда разработчики влияют на принятия этих решений (также как и в условных гуглах они влияют на то на чем будут писать тот или иной сервис на C++ / Java или Python’е) но в целом эта связь не прямая. И все люди при принятии решений руководствуются технической составляющей - насколько инструмент подходит под задачу, и насколько он позволяет быстро, надежно и дешево ее рещать. Или я неправильно понял вашу мысль?

NitroJunkie ()
Ответ на: комментарий от shkolnick-kun

Что-то я не пойму, на чем эти милые люди денежку зарабатывают

Во-первых «трещат» везде как у них все круто и вся Беларусь на колени упала …
На https://forum.mista.ru/ они тредов создали больше чем @metaprog.
В тредах БРЕД НА БРЕДЕ И БРЕДОМ ПОГОНЯЕТ.

Что касаемо их проекта, то идеи в общем то какие-то есть и они думают, что их «новация» является много лучше чем 1С.
Кстати из ругани на https://forum.mista.ru/ было понятно, что 1С не знают СОВСЕМ, но спорились месяца три.
У них есть свой язык, который предопределяет разработку некоего класса алгоритмов.
При этом они говорят, что можно использовать java код и библиотеки.
В архитектуре их языка поразбираюсь не много, а в целом для меня например их проект не приемлем.
В 1С много недостатков, но порог вхождения в нее прост и действительно новичек может произвести разработку.
В этом проекте все vs, хотя они уверяют, что все просто как слеза.

PS: Если время не куда девать, то тред полезен.

Владимир

anonymous ()
Ответ на: комментарий от anonymous

В тредах БРЕД НА БРЕДЕ И БРЕДОМ ПОГОНЯЕТ.

Полностью согласен. Вообще, местные 1С-программисты там живут в каком-то своем узком маленьком мирке, в котором даже Git является никому не нужным и бесполезным ругательством.

Но в целом странно увидеть защитника проприетарной 1С, у которой даже документация платная, на форуме, посвященном Линуксу. Практически все инсталляции lsFusion у нас на CentOS / PostgreSQL. У многих пользователей Ubuntu стоит, а большинство 1Совцев от линукса бегут как от огня.

Там даже интеграцию с Честным знаком делают через COM-объекты. На вопрос, как это все должно под Linux работать - тишина…

CrushBy ()
Ответ на: комментарий от NitroJunkie

ASM - C - C++ - Java / Python / Delphi - C# – 1C – Foxpro – ABAP – lsFusion.

Так. А с Python вы знакомы? Знаете например такую библиотеку как pandas?

1С и ABAP выше по уровню чем C# и Python? Хочу видеть задачу за пределами бухгалтерской отчетности, которая проще решается на 1С и ABAP.

Не только выборки, а еще вычисления, хранения (добавления / изменения) данных

От вычислений на SQL плакать хочется, добавление и изменение данных легко оборачивается языковыми конструкциями в любом современном языке. Основная функция – выборка данных, которую сложно заменить, потому что под ней хорошая теоретическая база и потому что стандарт.

Никогда не сталкивались с ситуацией когда написали бОльшую часть бизнес-логики на ORM (условном Java, C#, Python), все оказалось не масштабируемым / производительным и переписали все на SQL?

Не сталкивался, потому что стараюсь работу с данными (выборку) в переделах SQL максимально переложить на базу. А с обратной ситуацией сталкивался, когда оптимизатор не справлялся с большими запросами, и перенос части логики в приложение увеличивал скорость работы на порядок.

amm ()
Ответ на: комментарий от CrushBy

На вопрос, как это все должно под Linux работать - тишина…

Поясню/проясню не много.
Хочу ли того или нет, но моя селяви такова, что зарплату получаю за разработку конфигураций для 1С.
Что касаемо 1С, то не являюсь ее фанатом, а отношусь к ней как разработчик.
Разработчики 1С иногда хорошие идеи нарабатывают в платформе.

Насчет работы кода в Linux.
А-ля 1С не разрабатываю, но волей не волей API предоставляет функциональность, позволяющую вести rapid разработку.
API не привязано ни к Windows ни к Linux и будет функционировать даже в MSDOS.

Есть правда мысль разработать а-ля 1С, но не для конкуренции с 1С, а с целью отладки алгоритмов.

PS: Шас спою!
У меня mxl 1С 7.7 «по полной» можно использовать в 1С 8.x, хотя фирма mxl 1С 7.7 в восьмерке не поддержала /и в GO, PHP, … можно/.

Зачем?

Легко догадаться …

Владимир

anonymous ()
Ответ на: комментарий от anonymous

В тредах БРЕД НА БРЕДЕ И БРЕДОМ ПОГОНЯЕТ.

А что вы хотели, «Это Миста» (в хорошем и плохом смысле слова).

было понятно, что 1С не знают СОВСЕМ, но спорились месяца три.

Вот это забавно. https://habr.com/ru/company/lsfusion/blog/468415/

Тут часть 1Сков говорила, да все так и есть. Вторая часть говорила, вы просто ничего не знаете и автор не разобрался. На вопрос, в чем именно не разобрался и что именно неправильно, ответы были в стиле «ой, все» или «все не так просто» (и это они говорят человеку у которого и академический и практический опыт гораздо больше чем у них). При этом «порог вхождения в нее прост и действительно новичек может произвести разработку». Как у людей в голове уживаются эти 2 мысли - загадка.

ЗЫ: Особенно просты управляемые блокировки (считай семафоры), всякие выверты вроде РеквизитыФормыВЗначение, отсутствие синхронности, директивы компилятора &НаСервереБезКонтекста, &НаКлиенте и т.д. и т.п. Но «действительно новичек может произвести разработку». Серьезно?

NitroJunkie ()
Ответ на: комментарий от NitroJunkie

Вычисление данных (высокоуровневые операторы), обеспечение целостности данных (ограничения / события), декомпозиция / модульность (события / агрегации / расширения), control flow / причинно-следственные связи (события), отображение данных пользователю / экспорт в различные форматы (формы) и т.п.

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

amm ()
Ответ на: комментарий от NitroJunkie

ЗЫ: Особенно просты управляемые блокировки (считай семафоры), всякие выверты вроде РеквизитыФормыВЗначение, отсутствие синхронности, директивы компилятора &НаСервереБезКонтекста, &НаКлиенте и т.д. и т.п. Но «действительно новичек может произвести разработку». Серьезно?

Вот в этих вопросах с вами согласен.
Ныне 1С стала похоже на СУПЕР TSQL, который используется в СУПЕР HTML /управляющие формы/.
ИМХО 1С нагородила БУЗИНУ.

Владимир

anonymous ()
Ответ на: комментарий от amm

Так. А с Python вы знакомы? Знаете например такую библиотеку как pandas?

Причем тут библиотеки? Они и под C есть, сейчас речь больше о самих языках и их абстракциях идет. То есть чисто гипотетически можно было и lsFusion как библиотеку оформить, но языки позволяют многие вещи сделать проще и выразительнее (типа того же JSX в реакте).

1С и ABAP выше по уровню чем C# и Python? Хочу видеть задачу за пределами бухгалтерской отчетности, которая проще решается на 1С и ABAP.

Вы путаете немного. На высокоуровневом языке круг задач УЖЕ, но в рамках этого круга задачи решаются БЫСТРЕЕ и ЭФФЕКТИВНЕЕ. Идеальный вариант конечно как в lsFusion, когда можно быть на высоком уровне, но если надо спуститься на уровень Java.

От вычислений на SQL плакать хочется, добавление и изменение данных легко оборачивается языковыми конструкциями в любом современном языке. Основная функция – выборка данных, которую сложно заменить, потому что под ней хорошая теоретическая база и потому что стандарт.

Тогда почему NoSQL так и не потеснил SQL? Собственно потому что ту же группировку на SQL сделать проще и гораздо производительнее. Про теоретическую базу забавно, потому как 99% процентов разработчиков SQL ее не знает. И стандартом он не был сначала, а стал потом потому как именно давал преимущества быстрой и эффективной разработки производительных и масштабируемых систем.

Не сталкивался, потому что стараюсь работу с данными (выборку) в переделах SQL максимально переложить на базу. А с обратной ситуацией сталкивался, когда оптимизатор не справлялся с большими запросами, и перенос части логики в приложение увеличивал скорость работы на порядок.

Ну о том и речь, по факту это всегда выбор ORM (классические языки) vs SQL. То ест в области работы с данными это прямые конкуренты.

NitroJunkie ()
Ответ на: комментарий от anonymous

Вот в этих вопросах с вами согласен.

Так это основные вопросы в мало мальски сложных проектах

Ныне 1С стала похоже на СУПЕР TSQL, который используется в СУПЕР HTML /управляющие формы/. ИМХО 1С нагородила БУЗИНУ.

Ныне как раз 1С стала похоже на недо.Net. Это как раз lsFusion СУПЕР TSQL где можно написать MATERIALIZED или CONSTRAINT balance(sku, stock) < 0, а дальше все само.

В 1С разработчику сейчас все руками («управляемо») делать (и понимать как это работает) приходится. Только как это соотносится с «но порог вхождения в нее прост и действительно новичек может произвести разработку»?

NitroJunkie ()
Ответ на: комментарий от Im_not_a_robot

Платформа прикладного программирования (разработки информационных систем) существенно превосходящая все существующие по уровню декларативности, а значит скорости, простоте разработке, производительности и т.п.

NitroJunkie ()
Ответ на: комментарий от NitroJunkie

Что-то я запутался, разработчики SAP, 1C, Delphi, PHP не принимают решения об использовании бизнес-продуктов

Да, я не совсем ясно выразился. У вас две целевые группы, которые можно завлечь. Первая – начинающие разработчики, которые не в индустрии, и которым без разницы с чего начинать. Эти будут копаться в собственной песочнице, и никому мешать не будут. Вторая – ИТ-менеджеры, которые мало разбираются в современных тенденциях, и которым можно в уши залить что угодно. После принятия решения о внедрении такого продукта, штатные разработчики будут уже работать с ним по разнарядке.

И все люди при принятии решений руководствуются технической составляющей - насколько инструмент подходит под задачу, и насколько он позволяет быстро, надежно и дешево ее рещать.

Проходили и не раз. Начальное решение накликивается мышкой за несколько дней, все рады, повсюду царит эйфория. Похмелье наступает потом, когда приходится все это развивать и сопровождать: инструментальная поддержка слабая, птичий язык не такой уж и выразительный и имеет кучу косяков, за лицензии надо деньги регулярно платить (хотя, как я понял, это не ваш случай), специалистов по данной системе днем с огнем не сыщешь. И зачем все это надо, если есть .Net и Java с кучей популярных и бесплатных фреймворков и библиотек?

amm ()
Ответ на: комментарий от anonymous

Ныне 1С стала похоже на СУПЕР TSQL, который используется в СУПЕР HTML /управляющие формы/.

Но да ничего.
Вместо 1С-ких объектов использую свои, mxl дорабатываю, чтобы он стал неплохим reporting.
То бишь а-ля FastReport, …
Разрабатываем шаблон, а остальное все run-time делает за нас.

N-лет назад разработал reporting, который позволял часа за четыре разработать пару СЛОЖНЫХ отчетов.
К примеру мог из другого отчета скопипастить какие то итоговые строки.
При этом reporting на автомате шаблон перестраивал таким образом, чтобы все было опрятно.
Фич супер удобных было МНОГО!

Эээээ - ПЕСНЯ.
Вот эту «песню» ныне и перевожу на «новые рельсы».
Конечно без привязки к 1С.

PS: Это вам ответ на то как в 1С некоторые пишут код. А можно и по другому, но

Мне туда НЕ НАДО!

Кстати mxl интересен, но «не ахти».
Потом переведу все на иной формат.

Нельзя объять не объятное

Владимир

anonymous ()
Ответ на: комментарий от NitroJunkie

Только как это соотносится с «но порог вхождения в нее прост и действительно новичек может произвести разработку»?

Ныне в 1С и «бузины» и хорошего много.
Если «бузину» не использовать, то не сложно в остальном разобраться и вести разработку.

Владимир

anonymous ()
Ответ на: комментарий от NitroJunkie

Вы путаете немного. На высокоуровневом языке круг задач УЖЕ, но в рамках этого круга задачи решаются БЫСТРЕЕ и ЭФФЕКТИВНЕЕ. Идеальный вариант конечно как в lsFusion, когда можно быть на высоком уровне, но если надо спуститься на уровень Java.

Какие конкретные задачи 1С и ABAP решат более эффективно чем C# и Python? Нет таких.

Про теоретическую базу забавно, потому как 99% процентов разработчиков SQL ее не знает.

Главное, чтобы про нее знали разработчики РСУБД.

Тогда почему NoSQL так и не потеснил SQL?

Во многих РСУБД уже давно есть элементы NoSQL (например, jsonb в Postgres, не удивлюсь, если его в следующий стандарт протащат). Чистая же NoSQL база – это слишком специализированное решение.

amm ()
Ответ на: комментарий от NitroJunkie

Но скажем в lsFusion нужно написать CONSTRAINT balance(sku,stock) < 0. А в других парадигмах все это делать вручную.

Как узнать где и когда это все отработает? Знаете, что явное почти всегда лучше неявного? Декларативность часто нарушает этот принцип.

if (balance(sku, stock) < 0) {
    throw new NegativeBalanceException();
}

Куда этот код вставить уже зависит от архитектуры системы. Если так любите событийную модель, возьмите очередь сообщений и Rx (Reactive Extensions) для вашего любимого языка.

amm ()
Ответ на: комментарий от amm

Вторая – ИТ-менеджеры, которые мало разбираются в современных тенденциях, и которым можно в уши залить что угодно. После принятия решения о внедрении такого продукта, штатные разработчики будут уже работать с ним по разнарядке.

Как раз нам гораздо удобнее работать с ИТ-менеджерами хорошо разбирающимеся в современных тенденциях, так как они лучше понимают разницу между NoSQL и SQL, C# - 1C - ABAP, и хорошо понимают боль того же технического долга, который возникает при разработке сложных решений. Но и перфекционистов, инноваторов и опенсорсеров тоже забывать не стоит. Ну и просто тех кто не хочет быть 1001 1Ском. Как говорится, лучше быть первым парнем на деревне, чем второй девушкой в стриптиз клубе. :)

Начальное решение накликивается мышкой за несколько дней, все рады, повсюду царит эйфория. Похмелье наступает потом, когда приходится все это развивать и сопровождать: инструментальная поддержка слабая, птичий язык не такой уж и выразительный и имеет кучу косяков, за лицензии надо деньги регулярно платить (хотя, как я понял, это не ваш случай), специалистов по данной системе днем с огнем не сыщешь

Как раз lsFusion это не совсем про RAD, его фишка как раз в сложных решениях, где требования меняются очень часто и быстро, где огромные объемы и нужна максимальная производительность, где нужно повторно использовать целые модули (составляя из них готовые решения как из блоков, но при этом иметь возможность создавать много специфичных для заказчика модулей), где ограничены бюджеты (то есть вы не можете нанять с десяток низкоуровневых программистов, которые будут руками делать ограничения, материализации, рисовать и обновлять формы и т.п.)

инструментальная поддержка слабая

Ну она точно не хуже чем .Net, где скажем планировщиков, политики безопасности, интерпретаторов, почты и т.п. (все с графическими интерфейсами интегрированными друг с другом и всей системой) прямо из коробки (!) и нет. Ну и в lsFusion всегда можно бесшовно работать с Java если нужно что-то редкое или узкоспециализированное (там грань тонкая, типа как у jsx реакта с js).

птичий язык не такой уж и выразительный и имеет кучу косяков

Это если он не такой уж и выразительный и имеет кучу косяков.

Проходили и не раз.

А назовите хоть один близкий аналог lsFusion. Чтобы что-то типа такого было ru.lsfusion.org/try вкладка Платформа. Реально интересно.

специалистов по данной системе днем с огнем не сыщешь.И зачем все это надо, если есть .Net и Java с кучей популярных и бесплатных фреймворков и библиотек?

Затем же зачем в свое время появился SQL. Потому что гораздо выше уровень абстрагирования, потому что разработчику практически не надо думать о блокировках, эффективном выполнении запросов, отказоустойчивости, параллелизме и т.п. Все те же аргументы были и тогда против SQL. Но сейчас это стандарт в отрасли. А lsFusion по уровню декларативности это SQL в квадрате.

NitroJunkie ()
Ответ на: комментарий от anonymous

Если «бузину» не использовать, то не сложно в остальном разобраться и вести разработку.

Это как? Не использовать блокировки (но с автоматическими блокировками в том же постгрес все ляжет уже на 3 пользователях), не успользовать УФ, а только ОФ (которые не поддерживаются и не масштабируются и не работают в веб), не использовать асинхронность (но тогда веб не будет нормально работать, да и десктоп), не проталкивать условия в подзапросы (но тогда все ляжет уже через год-два эксплуатации или когда бизнес чуть вырастет) и т.д. и т.п.

Что тогда остается? Бизнесы с 3 пользователями? А нафига им вообще разработчики 1С, им МойСклад будет достаточно.

NitroJunkie ()
Ответ на: комментарий от amm

Какие конкретные задачи 1С и ABAP решат более эффективно чем C# и Python? Нет таких.

Что значит какие конкретные задачи? Большинство тех же бизнес-приложений в основном на тех же ERP платформах. Только не надо про маркетинг, у Майкрософта с этим точно проблем нет. Более того у Майкрософта есть отдельный весьма успешный на западе продукт - Axapta и отдельный язык X++ вроде.

А все потому что у них абстракции более высокоуровневые и разработка на них существенно эффективнее.

Главное, чтобы про нее знали разработчики РСУБД.

А какое мне дело до разработчиков РСУБД? Более того основные вещи там, вроде CBO или работы с транзакциями, к реляционной модели имеют весьма опосредованное отношение.

Во многих РСУБД уже давно есть элементы NoSQL (например, jsonb в Postgres, не удивлюсь, если его в следующий стандарт протащат). Чистая же NoSQL база – это слишком специализированное решение.

Так чистая NoSQL это и есть Java/C#/.Net. То есть фиг с ней с шайтан машиной серверов СУБД, будем выборки, фильтрации, упорядочивания делать сами, блокировки (многопоточность) сами и т.п., то есть все как вы любите. А по факту получается что NoSQL это очень специфичный Ultra Highload.

NitroJunkie ()
Ответ на: комментарий от amm

Как узнать где и когда это все отработает?

В этом и магия, что не надо знать. Платформа сама за всем следит, причем максимально эффективно через инкрементальные вычисления (такого ни одна существующая платформа даже близко не умеет, кроме некоторых СУБД и то в очень частых случаях https://habr.com/ru/company/lsfusion/blog/463095/#matview)

Знаете, что явное почти всегда лучше неявного?

Ага и по этому NoSQL, а в свое время «файл-сервер» вчистую проиграли SQL.

Куда этот код вставить уже зависит от архитектуры системы

Так в этом главный вопрос и заключается, что нет такого места и в итоге получается вот такой треш. https://habr.com/ru/company/lsfusion/blog/468415/#events (в .Net все тоже самое)

Если так любите событийную модель, возьмите очередь сообщений и Rx (Reactive Extensions) для вашего любимого языка.

Причем тут событийная модель. Смысл в том, что вы декларативно определяете как задается остаток, а платформа уже сама думает, какие запросы выполнить, как инкрементально обновить данные, чтобы проверить только то, что изменилось, только для нужных объектов и каким-то образом влияет на остаток. Чем тут очередь сообщений поможет?

То есть делаете вы quantity(InvoiceDetail id) <- quantity(id) * 5 WHERE date(invoice(id)) = currentDate(); а платформа сама определяет для каких объектов надо проверить ограничение (ну и само собой делает это)

NitroJunkie ()
Ответ на: комментарий от NitroJunkie

Как раз нам гораздо удобнее работать с ИТ-менеджерами хорошо разбирающимеся в современных тенденциях, так как они лучше понимают разницу между NoSQL и SQL, C# - 1C - ABAP, и хорошо понимают боль того же технического долга, который возникает при разработке сложных решений. Но и перфекционистов, инноваторов и опенсорсеров тоже забывать не стоит.

Я понимаю, почему внедряют SAP, почему 1C, почему начинают делать собственные продукты на .Net и Java. Причины же внедрения малоизвестных продуктов с альтернативным взглядом на проблемы от меня ускальзывают. :)

птичий язык не такой уж и выразительный и имеет кучу косяков

Это если он не такой уж и выразительный и имеет кучу косяков.

Точно, бывает ситуация, что язык излишне выразителен. :)

А назовите хоть один близкий аналог lsFusion. Чтобы что-то типа такого было ru.lsfusion.org/try вкладка Платформа. Реально интересно.

Я не могу осилить концепцию вашего продукта, поэтому пример не приведу. А так комментарий относился в целом к высокоуровневым продуктам и фреймворкам.

Затем же зачем в свое время появился SQL.

…который появился как язык для пользователей, а в итоге со всем этим приходится работать разработчикам. :)

amm ()