Информация об изменениях

Сообщение Re[163]: Тормознутость и кривость linq. Compile-time EDSL DB от 09.07.2016 17:49

Изменено 09.07.2016 18:17 Serginio1

Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Serginio1, Вы писали:


S>>>> Ты утверждаешь, что на C# нужно писать больше кода.

EP>>>Да, приводя конкретные примеры, написанные конкретными людьми с этого форума.
S>> Ну я могу написать кучу кода на С++ и буду по этому буду говорить, что С++ отстойный язык?
S>>И все С++ программисты пишут оптимальный код?
S>> На этом форуме иногда такого насмотришься

EP>Я вот не думаю что авторы того кода неквалифицированны в C#, тем более там не один человек участвует. И исхожу из этого.

EP>Если ты считаешь что они сделали какой-то ужас, то создай тему в соответствующем под-форуме с указанием на недостатки

Это ты считаешь. Мне все равно. Каждый сам решает, что и как. Но это не значит, что с точки зрения выразительности это хорошо.
Но вот делать выводы по этому никогда не стоит. Если, хочешь что то охаять изучи этот предмет.
S>>>>

S>>>> Отличия минимальные — auto, return и скобочки.

EP>>>Лямбды лаконичнее — да, реализация алгоритма — нет.
S>> Если ты про замыкания, то там строится класс компилятором.

EP>Я про синтаксис использования лямбд.

По мне так все сообразно функциональным языкам. Автоматический вывод типа.
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5

EP>>>Непонятно зачем ты патаешься оправдать раздутую реализацию алгоритма (простейшего!) лямбдами, впрочем мне это уже надоело.

S>> Я тебе показал реализацию которая компактнее реализации на C#. Ты же сам согласился выше.

EP>Какую конкретно реализацию?

Хотошо. Напомню.https://rsdn.ru/forum/philosophy/6489023.1
Автор: Serginio1
Дата: 01.07.16

Или ты её не видел?
var СписокБезНулл=Список.Where(i =>i!=null);
 //Если список пустой то вернуть default(TSource);то бишь нулл
 var МаксимальноеЗначение= СписокБезНулл.Max(i =>i.Value);
 var рез=СписокБезНулл.Where(i =>i.Value==МаксимальноеЗначение).FirstOrDefault();

Они сделали оператор позволяющий использовать в одну строку как для Nullable так и для value типов.

S>>>>>>>>А Линк применяется и для БД, а значит и С++ лучший язык и для БД. Он же самый выразительный.

EP>>>>>>>Ещё раз, приведи пруфлинки на подчёркнутое. То есть "быстрее в 2 раза" и "C++ лучший язык для работы с БД".
S>>>>>> То есть С++ медленне? Тогда прошу прощения?
EP>>>>>С логикой беда? Я прошу привести пруфлинк на то что я говорил "быстрее в 2 раза", всё.
S>>>> Мне лень искать, значит C# быстрее?
EP>>>Нет, очевидно не значит.
S>> То есть C++ все же быстрее?

EP>Из того что я не говорил "быстрее в 2 раза", не следует ни то что он медленнее, ни то что быстрее.

Ты сам привел для аргумента недостака Сшарпа слова АВК о недостатков компараторов. И говорил на этом основании о недостатках платформы.
S>>>>>>А вот признать свои слова ошибочными по отношению выразительности C# это ты не можешь.
EP>>>>>Сколько строк для min/max item в CodeJam? (до генерации)
S>>>> А покажи внутренности std.
EP>>>Зачем?
S>> А затем, что это расширение итераторов.

EP>1. Этот код работает и без всякого STL, например с обычными массивами.

EP>2. При чём здесь вообще итераторы которые реализованы в STL? Я разве где-то ссылался на код конкретных реализации IEnumerable?
То есть итераторы не внутри СТЛ?
А вот ребята реализовали расширение для IEnumerable.
А я тебе могу скинуть реализации IEnumerable как на yield
https://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx

Причем yield очень хороши при эмуляции на циклах, рекурсивных вызовах
и на MoveNext
https://msdn.microsoft.com/ru-ru/library/system.collections.ienumerator.movenext(v=vs.110).aspx

Там все просто.

S>>>>То есть еще это еще один довод о

S>>>>"По алгоритмической выразительности среди мэйнстрима C++ сейчас впереди всех"?
S>>>> То есть алгоритмически лучше зашивать все возможные варианты, нежели использовать динамическую компиляцию и Expression Trees ?
EP>>>К алгоритмам это не имеет практически никакого отношения. Скорее к метапрограмированию и поддержке EDSL времени компиляции.
S>> А к чему?
В Сшапре метапрограммирования нет. Твои слова.
Здравствуйте, Evgeny.Panasyuk, Вы писали:


