27.07.2019, 00:04 | #1 |
Участник
|
Как вы думаете почему прогресс средств разработки в ERP отличается от общего прогресса по отрасли (ИТ) в целом?
Я сначала думал «набросить», но потом решил пояснить свою мысль. 10 лет назад все те, кто работает с системами Microsoft читали и мечтали про .NET Иногда на этом форуме возникали споры: что лучше X++ SQL или LINQ!? Все ждали Project Green и что вот вот все изменится.
Ничего кардинально не изменилось, кроме того что все усложнилось на «бэкенде» (я сейчас про внутренности системы). В AX2012 появилась компиляция в .NET CIL, при этом на «клиенте» остался p-code и все это хотя и работало, но работало несуразно и я сразу скажу, что у меня минимальный опыт с AX2012, но я прекрасно помню как весь CIL AOT в некоторых ситуациях ломался и все приходилось перестраивать. Появилась D365FO. Там «убрали» клиент и оставили только сервер, на котором все уже теперь реально из Х++ компилируется в .NET CIL. Результаты можно почитать в соседней ветке про Ламоду, но смысл в том, что у нас до сих пор Х++, пускай и с атрибутами методов, но все тот же. Мой вопрос вот в чем: от реальной аксапты которая все еще была в версии 2009 осталось очень мало, но при этом «мы» до сих пор используем Х++ созданный еще компанией Damgaard, причем скопированный с Java образца 1998 года и то не полностью. Почему? Что мешало Microsoft заменить все на C#? Legacy code? Ну может быть, но там уже даже в 2012-й все внутри бизнес-логики перепахали почти полностью! Вопрос еще более глобальный: почему вендоры не хотят менять эту ситуацию? Языку программирования 1С больше 10-ти лет, он никак не развивается. С глобальной точки зрения с этим языком им закрыт выход на мировой рынок! (Ну потому что Cobol II никому не нужен) Почему самый крутой гигант ERP - SAP до сих пор использует ABAP, при том что, несмотря на их «заигрывания» с Java, они так полностью на нее и не перешли. Хотя у них даже свой Java EE Application Server есть. Я пытаюсь понять: почему технологически ERP системы находятся так позади всего того прогресса, который мы сегодня видим в ИТ? |
|
27.07.2019, 08:56 | #2 |
Участник
|
Язык не шарп, потому что в шарпе нет t-sql, а в шарпе много лишнего для ide dax.
Говоря про прогресс - компилятор это как раз шаг назад, частично из-за него ушли на расширения. МС должен был давно купить, украсть, изобрести заново гибридный режим исполнения кода, как у явы. |
|
27.07.2019, 10:21 | #3 |
Участник
|
Цитата:
Цитата:
Сообщение от Lemming
Мой вопрос вот в чем: от реальной аксапты которая все еще была в версии 2009 осталось очень мало, но при этом «мы» до сих пор используем Х++ созданный еще компанией Damgaard, причем скопированный с Java образца 1998 года и то не полностью. Почему? Что мешало Microsoft заменить все на C#? Legacy code? Ну может быть, но там уже даже в 2012-й все внутри бизнес-логики перепахали почти полностью!
Но по сути текущее время показывает что это правильная стратегия |
|
27.07.2019, 10:25 | #4 |
Участник
|
Цитата:
Цитата:
в котором взвешенно оценивались последствия и необходимые усилия перевода аксапты на c#. Документ был написан в духе "не нарушить совместимость". прежде всего по разному обрабатываются строки с ограниченной длиной. в C# все строки бесконечной длины, а в X++ сроки с edt всегда тримятся и обрезаются. в результате констркуции типа AccountNum+AccountName могут дать разный результат в C# и в X++ также очень много говорилось о клиент-серверном взаимодействии в Аксапте. А также о сборщике мусора, времени жизни объектов. Ну и пресловутые ключевые слова select, update_recordset и т.п. По ним в документы были очень любопытные предложения. В общем, очень взвешенный и очень качественный документ. Насколько я понимаю, руководство тогда побоялось резких изменений и побоялось объема работ по несовместимости. А потом... херакс! и ax7. полностью не совместимая. в которой продцедур апгрейда с предыдущих версий не предусматривалось. А все почему? А руководство поменялось. Цитата:
Вопрос подразумевает, что в ИТ мейнстрим. Нет, мейнстрим - это как раз ЕРП, легаси и корпоративный софт. А всякие реакты, докеры и прочие кубернетики - это очень дальний фронтир, на котором все может поменяться в несколько ближайших лет. другое дело, что например в X++ вполне можно было бы задействовать и перегрузку методов и генерики. Но пока команда занимается другими вещами - делает из открытой системы закрытую с плагинами и точками расширения (кстати, тоже холивар давно минувших дней) и переводит исходный код из хранилища aod/utilElements в файлы (тоже очень древняя тема). =========== Во-вторых - а почему так происходит? Не почему позади фронтира (это то как раз понятно), а почему так лоскутно и усложненно? ("все усложнилось на «бэкенде»") помимо компиляции в CIL можно вспомнить: * роле ориентированный интерфейс * ListPage * корпоративный портал (привнес web объекты в AOT, выкинут) * корпоративный портал на SharePoint (привнес DataSet объекты, выкинут) * OLAP (те же Data sets, выкинуто) * Partitions (выкинуты) * виртуальные компании выпилили поскольку не разобрались как с ними работать во внешних системах * наследование таблиц (введено и выпилено в следующем сервис-паке) * Permissions в коде на сервере, будь они не ладны * отчеты на Reporting Service и соглашение о dataContracts * новая и улучшенная схема размещения контролов в ax2012 * SysOperationProgress и пресловутый фрейворк, который все не может заменить * подзадачи в пакетном сервере * "суперэффективное" хранение кода в SQL базе было выпилено и заменено на "традиционное" хранение кода в файлах (но при этом почему-то как xml, му-ха-ха) * полностью прибили клиентский код в ax7 (может и вернут: людям надо работать с оформлением формы, людям надо создавать свои контролы на форме, людям надо работать с оборудованием клиентского компьютера, см Retail) * закрыли код и ввели расширения. Но при этом не хватило умений добавить точки расширения в длиннющие методы на несколько сотен строк (а такая технология есть конечно. например, весь движок этого форума построен на плагинах) * перевели в ажур, но для этого отобрали админский доступ к СВОЕЙ базе данных и возможность отладки в Проде и так далее. поэтому нельзя сказать, что совсем ничего не делается. делается. активность зашкаливает. но эта активность носит какой-то фрагментарный и только усложняющий жизнь потребителя характер. причина по моему - система работы руководителей в крупных корпорациях. руководитель назначается на некоторый период. как правило на 1 (один) финансовый год. причем в современных реалиях этот период заведомо меньше, чем время, необходимое для реально полезного изменения системы. так, ax7 была явно переходной системой. да и ax8 концептуально готовой не назовешь. понятно, что перевод с X++ на C# - это огромный проект, который за один финансовый год точно не выполнить. также можно вспомнить проект Electronic Reporting (ER), который длится уже несколько финансовых лет. И опять же нельзя сказать, что он готов к конкуренции с уже существующими на рынке решениями. Что делать руководителю, у которого мандат на 1 год и задачи длительностью в 3-5 его мандатов? А выбирать "киллер-фичи", которые хотя бы предположительно можно сделать за 1 год. См. список выше. Сделал? ну хоть KPI какие-нибудь выполнил? молодец! А что дальше? Дальше он пойдет по карьерной лестнице на другую должность. Ась? Что-что? Пользователи? вот же, они получили такую замечательную киллер-фичу. Радуйтесь. Причем, что я вынес для себя лично во время работы в МС. в МС дураков нет. Все всё понимают. И рядовые сотрудники, и руководители. Но сделать ничего не могут. Причем когда я там был, то уже рядовые сотрудники уже и не пытались что-то с этим сделать. ============= В вопросе звучал 1С. В 1С на самом деле то же самое. Там конечно Нуралиев Б. и Нуралиев С. гораздо ближе к земле, поэтому не настолько запущено. Но и там есть руководители. Да их сроки не настолько жесткие как в МС. Но в принципе то же самое. Про САП. Там, насколько я понимаю, все сильно жестче со сроками и KPI, чем в Майкрософт. Наружу проявляется в том, что директора российского подразделения меняются в последнее время чаще чем раз в год что с этим делать - хз. |
|
|
За это сообщение автора поблагодарили: EVGL (3), trud (5), Lemming (5), twilight (1), apanko (4). |
27.07.2019, 10:29 | #5 |
Участник
|
есть конечно.
другое дело, хотят ли люди такого уровня заниматься legacy системой. Цитата:
народу важно соотношение цена/качество в целом по продукту. поэтому да, согласен. качество отдельных составляющих не так важно. но качество продукта в целом напрямую определяют затраты на внедрение и использование. |
|
27.07.2019, 11:02 | #6 |
Участник
|
Цитата:
т.е. пусть даже есть отличные архитекторы, которые отлично описывают как решить актуальные проблемы -- и далее это все отправляется на кодирование и реализацию в Индию, и мы имеем что имеем. - думаю так было с модулем дата-менеджемент ну или с ER - почему Docentric выпускает такие статьи https://ax.docentric.com/are-configu...5fo-reporting/ а не разработчики Microsoft(типа мы проанализировали проблемы, существующие решения на рынке и хотим предложить бомбу ) |
|
27.07.2019, 11:57 | #7 |
Участник
|
Цитата:
Цитата:
в итоге архитекторы вынуждены подстраиваться под руководство и диктовать своим командам такой же стиль - киллер-фич, ну и плюс что-то обязательное "что можем сделать". как они это влияют на продукт? расставляя приоритеты в бэклоге. например, международная команда оптимизировала расчет себестоимости в аксапте. давно уже. как обычно делает изменения международная команда? есть основная ветка, есть ветка локализованного функционала. международная команда конечно же изменит только основную ветку. задача "изменить локализованный функционал" попадает в бэклог команде локализации. вопрос - какой приоритет поставит архитектор задаче оптимизировать расчет себестоимости в валюте? ответ - очень давно мы имеем в аксапте ДВА алгоритма расчета - один международный, другой - "российский". Переключение происходит галочкой корреспонденция. дальше программ-менеджеры (консультанты у обычных людей). как они влияют? выбирая свою маленькую киллер-фичу в своем бэклоге. ===== Добавил, чтобы не казалось, что это проблема локализации: давным-давно, еще в акс2012 (звучит как начало сказки, право) архитекторы задумали и сделали развесистую финансовую аналитику. даже контрол специализированный реализовали. есть только одна маленькая проблемка - нет поиска по конкретной аналитике. ну, не вписывается такая финансовая аналитика в существующий поиск. и я даже не знаю есть ли в принципе задача "прикрутить поиск по финансовой аналитике" в бэклоге. ===== Цитата:
Сообщение от trud
ну или с ER - почему Docentric выпускает такие статьи https://ax.docentric.com/are-configu...5fo-reporting/ а не разработчики Microsoft(типа мы проанализировали проблемы, существующие решения на рынке и хотим предложить бомбу )
знаю одно - настройкой ER занимались все и каждый внутри российской команды. И настройкой, и апгрейдом на внутренние релизы. Лично я своей первой задачей получил разобраться с ER и сделать внутренний документ с анализом. Не знаю как другие, я молчу про ER именно потому что с ним работал. ============ и да, я совсем забыл об одной вещи: внутри мс царил стиль "куда эти пользователи от нас денутся?". иногда перерастающий в совершенно неприличное "конкуренты? что это такое? да там в углу на коврике" Зачем экс-глава Microsoft в России создает ERP и CRM на базе 1С: интервью гендиректора World Class Николая Прянишникова прям советский союз какой-то. и ладно бы наши такой стиль диктовали... было бы понятно что делать. Последний раз редактировалось mazzy; 27.07.2019 в 12:17. |
|
|
За это сообщение автора поблагодарили: Logger (3), gl00mie (3). |
27.07.2019, 14:34 | #8 |
Участник
|
2 mazzy. Извини за занудство, но с усечением строк они дали задний ход, как и с наследованием табличек.
mfp: X++ in AX7: String truncation |
|
27.07.2019, 14:49 | #9 |
Участник
|
Цитата:
Сообщение от Logger
2 mazzy. Извини за занудство, но с усечением строк они дали задний ход, как и с наследованием табличек.
mfp: X++ in AX7: String truncation и возможность перейти на C# потеряли |
|
27.07.2019, 15:36 | #10 |
Moderator
|
Я чуть-чуть дополню и немного не соглашусь с mazzy,
Во первых в DAX2012 радикально изменились главная книга, конфигуратор продукции и ресурсное планирование. Добавился новый модуль упраления складом. Все остальное что изменилось и добавилось - это маркетинговые фичи очень ограниченного применения. При этом - только новая ГК принципиально не совместима с аксаптой по идеологии (и вообще кривой кусок дерьма). Все остальное - совместимо на уровне идеологии как раз. Так что я бы сказал что в DAX2012 - 85% кода совместима с аксаптой по идеологии, и процентов 70 - просто совместимо. Во вторых - на уровне топ-менеджмента в MS, нормальный срок сидения на должности - это лет 5. Да - есть годовые результаты и метрики, но по моему впечатлению, чтобы тебя слили, надо зафакапить два годовых плана подряд. На уровне среднего менеджмента - горизонт планирования - года два -три. Там подход - запилить killing featue->промаркетить себя хорошенько->Уйти в другое подразделение с повышением - работает в полный рост. Именно этому подходу обязаны своим существованием наследование таблиц, SysOperation, новая ГК и распределения, методология SureStep. В третьих - а ты вообще уверен что прогресс в средствах разработки - он реальный а не маркетинговый ? То есть - с точки зрения enterprise, последняя технология, которая реально окупала свое внедрение была трехзвенка, внедренная аж 20 лет назад. Все что было после - это были попытки (пусть и успешные) выдать все новые и новые поколения весьма нишевых технологий за очередную технологическую панацею. Со средствами разработки, картина примерно аналогичная. Да - наверное с generics, замыканиями и итераторами на уровне языка можно было бы писать код местами покрасивее и побыстрее, но особого прорыва это бы не произвело. Последний раз редактировалось fed; 27.07.2019 в 15:58. |
|
|
За это сообщение автора поблагодарили: AlGol (2), Lemming (5), apanko (4). |
27.07.2019, 16:00 | #11 |
Участник
|
Сразу говорю, что знаю, что это оффтипик)
Простите, я не очень понял насчет GL((( Что так сильно изменилось? Могли бы Вы широкими мазками написать 2-3 предложения? Если что, я с т.з. BA\PM и FC, а не DEV) |
|
27.07.2019, 16:04 | #12 |
Участник
|
ура!
Цитата:
не согласен про платформу. убрали старые отчеты и добавили Reporting Service именно в 2012 добавили в платформу пре- пост- EventHandler'ы и делегаты именно в 2012, а уже потом в акс7 эти инструменты стали использоваться в полный рост в экстеншенах. и уже сильно потом случился code seal и перевод всех модификаций в... пре- и пост- обработчики. понятно, что потом техника и реализация этих инструментов изменилась. но появились то они в 2012. это значит, решение по ним было принято еще раньше. Опять же компиляция в CIL появилась именно в 2012. пусть и в режиме опции. Цитата:
Цитата:
Сообщение от fed
Во вторых - на уровне топ-менеджмента в MS, нормальный срок сидения на должности - это лет 5. Да - есть годовые результаты и метрики, но по моему впечатлению, чтобы тебя слили, надо зафакапить два годовых плана подряд. На уровне среднего менеджмента - горизонт планирования - года два -три. Там подход запилить killing featue->промаркетить себя хорошенько->Уйти в другое подразделение с повышением работает в полный рост. Именно этому подходу обязаны своим существованием наследование таблиц, SysOperation, новая ГК и распределения, методология SureStep.
но тут могу сильно ошибаться. мне кажется, что можно отделить период Кирилла Татаринова и период Сатьи Наделы. Где-то между произошли очень сильные изменения. Цитата:
я совершенно не уверен что эти изменения можно назвать прогрессом. Цитата:
дело в стоимости разработки и поддержки. покопавшись в Котлине, я точно уверен, что генерики уменьшают стоимость разработки библиотеки и стоимость изучения библиотек. я точно уверен, что перегрузка методов уменьшает стоимость программирования. просто ломает возвращаться в джаву первого поколения (X++), попрограммировав в других языках. в той же java 8 абсолютно точно уверен насчет итераторов. уменьшают стоимость разработки. даже в X++ https://github.com/mazzy-ax/SysEnumerators не очень уверен насчет лямбд, замыканий но тут важно что - использовать библиотеки .net без генериков и перегрузки методов - очень муторно. не говоря уже об обратном - использование классов Аксапты из .net приложения. в общем, на мой взгляд, стоимость разработки снизилась бы существенно, если бы просто начали использовать C# или довели X++ до текущего развития C#. Совместимость они жеж все равно потеряли в ax7 Последний раз редактировалось mazzy; 27.07.2019 в 16:10. |
|
27.07.2019, 16:18 | #13 |
Участник
|
subledger
финансовая аналитика dimension set общие для нескольких компаний планы счетов таблицы, которые хранят финансовые проводки |
|
|
За это сообщение автора поблагодарили: cuba (1). |
27.07.2019, 17:45 | #14 |
MCT
|
Читаю все это и понимаю. что приходит время выпилить ядро Dynamics Ax 2009 в виде скомпилированного приложения на какую нить Ubunutu, и начинать запиливать api на php, что бы клиент мог быть каким угодно, хоть на реакте, хоть на ноде, хоть на ext.js. Тогда получится, что морду можно на чем угодно делать, а бек будет стабильным и документированным.
__________________
Axapta book for developer |
|
27.07.2019, 17:49 | #15 |
Участник
|
Цитата:
Сообщение от MikeR
Читаю все это и понимаю. что приходит время выпилить ядро Dynamics Ax 2009 в виде скомпилированного приложения на какую нить Ubunutu, и начинать запиливать api на php, что бы клиент мог быть каким угодно, хоть на реакте, хоть на ноде, хоть на ext.js. Тогда получится, что морду можно на чем угодно делать, а бек будет стабильным и документированным.
только не на php, а на java потренироваться на кошечках: https://github.com/asm0dey/school-crm |
|
27.07.2019, 18:27 | #16 |
Участник
|
Я не уверен про spring, потому что слабо себе представляю REST API, например, для грида, содержащего план счетов. Это сколько надо end points описать!? Я так же не уверен про традиционные ORM вроде Hibernate, потому что, опять же, не уверен сколько надо запросов написать для грида плана счетов!? Мне кажется тут надо какой-то движок строить, который запросы генерирует, в зависимости от того что его запрашивает "веб-морда." Я даже про Java не уверен, потому что большой вопрос: сколько будет собираться проект, который допустим даже не равноценен по функционалу всей аксапте, а допустим мы как по модулям поделим его, но все-равно боюсь очень долго. Хотя тут не знаю, некоторые живут с миллионом строк кода под андроид, а там сборка медленней, чем для Java бэка.
Цитата:
Сообщение от mazzy
потренироваться на кошечках: https://github.com/asm0dey/school-crm
Последний раз редактировалось Lemming; 27.07.2019 в 18:38. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
27.07.2019, 18:58 | #17 |
MCT
|
Цитата:
Сообщение от mazzy
ключевое слово spring.
только не на php, а на java потренироваться на кошечках: https://github.com/asm0dey/school-crm Что мне нравится в Laravel, что там есть паттерны, без них будет легаси однозначно
__________________
Axapta book for developer |
|
27.07.2019, 19:04 | #18 |
MCT
|
Цитата:
А сколько форм обычно пользует на проекте заказчие, сотни тысяч ? Не забываем, что можно формы совмещать. В связке Laravel- ms sql или postgres можно с миллионами записей работать в легкую.
__________________
Axapta book for developer |
|
28.07.2019, 20:07 | #19 |
Участник
|
Цитата:
Цитата:
частично из-за него ушли на расширения. МС должен был давно купить, украсть, изобрести заново гибридный режим исполнения кода, как у явы.
|
|
28.07.2019, 20:41 | #20 |
Участник
|
А еще есть гигантский модуль под названием "ApplicationSuite" который при генерации IL приходится разбивать на netmodule и для конвертации в C# пришлось бы рейфакторить на подмодули, разруливать перекрестные ссылки и так далее.
А еще есть всякие extensibility фичи типа подписки на начало и завершения любого метода. В-общем, попробуйте взять любой свой модуль, написанный на X++ и декомпилировать в C# - посмотрите на что был бы похож эквивалентный код. Цитата:
А потом... херакс! и ax7. полностью не совместимая. в которой продцедур апгрейда с предыдущих версий не предусматривалось.
Во-вторых, сейчас я вижу документацию по апгрейду. В-третьих, обратная совместимость нужна для своего собственного application suite (соответственно трата сил и порождение большего количества глюков) Цитата:
А все почему? А руководство поменялось.
Цитата:
* "суперэффективное" хранение кода в SQL базе было выпилено и заменено на "традиционное" хранение кода в файлах (но при этом почему-то как xml, му-ха-ха)
Цитата:
* полностью прибили клиентский код в ax7 (может и вернут: людям надо работать с оформлением формы, людям надо создавать свои контролы на форме, людям надо работать с оборудованием клиентского компьютера, см Retail)
Цитата:
понятно, что перевод с X++ на C# - это огромный проект, который за один финансовый год точно не выполнить.
Последний раз редактировалось belugin; 28.07.2019 в 20:52. |
|
Теги |
1c, abap, axapta, sap, xpp |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|