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

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

Цитата:
Это примерно то же самое, как перечисление полей в команде select, а затем попытка использования поля, которого нет в перечислении. Минимум пара часов "веселого" дебаггинга Вам обеспечена. Хотя казалось бы...
В C# такой проблемы быть не может так как тип возвращаемого значения содержит только то, что выбиралось. Соответственно компилятор ругнется.
Старый 11.09.2014, 14:29   #22  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
belugin

Тема называется "Прощай X++", а конкретна ветка от perestoronin посвящена сравнению X++ с другими языками программирования. Мой пост касается того, почему в X++ (с моей точки зрения) нет того, что хочет perestoronin. Я не другие языки программирования анализировал, а говорил об X++.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 14:39   #23  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
[Тема называется "Прощай X++", а конкретна ветка от perestoronin посвящена сравнению X++ с другими языками программирования.
Wamr сообщил, что добавлены рюшечки из C#, а perestoronin сообщил что хочет рюшечек из F# или Scala, в ответ ему сообщили, что в C# это тоже есть.

Цитата:
Мой пост касается того, почему в X++ (с моей точки зрения) нет того, что хочет perestoronin. Я не другие языки программирования анализировал, а говорил об X++.
Для этого надо знать как работает "то, что хочет perestoronin" и, соответственно иметь представление об этих языках.
Старый 11.09.2014, 15:03   #24  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Для этого надо знать как работает "то, что хочет perestoronin" и, соответственно иметь представление об этих языках.
Был приведен аналог на X++. perestoronin не корректно "перевел"?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 15:33   #25  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Был приведен аналог на X++. perestoronin не корректно "перевел"?
1. Там нет никакой "настройки фильтра"
2. Да, без изменений в языке оно хреноватое
Старый 11.09.2014, 16:32   #26  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Thumbs up
Цитата:
Сообщение от belugin Посмотреть сообщение
А чем это лучше чем просто выкинуть X++ и перейти на C#?
Почему бы и нет ? Тогда всю логику DAX написанную на X++ нужно перенести на C#, а X++ полностью исключить из новой версии DAX, как и сам редактор кода X++ и всю среду DAX.
Даже затрудняюсь сказать что проще? Допилить X++ или перенести все на C# и закопать X++, среду и всю инфраструктуру IDE DAX и перейти полностью на разработку пользовательских приложений для DAX в VS на C#. И прощайте слои, АОТ и другие полезности DAX.
Мечты, а пока я был бы рад если бы допилили X++ до современных трендов в языках, добавив в X++ элементы ФП.

Последний раз редактировалось perestoronin; 11.09.2014 в 16:39.
Старый 11.09.2014, 16:35   #27  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от perestoronin Посмотреть сообщение
Тоже интересно, а почему бы и нет ? Тогда и всю логику DAX написанную на X++ нужно перенести на C#, а X++ полностью исключить из новой версии DAX, как и сам редактор кода X++ и всю среду DAX.
Даже затрудняюсь сказать что проще? Допилить X++ или перенести все на C# и закопать X++, среду и всю инфраструктуру IDE DAX и перейти полностью на разработку пользовательских приложений для DAX в VS на C#.
Так все уже перешли в VS в следующей версии. А чем вам так х++ то не угодил? ну вот привели вы пример о том что в каком-то там языке вы можете в 4 строчки написать, а в х++ аж в 8! Это так сильно вам жить мешает? недоязык прям...
Старый 11.09.2014, 16:47   #28  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от skuull Посмотреть сообщение
Так все уже перешли в VS в следующей версии. А чем вам так х++ то не угодил? ну вот привели вы пример о том что в каком-то там языке вы можете в 4 строчки написать, а в х++ аж в 8! Это так сильно вам жить мешает? недоязык прям...
1. Переведите эту строчку на X++ (так чтобы не пропала типобезопасность):

X++:
var x = new Dictionary<String, Customer>();
2. Посмотрите, сколько есть готовых инструментов для C#, например http://www.jetbrains.com/resharper/features/
Старый 11.09.2014, 16:59   #29  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от belugin Посмотреть сообщение
1. Переведите эту строчку на X++ (так чтобы не пропала типобезопасность):
Вы же сами знаете что это не возможно

Цитата:
Сообщение от belugin Посмотреть сообщение
2. Посмотрите, сколько есть готовых инструментов для C#, например http://www.jetbrains.com/resharper/features/
Так тут уже вопрос к комьюнити, а не к мелкомягким. Напишите и продавайте.Будите первые
Старый 11.09.2014, 17:14   #30  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от skuull Посмотреть сообщение
Вы же сами знаете что это не возможно
Возможно:

X++:
StringToCustomerMap x = new StringToCutomerMap();
...

class StringToCustomerMap {
// типобезопасная обертка над MAP
}
class StringToCustomerMapEnumerator {
// типобезопаснаz обертка над MapEnumerатор
}

// а также обертки над KeySet, valueSet
Таким образом одна строчка превращается в 1000 или чуть меньше. И это только одна фишка.

Цитата:
Так тут уже вопрос к комьюнити, а не к мелкомягким. Напишите и продавайте.Будите первые
Размер комьюнити таков, что это не окупится. Если перейти на C# это можно будет просто взять и использовать. + Кучу других инструментов.
Старый 11.09.2014, 17:24   #31  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
1. Там нет никакой "настройки фильтра"
2. Да, без изменений в языке оно хреноватое
Я отвечал вот на этот пример от perestoronin

Цитата:
Сообщение от perestoronin Посмотреть сообщение
Один простой пример ФП, которое хотелось бы видеть и в X++ :
Код:
scala> val numbers = List(1, 2, 3, 4)
numbers: List[Int] = List(1, 2, 3, 4)
scala> numbers.filter((i: Int) => i % 2 == 0)
res0: List[Int] = List(2, 4)
Тоже самое на X++ (без ФП, которого в X++ нет):
X++:
List numbers = List::create([3, 1, 4, 1, 2, 3, 4]);
List res = new List(Types::Integer);
ListEnumerator le = numbers.getEnumerator();
;
while(le.moveNext())
{
    if(le.current() mod 2 == 0)
    {
        res.addEnd(le.current());
    }
}
info(res.toString());
Я правильно понял, что команда

Код:
scala> numbers.filter((i: Int) => i % 2 == 0)
это НЕ настройка фильтра? А что?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 17:27   #32  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Я отвечал вот на этот пример от perestoronin



Я правильно понял, что команда

Код:
scala> numbers.filter((i: Int) => i % 2 == 0)
это НЕ настройка фильтра? А что?
Это создание новой отфильтрованной коллекции

вот в X++ код

X++:
CustTable x;

...

select custTable where recID >=31459;
....
select custTable where recID<=31459;
Настройка фильтра, потому, что мнеяет состояние custtable.

Последний раз редактировалось belugin; 11.09.2014 в 17:32.
Старый 11.09.2014, 17:28   #33  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от belugin Посмотреть сообщение
Возможно:
Таким образом одна строчка превращается в 1000 или чуть меньше. И это только одна фишка.
х++ не единственный язык без дженериков и прочей радости да и они там были не всегда и это не повод ему "умирать".

Цитата:
Сообщение от belugin Посмотреть сообщение
Размер комьюнити таков, что это не окупится. Если перейти на C# это можно будет просто взять и использовать. + Кучу других инструментов.
ну АхАсист толкают же кому-то, значит не такая уж и маленькая
Старый 11.09.2014, 17:44   #34  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Это создание новой отфильтрованной коллекции
Понятно. Я не корректно построил фразу. Под термином "наложение фильтра" я подразумевал "критерии отбора" для создания нового списка. Только сути это не меняет. Ведь очевидно же, что указание условия и собственно факт создания отфильтрованной коллекции - это две разные команды. Никак не связанные между собой. Что и может порождать проблемы. Или в F# их нельзя разделить?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 17:58   #35  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Возможно:

X++:
StringToCustomerMap x = new StringToCutomerMap();
...

class StringToCustomerMap {
// типобезопасная обертка над MAP
}
class StringToCustomerMapEnumerator {
// типобезопаснаz обертка над MapEnumerатор
}

// а также обертки над KeySet, valueSet
Таким образом одна строчка превращается в 1000 или чуть меньше. И это только одна фишка.
А можно привести пример, когда это действительно необходимо в Axapta? Для какой задачи в среде X++ это не просто "можно приспособить", а необходимо "только так и никак иначе"?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 11.09.2014, 18:04   #36  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
А можно привести пример, когда это действительно необходимо в Axapta? Для какой задачи в среде X++ это не просто "можно приспособить", а необходимо "только так и никак иначе"?
Ну ты создал List(Types::record) и думаешь буду ложить туда только CustTable, А потом взял и положил VendTable а оно на компиляции не ругнулось
Старый 11.09.2014, 18:12   #37  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Никак не связанные между собой. Что и может порождать проблемы. Или в F# их нельзя разделить?
Они связаны между собой следующим образом - критерий отбора есть параметр наложения фильтра. После этого обычно в результате фильтр изменить нельзя.
Старый 11.09.2014, 18:13   #38  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от skuull Посмотреть сообщение
х++ не единственный язык без дженериков и прочей радости да и они там были не всегда и это не повод ему "умирать".
По-моему, повод. Зачем развивать 2, когда можно развивать 1.

Цитата:
ну АхАсист толкают же кому-то, значит не такая уж и маленькая
AxAssist по функционалу никак не решарпер.
Старый 11.09.2014, 18:17   #39  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
А можно привести пример, когда это действительно необходимо в Axapta? Для какой задачи в среде X++ это не просто "можно приспособить", а необходимо "только так и никак иначе"?
Языки программирование вообще созданы для удобства. Без них вообще можно обойтись. Тут никакого "только так а не иначе". Теоретически можно даже на brainfuck перейти - он тоже Тьюринг-полный.
Старый 11.09.2014, 18:31   #40  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Они связаны между собой следующим образом - критерий отбора есть параметр наложения фильтра. После этого обычно в результате фильтр изменить нельзя.
Я не про логическую связь, а про синтаксическую

Код:
scala> val numbers = List(1, 2, 3, 4)
numbers: List[Int] = List(1, 2, 3, 4)
scala> numbers.filter((i: Int) => i % 2 == 0)

Вот здесь могут быть другие команды? Синтаксис допускает?

res0: List[Int] = List(2, 4)
Т.е. может ли после указания критериев быть много кода прежде чем будет создан новый список по этим критериям?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Теги
.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, время: 04:21.