Цитата:
Сообщение от
ax_mct
X++ является только частью инструментария для программиста AX.
X++ не является независимым языком как тот же C++
Инструменты меняют, причем иногда части инструментов на более новые.
Цитата:
Поэтому если говорить о Блабе то это не X++ а сама система в целом.
Не как X++ vs С# а как Axapta 3.0 vs AX 2009 vs AX 2012 vs AX 2015.
Вам знакомо слово "декомпозиция"?
Цитата:
Надежность "движка", среды выполнения, обработки ошибок ядром намного важнее чем мощь инструкций и удобство программиста.
см. ниже ("статическая типизация")
Цитата:
Для программиста AX умение тестировать результат своей работы намного важнее чем
умение создавать математически чистый код.
При хорошей статической типизации и других средствах статического анализа необходимость в тестировании снижается.
Цитата:
В условиях постоянных новых вводных для того чтобы код был "чистым" его часто надо переписывать с нуля.
Вы все пропустили - рефакторинг известен с 1991 года, если верить википедии. Сейчас уже давно есть автоматизированные средства для многих распространненных языков.
Цитата:
А это уже нереально или просто опасно. "Грязные" но безопасные заплатки лучше в большинстве случаев.
Если они грязные, то как правило, небезопасные.
Цитата:
Комментарии в коде и осмысленные наименования намного эффективнее чем иной синтаксис или математическая чистота кода.
Как жаль что для X++ нет средств для безопасного переименования.
Как жаль, что в X++ нет пространст имен и подсистеме даже нельзя дать имя.
Цитата:
P.S. К чему это я => язык это только малая часть средств разработки, а его синтаксис это вообще дело вкуса но не более того.
Существует объективная семантическая разница между языками и вкус тут не причем. Просто блаб программистам не видно то, что выше привычного уровня абстракции.
Цитата:
Что вы хотите получить от С#? Безопасность превыше правил. Причем животное это AX а автомобиль это программист
Вообще, если язык так не важен - почему бы его не заменить на более отлаженный и не сэкономит на поддержке в долгосрочной перспективе?
Давайте про безопасность:
- Безопасность - это статическая типизация
в X++ нету дженериков, поэтому List, Map, Array, Set, container используются без уточнения типа, в результате соответствие типов не проверяется.
Нельзя объявить Query<InventTrans> поэтому в самых важных для разработки ERP частях код не проверяется компилятором. select имеет совершенно нелогичную семантику и тоже не проверяется статически (присоединением exists join можно сломать запрос и компилятор ничего не скажет, можно не выбрать поле и его использовать и т.д.)
- Безопасность это проверки - для X++ нет ничего похожего на CodeContracts
- Безопасность - это легкость понимания - нельзя выделять куски select в отдельные функции - в результате копипаст и ошибки при модификации.
Нет продвинутых средств поиска участков кода
- Безопасность, это единый стиль - в X++ нет достаточно удобных средств для рефакторинга, проверки стиля кода.