S>> Ну я могу написать кучу кода на С++ и буду по этому буду говорить, что С++ отстойный язык?

S>>И все С++ программисты пишут оптимальный код?
S>> На этом форуме иногда такого насмотришься

EP>Я вот не думаю что авторы того кода неквалифицированны в C#, тем более там не один человек участвует. И исхожу из этого.

EP>Если ты считаешь что они сделали какой-то ужас, то создай тему в соответствующем под-форуме с указанием на недостатки

Это ты считаешь. Мне все равно. Каждый сам решает, что и как. Но это не значит, что с точки зрения выразительности это хорошо.
Но вот делать выводы по этому никогда не стоит. Если, хочешь что то охаять изучи этот предмет.
S>>>>

S>>>> Отличия минимальные — auto, return и скобочки.

EP>>>Лямбды лаконичнее — да, реализация алгоритма — нет.
S>> Если ты про замыкания, то там строится класс компилятором.

EP>Я про синтаксис использования лямбд.

По мне так все сообразно функциональным языкам. Автоматический вывод типа.
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D0%BE%D0%B2/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5

EP>>>Непонятно зачем ты патаешься оправдать раздутую реализацию алгоритма (простейшего!) лямбдами, впрочем мне это уже надоело.

S>> Я тебе показал реализацию которая компактнее реализации на C#. Ты же сам согласился выше.

EP>Какую конкретно реализацию?

Хотошо. Напомню.https://rsdn.ru/forum/philosophy/6489023.1
Автор: Serginio1
Дата: 01.07.16

Или ты её не видел?
var СписокБезНулл=Список.Where(i =>i!=null);
 //Если список пустой то вернуть default(TSource);то бишь нулл
 var МаксимальноеЗначение= СписокБезНулл.Max(i =>i.Value);
 var рез=СписокБезНулл.Where(i =>i.Value==МаксимальноеЗначение).FirstOrDefault();

Они сделали оператор позволяющий использовать в одну строку как для Nullable так и для value типов.

S>>>>>>>>А Линк применяется и для БД, а значит и С++ лучший язык и для БД. Он же самый выразительный.

EP>>>>>>>Ещё раз, приведи пруфлинки на подчёркнутое. То есть "быстрее в 2 раза" и "C++ лучший язык для работы с БД".
S>>>>>> То есть С++ медленне? Тогда прошу прощения?
EP>>>>>С логикой беда? Я прошу привести пруфлинк на то что я говорил "быстрее в 2 раза", всё.
S>>>> Мне лень искать, значит C# быстрее?
EP>>>Нет, очевидно не значит.
S>> То есть C++ все же быстрее?

EP>Из того что я не говорил "быстрее в 2 раза", не следует ни то что он медленнее, ни то что быстрее.

Ты сам привел для аргумента недостака Сшарпа слова АВК о недостатков компараторов. И говорил на этом основании о недостатках платформы.
S>>>>>>А вот признать свои слова ошибочными по отношению выразительности C# это ты не можешь.
EP>>>>>Сколько строк для min/max item в CodeJam? (до генерации)
S>>>> А покажи внутренности std.
EP>>>Зачем?
S>> А затем, что это расширение итераторов.

EP>1. Этот код работает и без всякого STL, например с обычными массивами.

EP>2. При чём здесь вообще итераторы которые реализованы в STL? Я разве где-то ссылался на код конкретных реализации IEnumerable?
То есть итераторы не внутри СТЛ?
А вот ребята реализовали расширение для IEnumerable.
А я тебе могу скинуть реализации IEnumerable как на yield
https://msdn.microsoft.com/ru-ru/library/9k7k7cf0.aspx

Причем yield очень хороши при эмуляции на циклах, рекурсивных вызовах
и на MoveNext
https://msdn.microsoft.com/ru-ru/library/system.collections.ienumerator.movenext(v=vs.110).aspx

Там все просто.

S>>>>То есть еще это еще один довод о

S>>>>"По алгоритмической выразительности среди мэйнстрима C++ сейчас впереди всех"?
S>>>> То есть алгоритмически лучше зашивать все возможные варианты, нежели использовать динамическую компиляцию и Expression Trees ?
EP>>>К алгоритмам это не имеет практически никакого отношения. Скорее к метапрограмированию и поддержке EDSL времени компиляции.
S>> А к чему?
В Сшапре метапрограммирования нет. Твои слова.