Думаю, сразу нужно разъяснить, особенно для тех, кто не сталкивался с 1С, что она состоит из двух частей. Есть платформа 1С, на которой можно разрабатывать тиражирумые приложения баз данных, или конфигурации. И есть сами коммерческие конфигурации, из-за плохой маркетинговой политики в основном от самой фирмы 1С.
Я никогда не сталкивался со средами разработки, где так же эффективно, как в 1С можно разрабатывать тиражирумые приложения баз данных. Поэтому считаю, что 1С — самое простое и эффективное средство такой разработки.
Но платформа 1С стоит минимум 13.000 рублей, это порядка 200$. Поэтому, к сожалению, на ней нельзя разрабатывать мелкие приложения. 1С не придумала создать магазин приложений, вроде Play Market, куда можно было бы размещать простые недорогие конфигурации. Единственный вариант сделать конфигурацию ценой 1-5000 рублей — это ввязаться в 1С: Совместимо. Но это весьма затратный и бюрократический квест. После прохождения которого ваша конфигурация появится в прайсе 1С.
Понятно, что этот путь не подходит для микро и pet-приложений.
Поэтому возник вопрос — а как разрабатывать подобные приложения так же быстро и эффективно, как в 1С, какой набор инструментов собрать, какими качествами должна обладать среда разработки. Попробуем разобраться в этом вопросе.
Далее альтернативной платформой будем называть платформу, которая будет делать тоже самое, что 1С, но по другому, или Убийцей 1С. При этом мы рассматриваем только альтернативу платформе, т.к. коммерческие конфигурации пишутся большим коллективом программистов и методологом. Например, 1С: Бухгалтерия отслеживает многочисленные изменения законодательства РФ и постоянно обновляется. С этим конкурировать нет смысла.
Кроме того, 1С имеет очень плохие отношения со своими программистами-разработчиками. Создание альтернативной open-source платформы позволило бы сделать позитивное сообщество разработчиков.
Абстракция над реляционной СУБД
1С работает не с таблицами, а с некоторыми абстракциями над таблицами.
Тем не менее, можно строить SQL-подобные запросы по этим абстракциям, как по обычным таблицам.
Есть справочники и документы, которые состоят из таблицы объектов. И каждый объект может иметь несколько таблиц табличных частей.
Например, у объекта Накладная может быть таблица самих накладных, в которой содержится список накладных, и таблица Товары, в которой для каждой накладной содержится список ее товаров с количеством, ценой и суммой.
В коде можно такой объект можно обрабатывать как объект с его реквизитами, добавлять строки в табличную часть, считывать его из базы данных и записывать в базу данных.
Также есть объекты, упрощающие получение итогов, называемые регистры. Это таблицы, для которых на уровне платформы можно получить числовые итоги за период или срез последних значений на заданную дату.
В принципе, такая абстракция не обязательна, на первых этапах ею можно пренебречь.
Поддержка различных СУБД и сервер приложений
1С поддерживает несколько типов СУБД: MS Sql, Postgree, IBM DB2 и даже собственный файловый вариант базы данных.
Альтернативная платформа может тоже поддерживать различные СУБД, за счет того, что работа с базой данных должна быть максимально стандартизирована и формализована. Чтобы код одинаково работал на разных базах данных.
Также нужно определиться, что будет выступать сервером приложений. Обычно это какой-нибудь движок сайта, Apache или IIS, который будет выполнять код на компьютере с базой данных. Или сама база данных, если она умеет выполнять код, отличный от SQL.
Файловый вариант поддерживать, возможно нет смысла, т.к. в нем придется эмулировать сервер приложений и выполнять серверный код на клиенте, что замедлит выполнение кода. Но для простейших приложений может пригодиться.
Составной тип полей
В 1С поле может ссылаться на объекты разных типов. Это упрощает формализацию предметной области. Но альтернатива реализуется довольно просто.
Достаточно иметь таблицу AnyType, в которой указан тип таблицы и ключ объекта в таблице. Тогда для указания нескольких типов поле должно быть описано как значение AnyType и хранить ключ объекта в таблице AnyType.
Метаданные и тиражируемость
Очень большой плюс 1С в том, что конфигурация содержит метаданные своих объектов.
Это позволяет обновлять конфигурации пользователей или создавать базу с нуля по заданной структуре.
В принципе, на первых этапах можно обойтись без метаданных, просто реализовав скрипт по тиражированию базы данных. Чтобы структура базы данных нового релиза выгружалась в XML, а у пользователя старая структура базы данных конвертировалась под эту структуру.
Также наличие метаданных позволяет автоматически генерировать нужное поведение данных в формах. Но это тоже не особо критично.
Простота разработки форм
В большинстве IDE и языка программирование для разработки форм используется ООП, где над базовым классом формы создается класс новой формы и для каждого элемента формы создается своё поле этого класса. Но такой подход не универсален, т.к. не подходит для динамически создаваемых форм, где можно создавать множество элементов управления в зависимости от потребностей приложения.
1С использует другой подход — у нее есть визуальный конструктор, где на форме можно разместить нужные, выбранные из ограниченного набора типов полей, элементы управления. Свои типы элементов добавлять нельзя. Тем не менее, процесс разработки очень удобный.
Вот как выглядит форма записи дневника, например:
При этом нет нужды точно позиционировать элементы управления, для их составления используется порядок и группировка элементов управления в их последовательности. Это выглядит так:
Чтобы максимально упростить разработку форм и альтернативную платформу, все элементы формы должны создаваться программно.
Тогда со временем можно будет написать плеер, который из XML будет создавать форму, и конструктор форм, который будет визуально конструировать форму, а затем сохранять ее в XML. Существуют также уже готовые библиотеки подобного описания форм, можно их использовать.
Для каждого элемента формы должна быть возможность прописать, какому полю базы данных он соответствует. Это позволит автоматизировать заполнение полей при считывании записи данных и запись изменений в полях формы в базу данных при сохранении записи.
Также нужно реализовать поддержку отображения в форме отобранного по условию списка записей. Возможны варианты с прокруткой таких записей или пагинацией. Современному пользователю, конечно, привычнее прокрутка.
Кроме этого, нужно иметь возможность редактировать некоторый отобранный набор записей в таблице. Т.е. сначала эти записи считываются в память, потом редактируются как записи этой таблицы из памяти, а уже потом сохраняются в базу данных. Это нужно для возможности редактирования, например, списка товаров накладной, чтобы добавление строки не приводило сразу к записи в базу данных.
Клиент-серверное выполнение
Не стоит строить альтернативную платформу, которая все данные получает запросы к базе данных, а обрабатывает их на клиенте. Потому что рано или поздно возникнут проблемы производительности и масштабируемости и захочется выполнять серверный код.
В идеале серверный код должен выполняться на том же языке, что и клиентский, с теми же объектами.
Распределение клиентского и серверного кода будет в руках программиста — что выполнять на клиенте, что на сервере.
Некоторые альтернативные платформы, как Фузина, вообще, весь код выполняют на сервере, отрисовывая формы по принципу Remote Desktop. Но тем не менее, предоставляется возможность выполнять код на клиенте, когда требуется работа с клиентским оборудованием.
Коллекции в памяти
Должна быть возможность работы с простыми коллекциями — структурами, списками, массивами. Это очень востребовано в обработке данных.
Также должна быть возможность выгрузить/загрузить отобранные записи в таблицу в/из памяти, чтобы отсортировать, свернуть, отфильтровать или другим образом обработать ее, перебирая по каждой записи. В принципе, можно для этих целей использовать временные таблицы в базе данных, но все же если создавать такую таблицу в памяти, это будет работать быстрее на небольших таблицах.
Простота кода
Код должен быть простым:
Простой синтаксис, а-ля Питон или JS
Отсутствие типизации
Runtime выполнение, а не компиляция.
Отчеты и печатные формы
1С использует свой формат табличных документов MXL. Его особенность в том, что можно выделять несколько строк, у каждой из которых будет собственная ширина колонок:
При сохранении такого документа в Excel делается множество колонок так, чтобы получить нужную ширину колонок в каждой строке, для нашего примера результат выглядит так:
Это позволяет создавать довольно сложные печатные формы:
И выводить достаточно гибкие отчеты:
Из примеров видно, что в такую печатную форму можно выводить картинки, использовать разные цвета, стили шрифтов и рамок, использовать объединенные ячейки.
В принципе, использование строк с разной шириной колонок не обязательно, можно использовать стандартную сетку, как в Excel, тогда печатные будут менее гибкие и придется делать мелкую сетку, чтобы объединять нужные ячейки:
Также желательно, чтобы можно было в печатном документе выделять, чтобы копировать нужные участки из макета в результирующий отчет, вот пример именованных секций (имена слева от таблицы-сетки):
Простота установки IDE и совместимость конфигураций
Я имел опыт установки Microsoft Visual Studio, где нужно установить множество галочек, выбрать необходимые библиотеки. Мне был нужен только C#, но этот квест показался достаточно сложным.
Если для платформы использовать MVC, то, наверное, нужен специальный инсталлятор, который за пользователя установит эту оболочку с нужными опциями.
Как-то через пару лет я открыл старый проект C#, открыл его в заново установленной Visual Studio и он отказался компилироваться. Причина была в том, что на компьютере не было нужной версии Net Framework. В 1С такого не бывает — там полная обратная совместимость.
Резюмируя:
IDE должна устанавливаться с минимумом опций.
Старые конфигурации должны поддерживаться в новых версиях IDE.
Необходимые базы данных и сервера приложений тоже должны ставиться из дистрибутива. Можно использовать базы данных на хостингах в интернете, чтобы не разворачивать их самому.
Список для разработки
Резюмируя описанное, для разработки альтернативной платформы понадобится:
Выбрать одну СУБД для начала, например MySQL. Базы на ней можно даже не устанавливать, а использовать готовые на хостинге.
Выбрать сервер приложений
Выбрать язык и его среду-исполнителя. Причем на сервере и на клиенте. Желательно, чтобы это был простой, динамически интерпретируемый нетипизированный язык на сервере и клиенте.
Выбрать библиотеку для динамического отображения форм. Включая отображение записи, набора записей в базе и набора записей в памяти.
Написать скрипт по тиражированию структуры БД.
Комментарии (293)
lair
09.09.2022 22:06+10… а вы не задумывались, почему же 1С за свою платформу берет деньги?
MarksMan09
10.09.2022 01:01+6Вы про первый взнос за основную поставку или потом в виде подписки, которая все время растет в цене, притом что качество конфигураций падает ну и плюс поборы за доп.сервисы? Наверное потому что монополист и может ...
lair
10.09.2022 01:21+4Наверное потому что монополист и может ...
А если бы не была монополистом, то не брала бы денег?
Goron_Dekar
10.09.2022 08:44+7Не брала бы. Потому, что с таким подходом при существовании конкурентов исчезла бы.
lair
10.09.2022 14:56+7Гм, а на что тогда должна существовать компания, которая не берет денег за свой продукт?
PavelSandovin
10.09.2022 21:55На средства благотворительного фонда, обычно в таком режиме работают не компании, а проекты типа Debian. Но зачем, когда можно зарабатывать? )))
lair
10.09.2022 21:57+3А благотворительному фонду зачем вкладываться в продукт, основное назначение которого — поддерживать бизнес?
PavelSandovin
11.09.2022 12:46Ну, например, чтобы помочь бедным странам Африки и латинской Америки.
lair
11.09.2022 14:06Мне кажется, в этом случае выгоднее покупать готовый продукт, а не вкладываться в разработку нового.
MarksMan09
10.09.2022 10:41+1Хотите получить ответ на свой вопрос, не ответив на мой? - для 1С кстати очень типично ... :) Наверное тогда ей пришлось бы напрягаться, и качество продукта братьев за эти деньги было другое ... но ... - "Запомните, джентльмены: эту страну погубит коррупция." © Человек с бульвара Капуцинов
Впрочем, очень много проектов оставляют продукт 1С как необходимое зло по ведению бухучета(ПБУ и штрафы никто не отменял), но все что уходит в оперативный учет начинает писаться на более быстрых и масштабируемых решениях с применением популярных языков, с экспортом необходимых данных в бухгалтерию.
lair
10.09.2022 14:57+2Наверное тогда ей пришлось бы напрягаться, и качество продукта братьев за эти деньги было другое
Подождите, за какие деньги? Вы же говорите, что она берет деньги, потому что монополист?
fixin Автор
10.09.2022 09:22-3из жадности, конечно же.
lair
10.09.2022 14:58+5А разработчики, которые это всё пишут, тоже зарплату из жадности просят?
themen2
11.09.2022 18:05+2Да, блин, чё вы прикопались? Она монополист и этим все сказано. Может выкручивать руки всем и играться с ценой. В 2 раза дороже сделает и все равно будут брать. Если бы был конкурент достойный , то пришлось бы улучшать сервисы и снижать цену.
Я просто не пойму к чему вы клоните? Любите монополии что-ли?
lair
11.09.2022 18:16+2Я клоню к тому, что разработка стоит денег. Разработка платформы, инструментария, поддержка обратной совместимости — все это стоит денег. Как разработчик, который всем этим занимается (не в 1С, заметим), я весьма подозрительно отношусь к заявлениям "давайте просто сделаем то же самое, но open-source".
fixin Автор
11.09.2022 19:08не то же самое, а проще.
lair
11.09.2022 19:10+2Вы оставили достаточное количество сложных требований. В принципе, одно только требование на полную обратную совместимость увеличивает бюджет на порядок.
mogaec
11.09.2022 20:12Я на 7ке веселюсь с маркировкой и 54 ФЗ. На ней же СЗВ-М и прочая отчётность в фонды. Разработка платформы это такая малая часть, того что нужно для бизнеса. Лет 15 назад был и два-с и ещё куча проектов. Но сейчас законодательство меняется так часто, что главное это именно поддержка регламентированной отчётности. А все остальное.....
fixin Автор
11.09.2022 20:1377 это уже вымирающий мамонт. Потому вы и бьетесь, что никому не интересно сопровождать 77. Если бы была интересная платформа, то и разработчики конфигураций бы подтянулись. А так вы продолжаете терзать уже почти живого мамонта.
Coffe4wolf
09.09.2022 22:56+18fixin Автор
10.09.2022 09:23вы бы еще Access посоветовали.
Emulyator
10.09.2022 10:44+1Почему нет? Всяк лучше чем Эксель.
fixin Автор
10.09.2022 11:04+1а вы я смотрю, ценитель старины.
Emulyator
10.09.2022 11:24+5Но и 1с далеко не передний край для разработки как по развитию языка так и по "конфигуратору", или я пропустил какой-то прорыв?
themen2
11.09.2022 18:07+2В Access как раз есть бейсик, как раз встроена бд, есть возможность ее шарить на сервере(с ограниченями правда)
beeptec
10.09.2022 11:08+3За долго до появления 1С существовало достаточно много добротных настраиваемых АРМов, причем как под MC DOS так и под виндой, которые писались на Delphi, Foxpro, тот же Mc Access. Лично у меня в те далекие (90-е) на 386 крутился пакет Соло, который 100% позволял вести баланс с разносом по оборотным ведомостям ис счетам, материальный учет, статистику, аналитику, генерил все формы отчетной и банковской документации. Там же и редактор форм. В общем песня. 1 раз заплатил, настроил под специфику предприятия и всякие напоминалки. По нему же я и постигал азы работы с PC. Помню, когда появился 1С со своей агрессивной интервенцией и курсами, мне было фиолетово. Пакет Соло был настолько комфортен своей парадигмой и интерфейсной абстракцией, что мне захотелось его повторить под Mc Access. И смог бы, т.к. тму бухгалтерского учета на тот момент уже вполне прочувствовал, вполне справлялся самостоятельно с готовыми налоговыми отчетами и был на ТЫ с в.у. СУБД.
Вообще тама Data Science не моя, я больше по железу, но свой фреймворк я все же построил с ощутимой отдачей по окупаемости.themen2
11.09.2022 18:09А что случилось с Соло? Почему он проиграл 1с ?
mSnus
12.09.2022 10:21Потому что у 1С было много административных рычагов, которые им позволили вынести всех конкурентов.
themen2
12.09.2022 10:30Приведите пример хоть одного рычага? У них были связи в политике?
mSnus
12.09.2022 11:56да, надо копаться, чтобы вспомнить конкретику, но даже просто обновления законодательной базы они получали за пару месяцев до конкурентов. А кого ещё как именно задавили - уже и не вспомнить.
PavelSandovin
11.09.2022 12:48C Access все плохо: а) он дорогой; б) M$ в России самосократился. А так - неплохой вариант для небольших БД.
codecity
11.09.2022 15:14Главное что неустранимо плохо в Access - не распределенная база данных. Как с ней работать одновременно многим пользователям? По сути это 1 файл и 1 пользователь.
nnstepan
11.09.2022 16:08Насколько помню, там спокойно можно работать 10-20 человек одновременно, а если включить опцию работы с ms sql то сами понимаете.
codecity
11.09.2022 16:54А там разве есть опция с MS SQL?
lair
11.09.2022 18:17Была, по крайней мере. Называлось Access Data Project.
codecity
11.09.2022 19:02А что оно умело? Могло на основе таблиц MS SQL создать формы? С учетом связей?
lair
11.09.2022 19:04А что оно умело?
Оно умело использовать уже написанный для Access функционал (формы, скрипты, отчеты) с БД такой же структуры, лежащей в MS SQL.
Могло на основе таблиц MS SQL создать формы? С учетом связей?
Я такого там не помню.
Emulyator
11.09.2022 21:37Формы на основе таблиц могло, а что такое "с учетом связей" не до конца понятно.
codecity
11.09.2022 21:58Связанные с записью таблицы отображать на форме, обычно в табах внизу.
Emulyator
11.09.2022 22:20О, с этим проблем нет. Так называемые "подчиненные формы" активно используются и просто настраиваются, а с использованием нескольких строк кода их можно на лету менять позволяя работать с данными из разных связанных таблиц.
PavelSandovin
12.09.2022 10:31Раньше это точно было, сейчас не знаю. В 2008-2009 гг. я использовал Access в таком режиме в качестве клиента для генерации отчетов по данным MS SQL базы.
Формы на основе таблиц MS SQL создавать тоже можно было, насколько помню, в т.ч. и "со связями".
Но я в своем приложении в итоге использовал только формы без DataSource и движок отчетов.
А вот SQL-инъекции приходилось писать по-настоящему, а не на JetSQL, который реализован в нативном Access.
MilPavel
11.09.2022 17:38Это лего обойти. По ярлыку на командный файл, файл MS Access копируется в каталог %temp% пользователя, и запускается оттуда. Далее подключается к базе MS SQL Server или любой другой. Таким образом, каждый пользователь работает со своей копией базы, которая является оболочкой и читает и пишет данные на сервер.
Emulyator
11.09.2022 21:43Какой-то странный подход. Файл клиент может весить не так уж мало, чтобы его каждый раз копировать при запуске. А для обновления клиента есть более привычные схемы.
themen2
11.09.2022 18:10Не, там есть возможность работать, правда насколько помню с ограничениями до скольки то подключений. Возможно он и файл бд целиком блочит, уже не вспомню
Emulyator
11.09.2022 21:45В давние времена помню разрабов, которые утверждали, что вполне себе работают с сотней юзеров в mdb (файл серверный вариант) формате.
themen2
11.09.2022 18:11Access кстати может выступать как клиент к той же Ms SQL. , Подключились в внешней бд и вперёд , запрашиваете данные и работаете с ними в SQL или бесике
codecity
11.09.2022 19:03Вопрос вот в чем - была ли возможность так же легко строить формы на основе таблиц MS SQL? Или же это просто как источник данных, с которым нужно работать из программного кода.
lair
11.09.2022 19:05была ли возможность так же легко строить формы на основе таблиц MS SQL
Обычно сначала все делали на MS Access, а потом просто делали в MS SQL БД такой же структуры.
codecity
11.09.2022 19:19Точно не уверен что там достаточно удобно все это можно делать. Но это не главное. Главное в другом, почему даже тратить время на проверку нет смысла.
Главное - всем пользователям вашей конфигурации/проги нужно купить не копеечную лицензию на MS Access у Microsoft. Иного варианта просто нет. Т.е. полная завязка на вендора. Вы будете работать на его кошелек.
Если бы хотя бы как XAF - DevExpress - заплатил раз 2 штуки баксов, зато потом продаешь своим клиентам хоть по 2 доллара за экземпляр. Т.е. не занимаешься суб-продажами продукта вендора а продвигаешь свой.
lair
11.09.2022 19:21Ну так я и не предлагаю делать то, что хочет автор, на MS Access.
fixin Автор
11.09.2022 20:14Аксесс + MS SQL - это двухзвенка, а не трехзвенка. Где в вашей схеме сервер приложений? Двухзвенка это уже старое. ее бы можно было и на питоне написать
lair
11.09.2022 20:16Я, вроде бы, явно написал: "я и не предлагаю делать то, что хочет автор, на MS Access". Так что где вы нашли мою схему, я не знаю.
Emulyator
11.09.2022 20:50"Главное - всем пользователям вашей конфигурации/проги нужно купить не копеечную лицензию на MS Access у Microsoft. Иного варианта просто нет. " Ознакомьтесь например с Википедией перед тем как что-то категорично утверждать:
Microsoft Access является проприетарным программным обеспечением, то есть для его использования необходимо приобрести лицензию. Однако для использования готовых приложений, созданных с помощью Access, лицензия не требуется. Для работы такого приложения необходима runtime-версия Access [2], которая распространяется бесплатно.
Emulyator
11.09.2022 21:05Все там нормально и легко было и есть, говорю так как до сих пор вынужден работать например в связке ADP клиент MS Access - сервер MS SQL 2000-2008-2014. Единственный вопрос только в прекращении развития этой технологии со стороны Microsoft.
codecity
11.09.2022 22:30>Единственный вопрос только в прекращении развития этой технологии со стороны Microsoft.
Этот вопрос неразрешим в принципе - исходники то закрыты. По сути кто завязался на это - попал в ловушку. Не мудро завязываться на подобные системы.
Emulyator
11.09.2022 22:59Ну в реальности открытость исходников не гарантирует длительное развитие проекта. Прекрасно загибаются проекты с открытыми исходниками, а с закрытыми существуют десятилетьями, - это не довод. Не мудро не получать удовольствие и доход от работы пока система развивается и какое-то время после, а вечных систем не существует. )
iig
12.09.2022 10:39Проект с открытыми исходниками загнется только если он никому не интересен.
Emulyator
12.09.2022 10:55Достаточно, чтобы он перестал быть интересен автору/авторам. Грубо говоря интересоваться и пользоваться средой могут многие, а поддерживать и развивать среду разработки способно на порядки меньше специалистов. Еще меньше найдется тех, кто будет готов подменить на поляне потерявших интерес авторов. Иначе бы я сейчас использовал не Access, а допиленный лично до приемлемого состояния Openoffice Base. )
Emulyator
11.09.2022 21:25а) Дорогой только для разработчика, рантайм версия бесплатная. б) Купить вполне реально. 3) Для больших, например, юзаем связку с MS SQL, в том числе и потому что в 1С такое количество данных опасаемся пихать, ибо она в популярных конфигурациях (ака ЗУП, БП ) не особо шустро работает даже в такой же связке c MS SQL, а в режиме файл сервера просто тормозит невыносимо даже на нескольких юзерах, чего не скажешь о том же Access.
Fafhrd
09.09.2022 23:20-1нет такой базы Postgree в списке поддерживаемых
fixin Автор
10.09.2022 09:23-1это буквоедство что ли?
Fafhrd
11.09.2022 22:39Определенно, когда дело касается названия программных продуктов.
Возможно в мире 1S всем всё-равно как их продукт называется, хоть Айнцэ, а у этого проекта есть официальное название.
https://www.postgresql.org/about/policies/project-name/
WondeRu
09.09.2022 23:42+5Хорошая рекламная статья платформы 1С получилась)
fixin Автор
10.09.2022 09:23+2на самом деле 1С противна до отвращения своей жадностью и отношением к разработчикам. От хорошего вендора не тошнит.
themen2
11.09.2022 18:13Поподробнее плиз. Далек от 1с, так интересно просто. Есть на рынке альтернативы, хотя бы с урезанным функционалом. Ещё вопрос: почему юзают SAP некоторые компании?
oller
11.09.2022 22:15Имхо 1с это только РФ, ну СНГ. SAP международный стандарт. Тобишь будь ты филиалом или имея иностранные системы тебе проще интегрироваться, чем писать костыли
SAP имеет очень малый % успешных проектов, но они стараются скрывать это, безмерные бюджеты крайне свойственны что SAP что 1с
Сами платформы стоят копейки, по сравнению с доработкой, поддержкой, интеграциями.
AlexeyPolunin
10.09.2022 00:19+1Вот мы такую штуку в MIT-лицензии делаем: https://habr.com/ru/post/666184/
fixin Автор
10.09.2022 09:24меня больше интересует приложение на своем сервере. ну и как вырожденный случай - приложение, работающее с этим же кодом, но на локальном компьютере.
Gizmich
12.09.2022 18:43Смотрится интересно... Postgresql там по каким-то определяющим причинам или можно ждать адаптации под MySQL ? Просто большинство копеечных хостингов это php + mysql. Поставить попробовать было бы проще и доступнее
Naf2000
10.09.2022 07:37+1linq2db + blazor
fixin Автор
10.09.2022 09:25Дьявол, как говорится, в деталях. Слишком лаконично, чтобы быть ценным.
Naf2000
10.09.2022 21:20linq2db библиотека для работы с базой данных. Работаем с sql с помощью linq непосредственно в доменных именах без текстов запросов (строковых переменных).
Blazor библиотека для клиентской части в web. Единый язык использования - c#
codecity
11.09.2022 15:17+1Опишите как вы сделаете классические формы CRUD на Blazor - придется ли писать все с нуля или же можно просто указать имя таблицы все формы будут созданы автоматически? Как насчет таблиц со связями?
Если в таблицу добавили 1 поле - нужна ли перекомпиляция или же можно сделать так, что прога сама добавит в форму это новое поле?
Naf2000
11.09.2022 21:25Это не готовое решение. Это каркасы для разработки платформы с девушками и блекджеком
codecity
11.09.2022 22:14Ну вот об этом то речь - разрабатывать платформу кому-то нужно. А каркасов всяких - пруд пруди. Вот когда пытаешься эти каркасы применить для реальной платформы - тогда появляются неустранимые проблемы.
К примеру, связка PostgreSQL+Entity Framework - казалось бы в чем может быть проблема, вроде все ОК. А вот первое подключение занимает около 4000 миллисекунд. Да, да - до 4-5 секунд. Попробовал:
1. ReadyToRun
2. Compiled Queries
3. dotnet-ef dbcontext optimize + .UseModel(DataContextModel.Instance)
- и что? И ничего - по прежнему первый запрос - около 4-5 секунд, даже если немного сущностей в DbContext. Похоже что сделать с этим ничего нельзя - только держать подключение горячим, что проблема для некоторых сценариев.
nomhoi
10.09.2022 08:33Например, 1С: Бухгалтерия отслеживает многочисленные изменения законодательства РФ и постоянно обновляется. С этим конкурировать нет смысла.
Нужно немного скорректировать процессы.
МНС сейчас создает формы в каком-то формате. Все производители бухгалтерского ПО повторяют эти формы в своих закрытых форматах. Сама МНС, например, выпускает Налогоплательщик ЮЛ, с готовыми формами.
Должно быть так - МНС готовит формы в открытом формате готовые к подключению ПО, выходят новые изменения в законодательстве, все эти формы уже лежат в репозитории и даже выкачаны конечными пользователями в свои компьютеры. Остается подобрать или разработать инструменты для подготовки таких форм, разработать процесс деплоя форм, взаимодействия с разработчиками ПО и т.д.fixin Автор
10.09.2022 09:25да, но эта статья не о том. Я не про 1с-бухгалтерию, а про платформу для быстрой разработки трехзвенки.
TemaAE
11.09.2022 16:43+1Платформа для быстрой и простой трехзвенки практически из коробки — Delphi )))
Там это делается очень просто специализированными инструментамиdigitBot
11.09.2022 21:37И что же там за трехзвенка в DELPHI? CORBA?
TemaAE
12.09.2022 17:28DataSnap
Для дополнительного удовольствия можно совершенно официально, так как это продвигают сами разработчики Delphi, на клиенте и на сервере подключить python в качестве носителя бизнес-логики со всеми его модулями и писать, пользуясь всеми модулями Python + все что есть в Delphi.
ZloyVampir
11.09.2022 12:58+3Должно быть так - МНС готовит формы в открытом формате готовые к подключению ПО, выходят новые изменения в законодательстве, все эти формы уже лежат в репозитории и даже выкачаны конечными пользователями в свои компьютеры.
За скобками остался сам учет. Изменения в законодательстве - это не просто формочки. Это МЕТОДОЛОГИЯ. Сменой формочек вы ничего не добьетесь. Ввели 54-ФЗ? Изменение? Изменение. Какие, на хрен, формы? У вас полностью поменялся процесс печати чеков. Вы теперь ОБЯЗАНЫ печатать наименования. А у вас лично вообще мог быть только суммовой учет. Сквозной учет НДС? Вам теперь во всех проводках правильный ГТД нужно тащить, а для этого - учитывать, что пришло, по какому ГТД и еще остатки этих ГТД считать нужно. Система маркировки? Да там дополнительный полноценный учетный контур добавился. С интеграцией в честный знак и кучу других подсистем. ЕГАИС? Аналогично. Еще и УТМ нужно поставить в локалке.
nomhoi
10.09.2022 08:36+1Альтернативная платформа может тоже поддерживать различные СУБД, за счет того, что работа с базой данных должна быть максимально стандартизирована и формализована. Чтобы код одинаково работал на разных базах данных.
Для этого ORM'ы используют. SQLAlchemy, например.
VladimirLiberty
10.09.2022 09:07+6Ну как бы... Есть СУБД Firebird, с кроссплатформенностью и возможностью устанавливать на 32bit/64bit и прочими имеющимися плюшками. Есть проприетарный Delphi, позволяющий создавать приложения под что угодно практически из одного проекта и кроссплатформенный Lazarus, позволяющий бесплатно и без лишних заморочек написать несложное приложение хоть под Linux, хоть под MS Windows и даже с простым генератором отчётов, который при необходимости можно заменить на более серьёзный вариант от Fastreport (г.Ростов-на-Дону). На мой взгляд, более чем достаточно для того чтобы реализовать любую несложную БД и прикрутить к ней всё необходимое, для удобного использования в любой организации.
fixin Автор
10.09.2022 09:26-8Единственный недостаток - убогий язык Паскаль, прошлый век. Не годится.
select26
10.09.2022 10:02+14Чем же это он убог? Вы точно знакомы с Лазарус и тем же Фастрепорт?
И не слишком ли много допущений в вашей статье в сослагательном наклонении?
Если все так просто - так почему же вы тратите время на болтовню вместо кода? Или все же есть смысл в вопросах комментаторов о причинах монополизации рынка?
fixin Автор
10.09.2022 11:06-9да, я изучал паскаль и Дельфи в универе и даже делал подработку на Дельфи, т.е. получил бабки за программу по автозапчастям, написанную на Дельфи. Сам синтаксис языка паскаль убог и чрезмерно перенасыщен сущностями. Для 90х было норм, сейчас рулят легкие синтаксисы типа питона или даже C#
select26
10.09.2022 11:11+15Ещё раз попытайтесь понять что я вам писал выше: БОЛЬШИНСТВО программ, которыми вы пользуетесь, в т.ч. операционные системы, написаны на этих " убогих и перенасыщенным сущностями" языках.
А хайпа я за свою уже 25 летнюю карьеру насмотрелся. Отлично помню как провозглашали королем Delphi, потом - убийцу всех Java и.т.п.
И таких как вы, я тоже насмотрелся. Pascal ему убог. Вы про обратную пользую запись что-нибудь слышали?
themen2
11.09.2022 18:18-1Какие ОС написаны на Паскале?
blood_develop
11.09.2022 20:10Каждому языку - своя ниша. Есть c/cpp/asm/rust для этих целей и, мб, еще какие. Здесь же разговор идет о том, как можно было бы написать такой же мощный инструмент как 1С. А выбор языка - дело второе. Ну и к слову, паскаль не так плох, как вы о нем отзываетесь. Я в свое время на нем написал дофига графического софта, пока учился программированию. И в том числе на Лазарусе, когда уже прошел знакомство с мс аксесом, пхп и связкой хтмл+джаваскрипт. На тот момент от паскаля ловил кайф, пока ни познакомился с шарпом.
boopiz
11.09.2022 20:11Я вас умоляю. Это же жертвы модных трендов с капотами и фреймворками работающими через мистические api..в облаках. Они именно, что в студенчестве у таких же преаодавателей нахватались кое каких умений. но не больше. У Стругацких есть такое название для них: коекакеры. Вот они, бодрые неучи и задают ныне тренды
select26
10.09.2022 10:05+6А все С - не прошлый век? А Java? Python или Basic?
Подавляющее большинство рабочих и регулярно используемых программ написаны на убогих, по вашему мнению, языках из прошлого века. Многие - на языках старше вас.
Ваш подход и тон не вызывают у меня сомнений в продуктивности идеи.
fixin Автор
10.09.2022 11:06-12Си красивее Паскаля. Они в одно время родились, я их в 1992-1997 в универе изучал. От Паскаля тошнить хочется.
select26
10.09.2022 11:08+12Красота - это субъективное понятие. Фактов, конечно, у вас не нашлось.
fixin Автор
11.09.2022 20:16-1гармонию можно проверить математикой.
длинные идентификаторы служебных слов begin end.
странный оператор присваивания :=
странная работа с массивами
ужасная работа со строками
постоянная типизация
ну что вам еще добавить? Давно паскаль щупал, это отложилось.
lair
11.09.2022 20:20+1гармонию можно проверить математикой.
Без формализации (общепринятой!) понятий — нельзя.
0xd34df00d
11.09.2022 20:30+5Комментарий с отсылкой к математике в положительном ключе и к типизации в отрицательном — это интересно.
SergioShpadi
11.09.2022 22:37Ну может быть человек выступает за нетипизированное лямбда-исчисление с Church-encoding. Хочет, так сказать, говорить с Богом на одном языке.
select26
11.09.2022 21:58Я синею, дорогая редакция..
Рассуждать о математическом определении при помощи терминов: длинный, странный и ужасный - это что? Новомодный тренд или долгожданные результаты ЕГЭ?
Пора на пенсию, наверное.
Emulyator
11.09.2022 22:41+1-длинные идентификаторы служебных слов begin end.
зато хорошо видно границы блоков )
- странный оператор присваивания :=
потому что не как везде? зато отличается от знака сравнения, и это правильно. )
- странная работа с массивами
в чем странность?
- ужасная работа со строками
не огонь, но простая и понятная, а потому не ужасная
- постоянная типизация
статическая хотели сказать? Так это первый плюс для любого языка, на котором планируется писать что-нибудь серьезное без боли и сторонних приблуд контроля. Следует отличать полноценное написание приложений, а не дерганье из коротеньких интегрированных в систему скриптов методов готовых объектов, как это принято в 1C или мс-офисных приложениях. Но даже в последнем случае статическая типизация это плюс. )
0xd34df00d
11.09.2022 23:28+1зато хорошо видно границы блоков )
…или же лишние буквы сливаются с прочими словами.
потому что не как везде? зато отличается от знака сравнения, и это правильно. )
…или знак сравнения со знаком равенства вообще не должно быть возможно перепутать, синтаксически.
iig
12.09.2022 10:48гармонию можно проверить математикой.
Можно попробовать, но математики не вижу. Вижу вкусовщину.
длинные идентификаторы служебных слов begin end.
Вроде как IDE само раньше помогало ключевые слова вставлять.
странный оператор присваивания :=
Дело вкуса.
странная работа с массивами
Тема не раскрыта. В чем странность?
ужасная работа со строками
В чем именно ужастность?
постоянная типизация
Так это же прекрасно, когда компилятор не позволит даже попытаться умножить строку на обьект.
digitBot
11.09.2022 21:46Firebird слабоват для сложных запросов. А при наличии ORM + виртуальные таблицы с итогами( и прочими предрасчитанными данными) будут гарантированно сложными. Для нашего похожего кейса прекрасно подошел postgres.
Fastreport тоже нервно курит в сторонке по сравнению с функционалом табличного документа от 1С. Но его можно реализовать конечно же своими силами (работы там много).
XelaVopelk
10.09.2022 09:26+6"...Отсутствие типизации..." учётная система это всегда "про деньги". Так что, чтобы уменьшить вероятность детских ошибок нужна не просто строгая типизация, а желательно с возможностью указания измерений типов ( а-ля F#) , чтобы случайно не сложить литры с рублями.
fixin Автор
10.09.2022 09:28-3не сложишь, из опыта 1с говорю. там нет типизации и норм.
domix32
10.09.2022 11:25У меня так знакомый перегнал из одной 1ски в другую и в итоге на копейках полтора ляма недосчитался. Проблему конечно же починили, но нетипизированый остаточек остался.
SergeyDeryabin
10.09.2022 16:06Потерял на точности, а осадочек от типизации?
domix32
10.09.2022 16:24Весь сыр бор не помню, но там то ли из дефолтных типов получилось что int -> float копейки срезал, то ли fixed point -> float point, но да, типизация как раз борется с такого рода проблемами. Те самые не сложенные метры с литрами как раз про такие проблемы.
SergeyDeryabin
10.09.2022 16:27Литры и метры это же не стандартная типизация - это все float, double или int
domix32
10.09.2022 16:30+2А когда у тебя речь идёт про деньги, то крайне желательно иметь не float, double и int, а некоторый currency с некоторой заданной точности, ну или хотя бы decimal, что как понимаете не очень стандартная типизация, не говоря уже про поддержку этих типов в 1C.
Ну и собственно проблема возникла при миграции базы, поэтому иметь типизированные сериализуемые-десериализуемые структуры заметно безопаснее и позволяет исключать такого рода ошибки как класс.
SergeyDeryabin
10.09.2022 16:52Приведённые типы я понял, но это некий уровень абстракции, где под капотом будет старый добрый int/float/double/decimal. А значит при неправильной настройке базы или окружения - получилось бы тоже самое
domix32
10.09.2022 21:41где под капотом будет старый добрый int/float/double/decimal
Какая разница, если в 1С эти абстракции строить в лучшем случае неоправданно сложно, если это вообще возможно без работы с байткодом.
Чтоб было несколько понятнее глубину проблемы - многие при миграции данных сериализуют данные из 1С в XML и потом из XML обратно в 1С. Тут хочешь не хочешь а одним конфигом базы/env не обойдется. Так что это ваше "тоже самое" не очень-то тоже самое.
lair
10.09.2022 17:11+5Вот в том-то и дело, что есть языки, где это "стандартная типизация", и просто так перелить литры в метры не выйдет — будет ошибка компиляции.
0xd34df00d
11.09.2022 19:48+3Конечно! В нормальной системе типов ограничения на точность можно выразить в типах.
fixin Автор
11.09.2022 20:16-2не нужно, это лишнее.
0xd34df00d
11.09.2022 20:30+3Кому лишнее, а кто в своё время DSL пилил в том числе с возможностью это делать. Правда,
курицы кончилиськризис 2020-го наступил раньше, увы.
ZloyVampir
11.09.2022 13:03+6Там нет типизации и не норм. Все эти функции - ИнициализироватьМонструознуюСтруктуруИменемБорисаНуралиева(СтруктураДействий, СтруктураПараметров).
И думай-гадай, че он возвращает, че он хорчет на вход. Лезешь в комментарии, И долго ползаешь по ссылкам/коду вида "см. метод ИнициализироватьМонструознуюСтруктуруКлиентСерверПереопределяемыйНаконецДолбанныйСтыд()".
Другое дело, строгое описание типов. Описал - и в контекстной подсказке видишь, что откуда берется и куда ложится.
fixin Автор
11.09.2022 13:47-8ну как-то живем и без типизации. Выруливаем
ZloyVampir
12.09.2022 09:54+2А куда деваться? Продолжаем жрать кактус. Но это не отменяет того, что с точки зрения изнанки в 1С все устарело лет на 20.
hbn3
10.09.2022 09:27Но платформа 1С стоит минимум 13.000 рублей, это порядка 200$
Триальная версия есть? Если бизнес имеет возможность поиграться и увидит бенефиты, то 13.000 рублей это не проблема.1С не придумала создать магазин приложений, вроде Play Market
А свой нельзя сделать? Если идея востребованная то всё случится.Выбрать одно СУБД для начала, например MySQL.
Лучше уж тогда какой-нибудь sqlite, если позиционируетесь на микро и pet-приложения.
А так выглядит как одно из low-code/no-code решений.
Если делать максимально похоже к 1С, то конечно потенциально получите базу пользователей которые знают как с этим работать, но специалисту по 1С, было бы полезно попробовать существующие low-code/no-code решения, может оказаться что 1С не такое уж и волшебное.fixin Автор
10.09.2022 09:29может быть, может быть. надо попробовать. и все же инструмент для быстрого кодирования трехзвенки был бы неплохо.
Понятно, что для бизнеса 200$ не много, я привел несколько другие мотивы в статье. Ну и потом 1с довольно жадная, для сети из 100 точек это уже 20.000$, сами понимаете.
SergeyDeryabin
10.09.2022 16:13Если остальные 99 точек приносят вам доход, то почему не должны приносить вендору?
XelaVopelk
11.09.2022 10:41Странно упрекать в жадности 1с, если "сеть из 100 точек" не может потратить по мере роста до этих 100 точек 20 тыс баксов по сумме на платформу учётной системы своей жизнедеятельности.
ZloyVampir
12.09.2022 09:59Ну и потом 1с довольно жадная, для сети из 100 точек это уже 20.000$, сами понимаете.
Для сети из 100 точек вы купите:
1) Лицензию на сервер 1500$
2) Клиентские лицензии 100 штук. 6000$
3) Основная поставка 200$
Итого: 7700$.
Т.е. в 2 слишним раза менее страшно, чем вы описали. О какой, простите, жадности речь, если винда на эти 100 лицензий будет стоить как раз около 20 килобаксов + винда серверная 5000$
Ndochp
12.09.2022 14:39Это у вас очень интернет хороший.
Для сети из 100 точек вы купите:1) Лицензию на сервер 1500$ в бэкофис
2) Клиентские лицензии 10 штук. 600$ в бэкофис
3) Основная поставка 20200$ — в каждую точку и офис
Подписка на 1 место полная, на 100 — офисная (не помню сколько точно, кажется 200$+100$*100 в год)Итого: 22300$ + 10200$ обновления.
iig
12.09.2022 15:30Это у вас очень интернет хороший.
21 век на календаре ;)
Для сети из 100 точек вы купите
Если это сеть шаурмячечных - я не уверен, что вот в каждой точке необходимо вотэтовотвсё.
Ndochp
12.09.2022 17:27Что все? одна коробка и обновление. Вот и все что я предлагаю на точку. А дальше смотрим, стоит простой из за отвала интернета за год 200 баков или нет.
Ну и/или пишем инструкцию по автономному без 1С использованию кассы и восстановлению всех операций, проведенных без доступа в центральную базу из тетрадки при восстановлении связи.
ZloyVampir
12.09.2022 17:20У любой проблемы может быть несколько решений:
1) 30 килобаксов на 100 точек? Точно необходимо? Платим и радуемся.
2) Делаем хороший инет на 100 точках, даже если это стоит ровно столько же, сколько стоят лицензии. Архитектурно работать в одной сети - сильно правильнее. А распределенка из 100 узлов - беру попкорн. Это мазохизм чистой воды.
3) Берем дешевый фронт/готовые мобильные решения, если действительно без 100 узлов никак.
4) Сворачиваем на хрен бизнес. Не ваше это, если вам жлобливо организовать АРМ, который будет приносить деньги.
5) Отказаться от 1С и получать удовольствие.
IvanShapa
10.09.2022 09:27+7"Убийца" 1С родится наверно одновременно с убийцей PHP (ха-ха-ха). Купить платформу и какую ни будь типовую конфигурацию от 1С которая покроет 98% нужд автоматизации хозяйственной деятельности типовой конторы можно менее чем 40к, + поднять сайт (с обменом с 1С) на какой ни будь cms можно еще за 10к итого 50к (и пару дней работы одного спеца).
Кто то готов изобретать велосипед что бы влезть в эти 50к??? (кто то вытеснил пыху из бюджетного сегмента?), так же и с 1С. 1С это как пых в web, дешево и сердито.
ps (20 лет стажа и там и там знаю о чем говорю).
fixin Автор
10.09.2022 09:30я не хочу разрабатывать альтернативы типовым конфигурациям, меня интересует платформа для трехзвенки
XelaVopelk
10.09.2022 18:07Если тебе нужна "платформа для трехзвенки", то убить 1с не сможешь. Сила 1с прежде всего в стандартных конфигурациях
PS Отсутствие нормальных поддерживаемых производителем конфигураций, ИМХО, одна из основных причин того, что издох "Инфин"
Nasreddin_Hodja
10.09.2022 12:55поднять сайт (с обменом с 1С) на какой ни будь cms можно еще за 10к
Ну, скорей всего придётся не на какой нибудь, а на той самой от 1С со всеми вытекающими последствиями ))
и пару дней работы одного спеца
Так не бывает, придётся держать постоянно двух спецов хотя бы на полставки для сапорта 1С и Битрикса, т.к. постоянно придётся что-то дорабатывать под хотелки бизнеса плюс обновления накатывать.
lolipoka
10.09.2022 20:49Никто не мешает сделать REST API (http-сервисы) со стороны 1С и обмениваться данными с чем-то отличным от Битрикса.
fosihas
10.09.2022 09:56+2Проблема в чем?…
Садись пиши свое или хочешь готовое?… На разработку надо потратится.
Т.ч. Не вижу проблемы найти или создать. Проблема чтоб это было нужно не только тебе и твоей маме))
Ps:
Были примеры, когда такие «убийцы» сушествовали пока был сам разработчик.
fixin Автор
10.09.2022 11:07-1Какие примеры были, поделитесь? Если вы про 2С и Ананас, это были не трехзвенки, там обычный DBase-клон использовался.
Для начала нужно понять, на каких языках и технологиях садиться и делать.
Траты там не астрономические, но я бы заплатил даже, да. Мне не в лом делегировать.fosihas
10.09.2022 14:37Вот к примеру ВизуаДата. Притом лет 5 назад была на подходе новая версия основанная ориетирлванная на веб среду. Но как понимаю разработчик не нашел говоря модным языком «инвесторов». А учитывая его возраст, думаю это заглохло.
Вообще занятная штука и проста в разработке. Разработчик давал по тестить.
lair
10.09.2022 15:04+2Для начала нужно понять, на каких языках и технологиях садиться и делать [...] я бы заплатил даже, да. Мне не в лом делегировать.
Это весьма странный подход. Если вы готовы делегировать, то пусть выбором технологий и языков занимаются те, кому вы делегировали разработку, им явно понятнее. Так-то, то, что вам нужно, можно написать на C#, можно — на JS, можно — на Java. На многих других языках тоже скорее всего можно..
Траты там не астрономические
Мне, конечно, любопытно, откуда у вас оценка затрат на разработку такого продукта. Я вот по своему опыту могу сказать, что на одно только поддержание обратной совместимости будет постоянно утекать столько ресурсов, что вы будете задумываться "нафига я за это плачу, может надо уже выкинуть".
codecity
10.09.2022 17:53-1>Траты там не астрономические, но я бы заплатил даже, да. Мне не в лом делегировать.
Вот тут ваша ошибка. Это можно сделать либо бесплатно (включая вариант за еду), положив здоровье, постройку дома и семью на кон. Когда один человек не спит ночами и за год-два реализует данную систему. Либо же за миллионы долларов, когда делаете все по уму с составлением Т.З., аналитиками, командой разработчиков и тестеров.
iig
11.09.2022 16:18Для начала нужно понять, на каких языках и технологиях садиться и делать.
Для начала нужно понять, кому это нужно. Кто это будет покупать вместо 1С и почему. Или, если покупать для бизнесов в вашей target group слишком дорого - откуда брать деньги на зарплату разработчикам. А на каком языке писать, и какая у этого будет архитектура.. Можно писать на том языке который знаете. Можно выучить по этому поводу новый ;)
igorhak
12.09.2022 00:44Подобную штуку начал писать на Java, в последствии перешел на Котлин переписав весь предыдущий код. В Котлине много "сахара", что существенно сокращает код и делает его более читабельным. На фронт использую Vue с Quasar. Пишу все по DDD, по этому слой доменов работает вообще без фреймворков. Слой даты позволяет использовать фактически любые БД и фреймворк для работы с БД, тоже самое и со слоем приложений. Пока выбрал spring-r2dbc-data для БД и spring-webflux для REST, БД пока Postgres. Так же в Котлине есть возможность переиспользовать код, например для мобильного приложения с использованием андроид студио, или фронт написать на Jetpack Compose UI.
Ещё можно посмотреть в сторону Jmix (ex. Cuba) на Java + Hybernate, ну и как сказали выше Vaadin
Kill_Voice
10.09.2022 10:05+3Помимо всего технического, 1С как к примеру как и SAP прежде всего бренд, определенный набор процессов из коробки, поддержка продукта, наличие на рынке кадров умеющих работать с системой и ещё много разных мелочей. То есть сколько бы хороша ваша система не была конкурировать с уже устоявшимися продуктами весьма сложно так как в большинстве решение о внедрении принимают совсем не технические специалисты
fixin Автор
10.09.2022 11:08вы плохо читали статью. Мне не нужна еще одна 1С: Бухгалтерия - монстр. Мне нужен инструмент для разрабоки небольших баз данных в трехзвенной архитектуре.
kale
10.09.2022 10:39+5Не статья, а водопад мечтаний.
fixin Автор
10.09.2022 11:09Мечты и лень двигают прогрессом. Я хочу чего-то запредельного? Просто спрашиваю, на чем писать трехзвенку в наше продвинутое в плане IT время
lair
10.09.2022 15:05+5Просто спрашиваю, на чем писать трехзвенку в наше продвинутое в плане IT время
Да в том-то и дело, что в наше продвинутое в плане IT время "трехзвенку" можно написать на чем угодно.
fixin Автор
11.09.2022 13:43вот это разнообразие и пугает. Слишком большой выбор.
XelaVopelk
11.09.2022 14:21Мне кажется, что вы не понимаете, чего хотите: то вам "монополия 1с" не по душе, с другой стороны, там где есть "большой выбор" вам страшно. :-)
digitBot
11.09.2022 22:03Да нет особо выбора: QT, C++, RUST (DELPHI на худой конец)
если конечно хочешь чтобы "оно" было производительным.
Либо C#, JAVA но отдельные моменты все равно будешь писать на QT,C++,DELPHI,RUST.lair
12.09.2022 00:55Либо C#, JAVA но отдельные моменты все равно будешь писать на QT,C++,DELPHI,RUST.
Я знаю как минимум две ERP, написанных на C# без какого-либо С++ или Rust.
Не буду врать, что они не тормозят, но основное, где они тормозят — это операции с данными (взаимодействие с БД), а совсем не числодробление.
digitBot
12.09.2022 09:47Мы же не про готовый продукт говорим. А про некую платформу, которая сама по себе является средством разработки. Для которой ERP - лишь частный случай.
То есть решение разрабатываем не мы на C# как в вашем кейсе, а некий fixin и с попыткой слепить на нем все что на ум приходит.lair
12.09.2022 14:17Я все-таки надеюсь, что фреймворк из поста предназначен не для написания игр, (чисто) мобильных приложений или сетевых серверов.
codecity
10.09.2022 11:48+1Вы плохо выразили ключевую идею - что именно нужно.
>Я никогда не сталкивался со средами разработки, где так же эффективно, как в 1С можно разрабатывать тиражирумые приложения баз данных.
Правильно ли я понял, что вам нужна Low-code платформа? Какие варианты вы рассматривали?
Наверное главная загвоздка - этого нет и не будет бесплатно. Слишком большая потребность в подобном решении в хозяйственной деятельности - давая продукт бесплатно вы наступаете на хвост тем, кто на этом кормит семью. Вас проще будет или перекупить или даже устранить физически.
PavelSandovin
10.09.2022 22:23Не надо пугать автора, есть же Linux. Торвальдса никто не устранил, жив и здравствует. Хотя, с другой стороны, с Ианом Мёрдоком вышла какая-то очень мутная история.
fixin Автор
11.09.2022 13:42мне не нужна Low-Code, мне нужна Middle-Code. Я программист. Я хочу взять и наваять тиражное приложение с БД без плясок с бубнами. Мне нужен инструмент для трехзвенки.
Пусть будет платно, не вопрос, но за разумные деньги.Чтобы пользователь заплатил 2000 за мой продукт, а не 13000 + 2000 как сейчас на 1С.
lair
11.09.2022 14:10Пусть будет платно, не вопрос, но за разумные деньги.
Чтобы пользователь заплатил 2000 за мой продуктВот тут возникает интересный вопрос: сколько же должна стоить разработка, чтобы это было выгодно?
codecity
11.09.2022 15:30Что такое Middle-Code? Вы уверенны в том, что правильно понимаете термин Low-Code? Low-Code позволит вам в режиме конструктора, практически без написания кода, реализовать большую часть функционала - а для специфических случаев уже написать код.
Соберите список требований, систематизируйте их. А потом проведите обзор уже готовых решений, которых пруд пруди и выскажите чем вас не устраивает каждое из них.
Дело в том что готового - пруд пруди, многое о котором вы никогда не слышали. К примеру вот это гляньте http://yukosoft.ru/Img/core8.jpg И таких решений очень много.
Alexrook
10.09.2022 20:37+6Сначала отвечу на вопрос, на чем писать убийцу 1С? Да на чем угодно, к чему душа лежит. Хотите с нуля, хотите используйте уже готовые наработки. Не помню на память все названия этих фреймворков, но они точно есть. Одно могу назвать - Apache OFBiz.
Но в общем схема такая:
фронтенд - SPA на JS (React, Vue и т.д.), тут альтернатив просто нет для бизнеса, не писать же сейчас десктопный клиент, это тупо. 1С этого не понимает, но им выгодно не понимать, учитывая их лицензионную политику за каждое клиентское место.
бэкенд - выбор широк, можно выбирать, что нравится. Имеет смысл смотреть на языки, где присутствуют продакшен реди ORM решения и функциональные фреймворки. При этом я вижу смысл сделать монолитное ядро, где собрать основной функционал, а не как в 1С, когда в конфигурациях напихано до одного места всего, а по факту используется 10%. Так вот эти 10%, которые используют практически все надо запихнуть в это монолитное ядро. Все остальное - это либо плагины, либо микросервисы. Надо давать пользователям возможность не тащить всегда то, что может им никогда не понадобится. Это то, что я очень не люблю в конфигурациях 1С - 80% функционала просто висит мертвым грузом. Этот функционал никому не нужен, но он есть. Это просто мешает даже просматривать списки документов, отчетов, регистров. Очень много лишнего. И я не встречал еще ни одной компании, которая использовала хотя бы половину.
Ну и собственно БД. И даже не одна, а две, традиционная реляционная БД + noSQL.
Далее прикручиваем логирование, мониторинг, очереди сообщений и прочее. Для всего этого есть готовые хорошие решения. Главное не выбрать экзотический язык, у которого нет возможности легко получить нужную библиотеку для подключения той или иной функциональности.
Простой синтаксис, а-ля Питон или JS
А вот это спорный вопрос. С чего вы взяли, что у Питона или JS синтаксис легче чем у других языков? В том же JS можно такого наворотить, что хрен разберёшься. С Питоном легче, так как там уже на уровне языка есть некоторые правила, которые призваны повысить читаемость. Но в любом языке можно написать доступно и понятно или запутано и нечитаемо. Кстати, любой 1Сник это должен понимать как никто другой. Не видел больше нигде такого низкого качества оформления кода, как в 1С. Это и портянки на тысячи строк, при том это даже не модуль на тысячу строк, а реально одна процедура. Это и идиотские наименования общих модулей, процедур, функций, переменных и т.д., часто понятные лишь тому, кто писал. Строки длинной в несколько экранов, то есть редко когда код помещается в одно окно по горизонтали. Это часто следствие длиннющих наименований, которые иногда даже трудно полностью прочитать. И спасает ли при этом простой синтаксис языка 1С? Нет. Поэтому тут больше зависит от того, как написан код, а не какой синтаксис у языка. Один из самых простых синтаксисов у Си. Значит ли это, что на нем легко писать и легко читать код? Нет, конечно.
Для бизнес приложения я бы выбирал язык не по синтаксису, а по скорости разработки. Это логично, так как в данной сфере сроки всегда горят.
Но в общем, я двумя руками за любых убийц 1С. Самая отвратительная система для разработки чего-либо, с кучей ограничений, костылей, багов, проблемами с производительностью и самой убогой средой разработки. А с командной разработкой, особенно если разработчики сидят на удаленке, вообще беда.
fixin Автор
11.09.2022 13:41-3можно то конечно все. и метеоритом убить человека тоже можно.
однако синтаксис джавы сложнее синтаксиса бейсика или PHP или C#, такова объективная реальность.
lair
11.09.2022 14:11+3однако синтаксис джавы сложнее синтаксиса бейсика или PHP или C#
Во-первых, где конкретно синтаксис джавы сложнее синтаксиса C#.
такова объективная реальность
А во-вторых, как вы объективно меряете сложность синтаксиса?
codecity
11.09.2022 15:50+2Простой синтаксис - это не значит что легко будет поддерживать. Выучить - да, быстрее. А вот потом писать серьезный софт, который нужно поддерживать - будет сложнее. Возьмите Brainfuck - очень простой синтаксис, всего 8 команд, выучить можно за 1 день. А вот взялись бы вы на этом простом языке писать ПО?
themen2
11.09.2022 19:05Чем вам не нравяться десктоп приложения и почему это тупо? Это гроздо удобнее в плане разработке, чем веб (бекенд+апи). И не жрет столько памяти, как какой нибудь завернутый в браузер слек
PavelSandovin
10.09.2022 22:00+117 лет назад я хотел написать кросплатформенного убийцу 1С на PyGTK+. Даже название придумал: PyGTK+ Business Forms. Даже начал что-то делать, разобрался в PyGTK+ и Glade, но закрутили дела и ... в общем, сейчас на PyGTK+ уже не хочу :)
fixin Автор
11.09.2022 13:40а на чем сейчас бы делали?
PavelSandovin
12.09.2022 10:38Сейчас - не знаю. Я бы делал веб-интерфейс, на чем - надо изучать какие есть технологии для фронт-энда, ускоряющие и упрощающие разработку.
Подозреваю, что такого простого и удобного редактора форм, как в 1С, на рынке нет вообще.
YernarShambayev
11.09.2022 10:16Если честно, Нуралиеву нужно очень постараться, чтобы 1С слетела с сегодняшнего пьедестала.
leha_gorbunov
11.09.2022 12:23Что-то типа такого ищете?
https://www.youtube.com/watch?v=ONOFC8kjtTU
Трехзвенка
Браузер (JS, JQuery) - Сервер приложений (Apache, PHP) - БД (Mysql)
igrishaev
11.09.2022 12:35+1Ирония в том, что заменить 1С нечем. Это уникальный конструктор приложений, где за вечер можно склепать что-то простое и начать пользоваться. Особенно это касается интерфейса: в одном стартапе мы втроем пилили для браузера то, что в 1С я бы сделал за пару дней.
fixin Автор
11.09.2022 13:38-1возможно, но альтернативу для разработки трехзвенных приложений хочется иметь. Причем без этих ужасных ООП-оберток, которые делает JAVA над базой данных. Это лишнее.
codecity
11.09.2022 16:27>Ирония в том, что заменить 1С нечем
Почему вы думаете что нечем? На западе что вместо него используют? Смотрели ли Microsoft Dynamics, SAP ERP, решения SalesForce?
Это из крупных. Есть тьма более мелких, которые не на слуху.
hbn3
12.09.2022 18:17Это уникальный конструктор приложений, где за вечер можно склепать что-то простое и начать пользоваться.
Думаю что конструктор большинству конечных пользователей не интересен. Пусть разработчик и продвинутые пользователи продолжают использовать 1С конструкторы.
Т.е. в первом приближении можно обойтись runtime движком, который берет формы, отчёты сделанные в 1C и исполняет их.
Может быть даже лучше не отдельным десктоп приложением, а как веб приложение.
Очень вероятно, что достаточно большая часть от подобного уже должна где-то существовать. Левши не перевелись ещё.
MaximRV
11.09.2022 13:00Не понимаю, чем автору Инфостарт не угодил в плане распространения своих решений/дополнений? Навеяло первыми абзацами статьи.
fixin Автор
11.09.2022 13:36тем, что у пользователей должна быть платформа за 13.000 рублей. А в остальном все нормально. Если бы 1С имела плеймаркет, она могла бы мелкие поделки продавать за 2000 как сейчас базовые.
MaximRV
11.09.2022 18:06+2ну тринадцать тысяч рублей даже для частника небольшие деньги, особенно если учесть что смартфоны у них часто дороже раз в пять. А для этого решения представьте ещё и компьютер нужно купить. А операционку например, тоже часто (иногда) покупают простые граждане, не поголовно на линуксе. И текстовые редакторы у них часто покупные и цены там сопоставимые с указанными вами тринадцатью тысячами рублей. И подписку на ИТС никто не Заставляет оформлять.
starik-2005
11.09.2022 13:02+2Суть статьи типа в том, что вот есть 1с, лучше нее на свете нет ничего. Это такая полуправда.
Суть же в том что хоть на 1С, хоть на чем другом, но программирование в своей сути мало отличается. Можно писать на 1С плохой неподдерживаемый код, можно писать такой код на чем угодно другом. Справедливо и обрптное - на 1С можно писать хороший поддерживаемый код, как и на всем остальном.
Минус 1С - это забетонированный ОРМ, на который невозможно влиять. А он ограничен примитивными связями таблиц, при этом используются средсива СУБД самые базовые - селект и инсерт, для таблицы остатков абдей, на которые никак нельзя повлиять. А сам язык запросов - чрезвычайно редуцированный селект с соединениями и временными таблицами. Никаких тебе общих табличных выражений, оконных функций, преобразований типов - если только строки в стро4и и числа в числа.
Сам по себе интерпретатор очень медленный - пустой цикл чуть ли не на порядок медленнее, чем в питоне, который вообще считается тормозным языком. Остальные конструкции не сильно лучше.
Система визуадизации тоже весьма примитивна. Для чего-то чуть сложнее примитивного списка уже приходится юзать поле html, в котором отрисовывать все самостоятельно.
В общем если прикинуть, то разработка приличного приложения на 1С бужет быстрее в части прототипа, но если дальше появятся требования пользователя по дищайну, то разраьотка на 1С уступит по времени разработки даже джаве, а уж по скорости работы аналогичный код на джаве будет выполняться на два порядка быстрее.
fixin Автор
11.09.2022 13:38я думаю, есть что-то среднее.
требования по дизайну не всегда нужны в учетных системах.
Нужна какая-то устоявшаяся подборка инструментов для создания трехзвенки.
Там, где работа с базой данных, код не очень требователен к скорости, все равно SQL будет на порядки меньше, тут не фракталы обсчитывать нужно.
starik-2005
11.09.2022 16:19Все относительно. Сейчас 1С висит много где из-за того, что СУБД не справляется - это, в основном, архитектурные просчеты, когда кто-то сильно захотел писать в 1С 4кк движений в день, а про то, что их оттуда читать еще надо, не подумал. Ведь в больших системах есть оперативные данные, есть исторические. Да, 1С тоже имеет оперативные и исторические данные, но они лежат в одной таблице по-сути-то. А механизмов вертикального и горизонтального шардирования нет. При том попытки организовать это средствами СУБД являются нарушением их идиотского лицензионного соглашения. Да, это снимает кучу проблем с ТП, которая отвечает первым делом "обновите платформу", но создает кучу проблем перед отделом разработки.
Да, пока у тебя ларек, у тебя вообще нет проблем в учете - это уже автоматизировали банки частично (или даже полностью, остальное в йокселе) . Если у тебя два ларька, то 1С тебе подойдет. Если количество ларьков начинает увеличиваться, то 1С начинает проседать в части производительности и начинает требовать неплохой такой ренты на свое обслуживание, т.е. становится взрослой системой с некислой стоимостью владения, и при всем том на стоимость владения влияют все эти архитектурные ограничения на масштабирование. И ларьки медленно переезжают с УТ на розницу, потом на фронтол, а 1С становится системой бэкофиса, в которой ни на минуту не перестает кипеть работа по выправлению учетных косяков. А если ты вдруг не торгашь, то у тебя проблемы начнутся даже раньше, т.к. свои кейсы ты в простые приходно-расходные документы вряд ли засунешь, а накликать миллиард кнопок в ЕРП - то еще веселье, т.к. каждый третий клик не туда, да и прилично соображающих в ней не так много, тем более при том количестве изменений, которое сейчас в ней происходит.
В общем стоимость разработки и владения среднего и крупного (в особенности) бизнеса уже не отличается разительно между своим продуктом и продуктами 1С. Да, для своего продукта нужен будет методолог-архитектор, но и для 1С трех консультантов придется где-то найти. И если что-то свое может быть спроектировано с учетом современных требований к масштабированию, мультиплатформенности (чтобы и на Эльбрусах в случае атомной войны завелось)\, то в части 1С ты вынужден запасаться костылями с граблями, сразу же лишиться поддержки 1С из-за шаловливых пальчиков экспертов по тех.вопросам, которые плевали на лицензионное соглашение (правда эта поддержка все-равно тебе бы не помогла - факт). И даже после всех ухищрений твой бэклог будет сопоставим с бэклогом вконтакта, который обрабатывает миллионы взаимодействий в секунды времени, в то время как продукт 1С на просто окулиард денег стоящем железе с трудом осиливает тыщенку.
PolarRaspa
11.09.2022 13:34У меня уже почти готово все как вы и описали. Прямо по вашему ТЗ.
Скоро выложу бесплатно.
Небольшое демо тут https://www.youtube.com/watch?v=ONOFC8kjtTU
fixin Автор
11.09.2022 13:34Отлично, очень ждем.
PolarRaspa
11.09.2022 13:51Там выше ссылка в комментах точно та же. У меня карма в минусах, к сожалению. Я не в мэйнстриме.
PolarRaspa
11.09.2022 20:03В личку интересуются. Еще видео записал примерный процесс создания прикладного кода.
askhats
11.09.2022 13:35Есть вариант Express Application Framework от Devexpress. Там и C#, и толстый и тонкий клиент, и отчетность, и генерация интерфейса на лету, и абстракция от БД.
BigKote
11.09.2022 13:44По сути у 1с из сильного это армия программистов замкнутых на 1с ну и юрисдикция РФ, у платформы из + это конструктор форм и конструктор отчетов, остальное спорно...
Если вы хотите, что то быстрое, интересное программистам (очередной велосипед никому не нужен) то предлагаю смотреть на современные стеки... иначе вы не сможете никого заинтересовать.
Я спрыгнул из 1с в Java, могу сказать, что в экосистеме Java просто набрать стек и написать некий опенсорс вариант вашего типового решения и уже его кастомизировать для конкретного клиента.
С фронтом, можно попробовать Flutter.
Но в любом случае вам будет нужна команда, так как в одно лицо такое не решить.
fixin Автор
11.09.2022 13:45-1Java пугает меня своей ООП-ностью. Программисту баз данных ООП не нужен, мне за 20 лет ни разу не понадобился.
codecity
11.09.2022 13:53На моей первой работе - чувак создал систему на Delphi, аналог 1С, но с привязкой к MS SQL. И все писал на этом самом MS SQL. Без конфигурации, емнип, стоила около 200 долларов тоже. Но платили им как раз за конфигурации и даже больше - за консультации, по сути. Т.е. в итоге это превратилось в контору, которая по большей части учила бизнес как правильно работать с государством ну и предоставляла инструмент.
Naf2000
11.09.2022 13:56+1Уже давно пляшут не от базы данных, а от доменной модели. А база данных это скорее особенность реализации
lair
11.09.2022 14:15Программисту баз данных ООП не нужен, мне за 20 лет ни разу не понадобился.
Программисту БД, возможно, не нужен. А вот программисту бизнес-систем либо ООП, либо ФП, но хоть какая-нибудь сильная парадигма нужна, иначе управление сложностью полетит под откос.
Naf2000
11.09.2022 13:53В большинстве IDE и языка программирование для разработки форм используется ООП, где над базовым классом формы создается класс новой формы и для каждого элемента формы создается своё поле этого класса. Но такой подход не универсален, т.к. не подходит для динамически создаваемых форм, где можно создавать множество элементов управления в зависимости от потребностей приложения.
1С использует другой подход — у нее есть визуальный конструктор, где на форме можно разместить нужные, выбранные из ограниченного набора типов полей, элементы управления. Свои типы элементов добавлять нельзя. Тем не менее, процесс разработки очень удобный.
Насчёт того, что для форм нельзя добавить рантайм контроля это неправда. Можно хоть в delphi, хоть в c#, например.
У 1с собственно подход тот же самый, только ограничен контролами самой 1с.
codecity
11.09.2022 14:34>для форм нельзя добавить рантайм контроля это неправда
Для .Net был ASP.NET Dynamic Data Entities, где функционал был из коробки. Потом выпустили чуть более продвинутый Visual Studio LightSwitch - наиболее близко к тому, чего хочет автор. Но сейчас все это объявили устаревшим и предлагают Power Apps уже исключительно по подписке.
mgis
11.09.2022 15:28+2Начал знакомиться с Системой компоновки данных от 1С (СКД).
И вот интересно сколько сил уйдет сделать такой же функционал на "убийцах 1С".
При всей моей нелюбви к 1С, которая обусловлена любовью к Python, TypeScript и Open-Source в целом, стоит все же признать 1С, очень сильно постаралась, чтоб быть и оставаться системой учета №1 на российском рынке.
И альтернатива достойная найдется ей не скоро.
В своем время я начал "пыжиться" пробуя автоматизацию на Odoo, но энтузиазм быстро пропал когда начал сравнивать время потраченное на разработку на Odoo и на 1C. Так и живем.lair
11.09.2022 18:24И вот интересно сколько сил уйдет сделать такой же функционал на "убийцах 1С".
[...] 1С, очень сильно постаралась, чтоб быть и оставаться системой учета №1 на российском рынке.Мне вот всегда любопытно: если речь идет о функциональности платформы, то почему оговорка "на российском рынке"?
borovinskiy
11.09.2022 16:38+1Кажется автору удалось убедительно обосновать, почему одиночки и небольшие компании на 2-3 программиста никогда убийцу 1С не запилят -)
Unholy_jazon
11.09.2022 19:07https://wonderland.v8.1c.ru/blog/obnovlyen-plan-zadach-na-versiyu-8-3-23-platformy-1s-predpriyatie-4/
Пункт 22. То что нужно?
fixin Автор
11.09.2022 19:07не думаю. Скорее всего, это не для public, а для своих (communiti). Или вы думаете, это от слова коммунизм? ггг
H737
11.09.2022 21:12-1мне не нужна Low-Code, мне нужна Middle-Code. Я программист. Я хочу взять и наваять тиражное приложение с БД без плясок с бубнами. Мне нужен инструмент для трехзвенки.
Пусть будет платно, не вопрос, но за разумные деньги.Не поздновато ли сейчас хотеть сделать платформу для трехзвенки?
Может об этом стоило думать 30 лет назад, когда 1С начала свой путь?
Минимум 10 лет назад.А сейчас уже это все может решиться с помощью ИИ (искусственный интеллект).
Отовсюду сыпятся заверения, что успехи в развитии ИИ таковы, что результаты этого нас вот-вот накроют и ИИ вот-вот заменит водителей, кассиров, бухгалтеров,.....И тогда говорим ИИ "хочу чтобы....", на выходе получаем желаемое.
Что-то типа волшебника Ээх из одного мульта или трех мужичков из другого мульта , восксклицающих "Что новый хозяин надо?!"И возникают вопросы:
А кто будет говорить "хочу...".
А будет ли нужно такое количество людей?
И будет ли тогда кому-то нужна трехзвенка?
Но это уже совсем другая история.... )
orefkov
12.09.2022 07:44Триста тридцать пять....
Уважаемый автор, если не ошибаюсь, ещё с начала нулевых убийцу 1С пишет, ещё с 7.7 :)
Тогда примерно раз в неделю очередной убийца на мисте начинался.
"Многие ждали меня в лесу, возле выкопанной ямы, видишь как всем им теперь к лицу, пиджачок деревянный".
fixin Автор
12.09.2022 07:44ничего страшного. Сколько веревочке не виться, а придется 1ске удавиться.
atri24
12.09.2022 11:23-1По-моему, надо смотреть в сторону blockchain и DeFi, это же сейчас модно :)
Будет что-то типа трехзвенки: сам блокчейн со смарт-контрактами, сервера которые будут майнить/валидировать, и много разных клиентских приложений.
Клиентские приложения - это и есть ваша часть с интерфейсом пользователя и отчетами для печати. В смарт-контрактах и в блокчейнах будет жить бизнеслогика и хранимые данные. Сервера будут обеспечивать работу всей этой инфраструктуры.
Если хочется чтобы все работало только у себя, то нужно будет все это развернуть в локальной сети.
dleshko
С этим что не так?
Dee3
Интересная штука
iliabvf
Все вышеперечисленное можно сделать в Java: Vaadin + Spring + Hibernate + MySQL. Круто будет выглядеть, летать по скорости и получите море удовольствия.
Если интересно пишите в личку, покажу расскажу с чего начать и как.
fixin Автор
Java слишком сложный типизированный язык для этого. Тут нужен бейсик или питон. В Foxpro и Clipper был очень простой код, без ООП
lair
Вы зря думаете, что питон проще, чем Java.
PavelSandovin
Да, он сложнее.
XelaVopelk
"В Foxpro и Clipper был очень простой код, без ООП" поделки на том и другом извел 1с. Это ему в плюс.
msdos9
Лично знаю бухгалтеров организаций разных сфер, которые до сих пор! с ностальгией вспоминают, как Вы изволили выразится, "поделки" на фоксе и клиппере.
XelaVopelk
и я тоже таких знаю.
PS "... раньше были времена, а теперь мгновения..."
iliabvf
Пробовали? Не знаю как может программисту с опытом как у вас, повернуться язык назвать Java слишком сложной.
urvanov
У Java очень большой слой легаси и костылей. Именно они в основном и добавляют сложность самому языку.
fixin Автор
мне не нравится, когда формы описывают через классы (ООП)
randomsimplenumber
Во всяких Delphi именно так и делается. Это позволяет писать меньше кода. Как раз формы - это то, куда ООП подходит идеально;) А кодировать дизайн простыней кода - это плохая идея на любом языке.
lair
Удивительным образом, описание форм через классы — это свойство не языка, а конкретного UI-фреймворка в нем.
fixin Автор
Пробовал. Вот пытался рэндзю написать: https://fixin.livejournal.com/1575100.html
IvaYan
А вы точно уверены, что опытные Java-разработчики напишут то что вы написали, так как вы написали? Может, главная причина того что у вас получилась жесть в том, что вы просто не знаете Java?
iig
Вы комментарии к той заметке читали? Простыня г***кода.
Neikist
Пипец, говнокод уровня студенческих лаб. Вы бы про паттерны почитали, чистый код, чистую архитектуру…
blinikar
На самом деле Java из-за строгой типизации очень часто выигрывает питону в простоте. Тут конечно долго можно спорить, но Java гораздо более предсказуема в поведении, чем Python.
fixin Автор
в приложениях баз данных предсказуемость на так важна
lair
То есть вас устроит, когда в один день БД выдает 15, а в другой, при тех же входных данных — 856?
igrishaev
Ради интереса посмотрите код фреймворка Django. Это фреймворк старой школы: модели, ORM, представления, шаблоны и прочее. Я бы не назвал его простым.
https://github.com/django/django/tree/main/django/db
codecity
А разве строгая типизация усложняет язык? Почему вы так думаете? Без строгой типизации так же нужно понимать что такое тип переменной, пусть он и не указан явно. Просто нет проверки на уровне компиляции, из-за чего много ошибок всплывают в процессе исполнения. А так в чем усложнение?
0xd34df00d
Питон вообще-то тоже строго типизированный. Вы говорите о статической типизации.
fixin Автор
в этом плане мне нравится бейсик и работа с COM-объектами, там не нужно указывать типы объектов, а просто написать, что ты хочешь с ними сделать.
Типизация - лишняя, как бы это сказать культурно, мастурбация.
lair
Лишняя она ровно до тех пор, пока вы не выясняете, что вы хотите сделать с объектом то, что с ним сделать нельзя. Статическая типизация позволила бы узнать об этом до запуска приложения.
fixin Автор
можно писать приложения качественно, тогда об этом думать не нужно
PavelSandovin
Ну да, писать приложения надо быстро, качественно и без ошибок. И тут как раз хорошо, когда инструмент тебе помогает, автоматизируя часть рутины и убирая часть машинальных ошибок.
А вот когда в языке возможны конструкции
b = f(a) //как должно быть
f(a,b) //неправильный вызов
Причем во втором случае ни компилятор, ни интерпретатор не сообщают об ошибке, то можно попасть на многочасовую отладку.
lair
Знаете, в моем опыте ровно наоборот: чтобы писать приложения качественно, приходиться думать. И чем больше этого "думать" можно переложить на компьютер в виде проверок, тем лучше.
0xd34df00d
Зависит от сложности проекта.
Когда я пишу шелл-скрипт на десяток строк без всякой логики, там мне все эти типы тоже не нужны.
XelaVopelk
Учетная система (а речь о ней), даже простая - это не "шелл скрипт на десяток строк".
0xd34df00d
Я тоже так считаю, поэтому отношение автора к типам меня удивляет.
fixin Автор
по сути писать учетную систему не сложнее чем шелл, если инструмент простой. в бейсике тоже не было типов и ничего.
fixin Автор
там нет ничего сложного.
fixin Автор
не усложняет, но на практике она особо не нужна.
lair
Возможно, если она (как и ООП) не нужна вам, это еще не повод считать, что она не нужна никому.
Кстати, каждое такое громкое утверждение ("Х не нужно") несколько уменьшает множество людей, которым интересен ваш потенциальный проект.
fixin Автор
стада вредны. Лучше пучок энтузиастов, чем толпа заскорузлых фанатиков классики.
nikolas78
Стада приносят деньги и славу, а что приносит пучок энтузиастов?
ZloyVampir
Все вышеперечисленное можно сделать в С++: Пишете свою СУБД, свою ORM, свой фреймворк. Круто будет выглядеть, летать по скорости и получите море удовольствия.
Все вышеперечисленное можно сделать и на ассемблере: пишете свою ОС, свою СУБД, свой компилятор ЯП общего назначения, свою ORM, свой фреймворк. Круто будет выглядеть, невероятно летать по скорости и получите море удовольствия.
Простите, абсурд. Java - ЯП общего назначения. Вы на ней можете написать что угодно. На счет летать и моря удовольствия - ой, не факт. Глючный и тормозной код можно писать на чем угодно. 1С - это готовый конструктор. Я коммерческую систему на 1С могу написать за пару дней. Она будет выполнять все свои функции и в ней будет нормальный коммерческий обвес со всякми рюшечками и прочей красотой.
На Java вы будете писать кратно дольше и весь обвес нужно программировать (и это с гибером, спрингом и еще 100500 библиотек). И вы гарантированно не дотащите функционал до уровня 1С. И, ой не факт, что будет летать.
MaximRV
Ну так и платформа 1С тоже на сях пишется
fixin Автор
есть такое, но можно и без С++ трехзвенку ваять.
iig
Зачем в 21 веке трехзвенка? Микросервисы! :)
lair
Вот только интент поста (и обсуждения в нем) — как написать альтернативу 1С.
fixin Автор
да, сугубо из-за проприетарности 1С.
codecity
>Пишете свою СУБД
Свою СУБД пишут и поддерживают годами целые команды высококлассных спецов, которые получают по 120-500 тыс. долларов в год. Нужно немножко адекватно оценивать свои силы.
ZloyVampir
Так в этом и суть. Я отвечаю на комент, где суть сводится к "на фиг 1с? я на джаве одной левой тоже самое сделаю, давайте покажу как". Не тоже самое. И с совершенно другими трудозатратами.
fixin Автор
Я вот не думаю, что ORM непременно нужна в базах данных. В 1С как-то без нее обходятся.
Naf2000
В 1С как раз ORM
Coffe4wolf
Потом сложно искать специалистов которые смогут поддерживать весь этот зоопарк
fixin Автор
о. там даже в заголовке написано, что не так: "Декларативная". типа Пролога. Такая вещь никогда не станет популярной. Неудобная.