AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2014, 18:45   #41  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Т.е. может ли после указания критериев быть много кода прежде чем будет создан новый список по этим критериям?
Критерий - это параметр метода создания списка

в C# можно сделать как-то.

X++:
var isEven = (Int x) => x % 2 == 0;

...   ...

new []{1, 2,3,4,5}.Where(isEven);
То есть в каком-то смысле может (код самого критерия отдельно).

В каком-то смысле не может (этот параметр обязательный и надо что-то туда передать)

Аналогично

X++:
bool isEven(int x)
{
     return x % 2 == 0;
}

...   ...

new []{1, 2,3,4,5}.Where(isEven);
Старый 11.09.2014, 19:50   #42  
online
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Языки программирование вообще созданы для удобства. Без них вообще можно обойтись. Тут никакого "только так а не иначе". Теоретически можно даже на brainfuck перейти - он тоже Тьюринг-полный.
Языки программирования созданы для удобства. Да. Но следует уточнить: для удобства решения определенных задач.

Так вот, каким образом, описанная типобезопасность позволит упростить (иначе, зачем связываться) решение тех задач, для которых и предназначен язык X++? Собственно, какую вообще задачу решает подобная типобезопасность?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 12.09.2014, 10:23   #43  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Так вот, каким образом, описанная типобезопасность позволит упростить (иначе, зачем связываться) решение тех задач, для которых и предназначен язык X++? Собственно, какую вообще задачу решает подобная типобезопасность?
Посмотрите по перекрестным ссылкам количество мест испорльзующих Map, List, container и прочих.

Во всех этих местах компилятор не найдет ошибок если вы будете использовать не тот тип.
Старый 13.09.2014, 17:57   #44  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Цитата:
Сообщение от skuull Посмотреть сообщение
х++ не единственный язык без прочей радости и это не повод ему "умирать".
У языков программирования два пути - быть замещенными более развитыми средствами или догонять уходящий поезд, т.е. включать в себя полезные наработки тех языков, которые наступают ему на пятки.
Старый 17.09.2014, 03:08   #45  
KindDog is offline
KindDog
Участник
 
28 / 36 (2) +++
Регистрация: 13.07.2005
Адрес: Москва
Лучше бы Python вместо шарпа вкорячили.... си плюс плюсов было бы больше
Старый 17.09.2014, 10:01   #46  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от KindDog Посмотреть сообщение
Лучше бы Python вместо шарпа вкорячили.... си плюс плюсов было бы больше

Как в Питоне сделать, чтобы
X++:
(x for c in employee if employee.salary >= 100)
Приводило к SQL запросу? Я, правда, перестал интересоваться этим лет 8 назад - но тогда хорошего способа не было.
Старый 17.09.2014, 10:25   #47  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Мне кажется основные проблемы в Аксапте не из-за языка программирования и его недостатков / преимуществ. Все что сейчас надо, можно сделать текущими средствами.

Вопрос в том что именно делать, как делать и как это продавать.
Старый 18.09.2014, 17:18   #48  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
А еще полезная фича от ФП - передача функции как параметра.
Недостатков в современных системах и языках быть не должно, нужно принимать все полезное новое, а не страдать от отсталости имеющихся средств.
Благо выбор инструмента имеется.
Конечно можно и старой ржавой лопатой траншеи копать, а можно и современной машиной. Вопрос каким инструментом быстрее и менее затратнее.
За это сообщение автора поблагодарили: Diman (1), pitersky (-1).
Старый 18.09.2014, 19:43   #49  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,486 / 408 (16) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от perestoronin Посмотреть сообщение
Конечно можно и старой ржавой лопатой траншеи копать, а можно и современной машиной. Вопрос каким инструментом быстрее и менее затратнее.
"если у вас есть молоток, то вы со всем будете обращаться как с гвоздями"(с)
инструмент всё-таки должен соответствовать задаче
копать современной машиной траншеи, конечно, быстрее, но если она копает 5% времени, а 95% простаивает, то вряд ли это эффективный инструмент
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: perestoronin (-1).
Старый 19.09.2014, 08:44   #50  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от perestoronin Посмотреть сообщение
А еще полезная фича от ФП - передача функции как параметра.
Недостатков в современных системах и языках быть не должно, нужно принимать все полезное новое, а не страдать от отсталости имеющихся средств.
Благо выбор инструмента имеется.
Конечно можно и старой ржавой лопатой траншеи копать, а можно и современной машиной. Вопрос каким инструментом быстрее и менее затратнее.
Быстрее и дешевле всего аммоналом рвануть. При этом пустота в грунте образуется в разы больше, чем у конкурентов.
К примеру, те же ФП штука мощная, но читать и дебажить их почти так же трудно, как регулярные выражения.
__________________
Isn't it nice when things just work?
За это сообщение автора поблагодарили: perestoronin (-1).
Старый 19.09.2014, 09:01   #51  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от macklakov Посмотреть сообщение
но читать и дебажить их почти так же трудно, как регулярные выражения.
Почему?
За это сообщение автора поблагодарили: perestoronin (1).
Старый 19.09.2014, 09:51   #52  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от belugin Посмотреть сообщение
Почему?
Ну насколько помню, там breakpoint не на что поставить. И рекурсии на каждом шагу. А еще возможность написать всю программу в одну строку. Ну и конечно же ФП чемпион по возможностям мета-программирования.
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
__________________
Isn't it nice when things just work?
Старый 19.09.2014, 10:58   #53  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну насколько помню, там breakpoint не на что поставить. И рекурсии на каждом шагу. А еще возможность написать всю программу в одну строку. Ну и конечно же ФП чемпион по возможностям мета-программирования.
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
Вот-вот !
Нужно думать еще о том какого уровня спецы будут потом систему поддерживать.
Спички детям не игрушка.
За это сообщение автора поблагодарили: Diman (1), perestoronin (1), ax_mct (4).
Старый 19.09.2014, 11:13   #54  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну насколько помню, там breakpoint не на что поставить.
В F# можно (есть еще REPL), в C# в лямбдах нельзя.

Цитата:
И рекурсии на каждом шагу.
А это чем мешает?

Цитата:
А еще возможность написать всю программу в одну строку.
Такие программы дебажатся при помощи repl

Цитата:
Ну и конечно же ФП чемпион по возможностям мета-программирования.
ФП и метапрограммирование параллельны. Сравните Lisp nemerle и какой-нибудь F#.

Цитата:
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
LINQ в C# этот как раз ФП для немытых масс. + больше возможностей реализовать open closed principle (убрать от шалдовливых ручек правку исходников, а всместо этого давать расширять)
За это сообщение автора поблагодарили: Diman (1), perestoronin (1).
Старый 19.09.2014, 11:18   #55  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от macklakov Посмотреть сообщение
Ну насколько помню, там breakpoint не на что поставить. И рекурсии на каждом шагу. А еще возможность написать всю программу в одну строку. Ну и конечно же ФП чемпион по возможностям мета-программирования.
Лучше такой инструмент в руки прикладных аксапщиков не давать. Я бы и контейнеры с макросами убрал бы от шаловливых ручек подальше.
Брекпоинты ставить можно во многих ЯФП, правда не везде, но если правильно код написан, то и отладка в тех местах не нужна. В ФП много разных вкусностей, но увы, это не про X++ и даже не про С#.

А вот за контейнеры, согласен, я б их вообще запретил, а еще c anytype что-то надо сделать на этапе компиляции.
__________________
Sapere aude
Старый 20.09.2014, 01:48   #56  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от Logger Посмотреть сообщение
Вот-вот !
Нужно думать еще о том какого уровня спецы будут потом систему поддерживать.
Спички детям не игрушка.
Читаю и боюсь программистов для которых "красота" кода или сокращение его строчек важнее всего. Eй богу страшно стало. Я даже не знаю кто хуже - русские "гении" способные сократить код в три раза или индусы не понимающие ООП и дублирующие код где только возможно.

Это как взять двигатель автомобиля и ужать его в размерах для "красоты" чтобы без лишнего зазора и пространства.

И бог с ним с X++, какая разница на чем программировать. Но если вдруг это приведет к тому что в AX будут программировать junior .NET программисты без опыта в AX то мне жалко и клиентов и систему. Не в синтаксисе дело.
Старый 21.09.2014, 07:42   #57  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Читаю и боюсь программистов для которых "красота" кода или сокращение его строчек важнее всего. Eй богу страшно стало. Я даже не знаю кто хуже - русские "гении" способные сократить код в три раза или индусы не понимающие ООП и дублирующие код где только возможно.
Простите, но если вы даже на Х++ будете писать "код с душком", коллеги вас когда-нибудь побьют.
__________________
// no comments
Старый 21.09.2014, 09:31   #58  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Это как взять двигатель автомобиля и ужать его в размерах для "красоты" чтобы без лишнего зазора и пространства.
Код - это скорее чертежи двигателя, чем сам двигатель. Красота этих чертежей в понятности, непротиворечивости, отсутствии дублирования и т.д. Например если у вас одно и то же описано в двух разных чертежах с неочевидной связью есть шанс, что при модификации одну вещь успеют поменять, а другую нет.

Эти вещи характерны тем, что имеют отложенный эффект ( См. понятие "технический долг". )

Проще сейчас сделать кое-как (скопипастить, не переименовать что-то название чего не отражает его роль и т.д.). Но от этого потом труднее понимать и работать.

"Красота" описывается в конкретных терминах (например SOLID) нарушение каждого из которых приводит к образованию технического долга.

Соблюдение тоже имеет свою цену. Если вы находитесь в "технологическом гетто" - как правило эта цена больше - для небольшой аудитории меньше желающих что-то делать, при этом сама технология менее протестирована.

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

Сам язык X++ не позволяет создавать неймспейсы и иметь внутренние классы и т.д. в результате много модификаций сводится к изменению существущего кода, а не к его расширению к тому же пропадает формальное разделение на модули и интерфейс модулей становится непонятным (нельзя сказать "пользуйтесь вот этими классами, а эти - детали реализации").

и т.д.

В результате система превращается в одну большую кучу, которая доступна лишь только инкрементальному пониманию большими усилиями - разработчик разбирается с одним небольшим кусочком, а потом делает исходя из этого модификацию увеличивая объем кучи.
За это сообщение автора поблагодарили: AlexeyS (1), S.Kuskov (2).
Старый 21.09.2014, 17:34   #59  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от dech Посмотреть сообщение
Простите, но если вы даже на Х++ будете писать "код с душком", коллеги вас когда-нибудь побьют.
Дело в том что на моем мире "качество" и "красота" кода где-то на пятом месте после
- стоимости (скорость разработки)
- соответствия (функциональным ожиданиям пользователей)
- надежности (количество или отсутствие технических ошибок)
- понятности (простота расширения и поддержки), использование только тех паттернов и того стиля которые уже есть в системе.

Душок, не душок, но если нет ошибок Best Practices - значит код допустимый.
Я не про свой код, а про свое отношение к нему.

То есть я к тому что я искренне не понимаю когда для программистов красота кода на первом месте. На моей планете этой красоты просто никто не оценит и не увидит. Совсем другие условия работы со взглядом не со стороны программиста а со стороны клиента когда в конце этого туннеля до кода взгляд и не доходит.

Так что я бы рад кого-нибудь по печени приголубить и самому получить но это просто нереально. Когда такое желание возникает то этих людей рядом нет да и кто они чаще всего неизвестно. Да и неправильное это желание если неизвестны условия работы и история изменений. Чем больше опыта тем меньше желания обвинять программистов по части кода

P.S. Вот что сразу вымораживает так это использование СиШарпного стиля в X++. Прежде всего наименование переменных. Вот это я считаю проблемой и в С# и в X++ когда каждый программист со своим стилем.

Последний раз редактировалось ax_mct; 21.09.2014 в 17:51.
Старый 21.09.2014, 17:44   #60  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от belugin Посмотреть сообщение
В результате система превращается в одну большую кучу, которая доступна лишь только инкрементальному пониманию большими усилиями - разработчик разбирается с одним небольшим кусочком, а потом делает исходя из этого модификацию увеличивая объем кучи.
Такова суть AX - заплатки и обновления. Куча. Смена языка ничего не изменит. И строгие пространства имен и прочее ни на что не повлияют в этом плане. Это всего лишь гаечный ключ к монстру Как я понимаю смена языка и среды разработки только увеличивает время разработки. И все. Зато хорошо звучит то что можно найти больше программистов и слепить еще большего монстра

Последний раз редактировалось ax_mct; 21.09.2014 в 17:47.
Теги
.net, aot, cil, layer, morphx, x++, компилятор, слои

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Прощай, CITP-AT / Software-Vertriebsfirma Columbus IT Partner programmiert Pleite EVGL DAX auf Deutsch 3 02.10.2007 14:45
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:28.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.