Re[43]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 17:48
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>Где это "тут" договорились? ) На Qt я создают один и тот же интерфейс (код) и он работает на всех платформах сразу. Причём на каждой из них выглядит родным.

S> Там нехило по твоему QT прошлись. Сказав, что это убожество по сравнению с родными инструментами.

Где это "там"? ) Ну и сказать можно что угодно. Какое-то значение это будет иметь только в том случае, если это подтверждено аргументами. )
Re[43]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 17:51
Оценка: 4 (1)
Здравствуйте, Serginio1, Вы писали:

_>>https://github.com/rbock/sqlpp11 — один из вариантов. )

S>А соединения, Group By итд
S>Что то мало примеров

Примеров достаточно, целая папка examples в наличие. Вот один файл оттуда, в котором сразу всё видно: https://github.com/rbock/sqlpp11/blob/master/examples/sample.cpp.
Re[40]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 17:52
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

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


S>>>> Я давно не интересовался. Меня GC давно не беспокоит. Только вызываю его при работе с ком.

EP>>>Я тебя поздравляю, действительно есть задачи где от него нет проблем. Я в первом же сообщении этой ветки тебе сказал что сам частенько использую Python.
S>> Ну и? Тогда о чем разговор?

EP>Так я тебе этот вопрос практически в каждом сообщении задаю — к чему ты подводишь? Если к тому что на практике применимы разные языки, с разными технологиями (GC/etc), даже тормозные — так я об этом тебе в первом же ответе сказал.


Что такое тормозные. Я тебе задал вопрос каковы тормоза в реальных приложениях, а не выдранных тормозные тесты. Какова их доля в реальных приложениях?

EP>Конечно тебе всё равно. Всё что не восхваляет твой блаб язык и всё что показывает что в других языках есть аналоги на запрошенные тобой фичи, причём местами более мощные — тебе не интересно.


S>>А многие подумают, чего это чувак побитовые операции за операции с массивами применяет.

EP>Только первый раз, с непривычки.

EP>LINQ кстати говоря тоже структурно далёк от SQL — от SQL там только ключевые слова. А по сути это монадическая DO-нотация.
Потому, что SQL далек от совершенства для интеллисенсе

S>>А насчет быстроты то все зависит от компилятора которые могут в теже итераторы и преобразовываться.


EP>Теоретически может, а на практике это намного тяжелее.

EP>Теоретически, да, сферически компилятор может взять программу на любом языке и выдать супер оптимальный код.
В чем тяжелее? Вся информация есть. Просто не нужно.

S>>>>>> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.

EP>>>>>В результате генерируется текст запроса, так понятнее
S>> В результате генерируется машинный код на сервере. Есть абстракции. Контекс можно подменить и тогда итогом будет совсем другое.

EP>Так в описываемой мной схеме тоже можно заменить контекст, и тоже итог может быть совсем другими


Где я её не видел Если ты про это https://github.com/rbock/sqlpp11 то там нет твоих | и соединений не увидел, ленивости итд.


S>>>> В итоге мне наплевать, вто что трансформирутся Linq запрос.

EP>>>Да тут в принципе тоже, я про текст запрос сказал, для того чтобы подчеркнуть что трансформация происходит на этапе компиляции.
S>> Так я от тебя ссылки и не дождался.

EP>Я приводил — sqlpp11, первая ссылка в Google, или например на YouTube. Там очень близко к тому что я описал, в том числе есть возможность работать по контейнерам, правда это особо не зачем.

Что то совсем совсем мало гугл выдает. Задай про Linq и тебе куча статей и примеров.
и солнце б утром не вставало, когда бы не было меня
Re[41]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 17:57
Оценка: 4 (1)
Здравствуйте, Serginio1, Вы писали:

S>А внутри Linq деревья выражений.

S>https://msdn.microsoft.com/ru-ru/library/bb397951.aspx

На C++ для подобных целей уже более двадцати лет используются Expression Templates. Причём порождаемые деревья выражений можно обрабатывать на этапе компиляции.
Используется в разных областях — и в математических/инженерных задачах (например Eigen), и при парсинге(легендарный Spirit), и при генерации запросов(упомянутый sqlpp11), и т.д. и т.п.
А начиная с C++11 — теперь во время компиляции можно обрабатывать и обычные строки, то есть теперь EDSL могут быть и строковыми, при этом проверяемыми/типизируемыми на этапе компиляции.
Re[40]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 18:00
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

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


S>>>>

S>>>> .NET 4.5 мы внесли некоторые изменения для более эффективного использования фрагментов памяти в LOH, особенно в плане того, как мы управляем списком свободной памяти. Изменения относятся к сбору мусора (garbage collection, GC) как на рабочей станции, так и сервере. Но обратите внимание на то, что это не отменяет лимит в 85 000 байтов на размер объекта в LOH.

EP>>>Я на эту тему даже тест проводил
Автор: Evgeny.Panasyuk
Дата: 17.10.13

S>>Я давно тесты проводил http://rsdn.ru/forum/design/701354.1
Автор: Serginio1
Дата: 30.06.04


EP>Кстати, может ты знаешь, есть ли какая-нибудь нормальная/популярная реализация аналога std::deque для C#/.NET? В той теме так ничего и не привели.

Если потокобезопасная то
http://professorweb.ru/my/csharp/charp_theory/level12/12_15.php

Ну есть и непотокобезопасные

EP>Это по сути random-access последовательность состоящая из chunk'ов фиксированного размера — это позволило бы обходить проблемы с фрагментацией даже на старой LOH стратегии.


S>>Сейчас говоря дефрагментирует и LOH


EP>Видимо не по-умолчанию, это к вопросу о настройках

EP>

EP>https://msdn.microsoft.com/en-us/library/system.runtime.gcsettings.largeobjectheapcompactionmode%28v=vs.110%29.aspx
EP>The default value of the LargeObjectHeapCompactionMode property is GCLargeObjectHeapCompactionMode.Default, which indicates that the LOH is not compacted during garbage collections.
EP>If you assign the property a value of GCLargeObjectHeapCompactionMode.CompactOnce, the LOH is compacted during the next full blocking garbage collection, and the property value is reset to GCLargeObjectHeapCompactionMode.Default.

EP>И походу нужно каждый раз взводить.
Такие ситуации возникают ооочень редко. Зная о них можно и взводить. У меня никогда таких проблем не было. Но я пишу то в основном на 1С.

EP>>>А зачем ты привёл это? Оно как-то опровергает мои тезисы?

S>> Про блокировки

EP>Что именно? Вот это? "Точно — конкурентная гадость, которая скорей всего не lock-free."

EP>Там сказано что она lock/wait-free?
В фоновом режиме для прохода по графу нет никаких блокировок.
и солнце б утром не вставало, когда бы не было меня
Re[44]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 18:01
Оценка:
Здравствуйте, alex_public, Вы писали:

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


_>>>Где это "тут" договорились? ) На Qt я создают один и тот же интерфейс (код) и он работает на всех платформах сразу. Причём на каждой из них выглядит родным.

S>> Там нехило по твоему QT прошлись. Сказав, что это убожество по сравнению с родными инструментами.

_>Где это "там"? ) Ну и сказать можно что угодно. Какое-то значение это будет иметь только в том случае, если это подтверждено аргументами. )

Ветка была про кроссплатформенность. Я не специалист. Поэтому говорю, то что видел. Ты в той вктке вроде тоже был
и солнце б утром не вставало, когда бы не было меня
Re[44]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 18:03
Оценка:
Здравствуйте, alex_public, Вы писали:

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


_>>>https://github.com/rbock/sqlpp11 — один из вариантов. )

S>>А соединения, Group By итд
S>>Что то мало примеров

_>Примеров достаточно, целая папка examples в наличие. Вот один файл оттуда, в котором сразу всё видно: https://github.com/rbock/sqlpp11/blob/master/examples/sample.cpp.

Во спасибо интересно. А такие как здесь http://infostart.ru/public/402433/
и солнце б утром не вставало, когда бы не было меня
Re[44]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 18:05
Оценка:
Здравствуйте, alex_public, Вы писали:


_>Примеров достаточно, целая папка examples в наличие. Вот один файл оттуда, в котором сразу всё видно: https://github.com/rbock/sqlpp11/blob/master/examples/sample.cpp.


А это то зачем?
.where(true))
и солнце б утром не вставало, когда бы не было меня
Re[40]: Java vs C# vs C++
От: Klikujiskaaan КНДР  
Дата: 04.10.15 18:09
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Кстати, может ты знаешь, есть ли какая-нибудь нормальная/популярная реализация аналога std::deque для C#/.NET? В той теме так ничего и не привели.

EP>Это по сути random-access последовательность состоящая из chunk'ов фиксированного размера — это позволило бы обходить проблемы с фрагментацией даже на старой LOH стратегии.

https://www.nuget.org/packages/Nito.Deque
Re[41]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 18:25
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>> Ну и? Тогда о чем разговор?

EP>>Так я тебе этот вопрос практически в каждом сообщении задаю — к чему ты подводишь? Если к тому что на практике применимы разные языки, с разными технологиями (GC/etc), даже тормозные — так я об этом тебе в первом же ответе сказал.
S> Что такое тормозные.

Например работающие сильно медленнее чем возможно, потребляющих намного больше энергии чем необходимо, требующих большее количество железок чем достаточно.

S>Я тебе задал вопрос каковы тормоза в реальных приложениях


Зачем ты его задал? Я же не утверждал что эти тормоза в каждом приложении критичны. Очевидно что разницу между одной наносекундой, и одной микросекундой никто не заметит.

S>>>А многие подумают, чего это чувак побитовые операции за операции с массивами применяет.

EP>>Только первый раз, с непривычки.
EP>>LINQ кстати говоря тоже структурно далёк от SQL — от SQL там только ключевые слова. А по сути это монадическая DO-нотация.
S> Потому, что SQL далек от совершенства для интеллисенсе

Так зачем говорить что он понятен тем кто знаком с SQL? Там структура совершенно другая.

S>>>А насчет быстроты то все зависит от компилятора которые могут в теже итераторы и преобразовываться.

EP>>Теоретически может, а на практике это намного тяжелее.
EP>>Теоретически, да, сферически компилятор может взять программу на любом языке и выдать супер оптимальный код.
S> В чем тяжелее? Вся информация есть. Просто не нужно.

Ещё раз "вся информация" может быть сильно разной. Вся информация есть и в динамически типизированных языках, и теоретически компилятор может применить максимально возможную оптимизацию.

В данном случае C++ легко оптимизировать потому что легко всё заинлайнить, а легко заинлайнить потому что нет ни одного виртуального/косвенного вызова, и нет ни одной аллокации.
При этом да, инлайнить виртуальные/косвенные вызовы тоже возможно на этапе компиляции, но это очевидно труднее — так как требуется более серьёзный анализ.

S>>>>>>> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.

EP>>>>>>В результате генерируется текст запроса, так понятнее
S>>> В результате генерируется машинный код на сервере. Есть абстракции. Контекс можно подменить и тогда итогом будет совсем другое.
EP>>Так в описываемой мной схеме тоже можно заменить контекст, и тоже итог может быть совсем другими
S> Где я её не видел Если ты про это https://github.com/rbock/sqlpp11 то там нет твоих |

Так | это другая библиотека, ты за контекстом следишь? | это Boost.Range, а тут sqlpp11.

S>и соединений не увидел,


Выше уже привели ссылку.

S>ленивости итд.


Ленивость важна в контексте контейнеров, приведённый пример Boost.Range — ленивый. Если не веришь — могу доказать тестом.
Касательно sqlp11 — там есть пример использования с контейнерами — он может быть реализован как лениво, так и энергично, как именно — мне лень смотреть, так как я использую более удобный для этой цели Boost.Range.
Или ты о какой ленивости?

EP>>Я приводил — sqlpp11, первая ссылка в Google, или например на YouTube. Там очень близко к тому что я описал, в том числе есть возможность работать по контейнерам, правда это особо не зачем.

S> Что то совсем совсем мало гугл выдает.

Ну не знаю, может у тебя google другой — http://lmgtfy.com/?q=sqlpp11 . У меня в выдаче первая ссылка на этот проект.

S>Задай про Linq и тебе куча статей и примеров.


И что?
Re[42]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 18:30
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

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


S>>А внутри Linq деревья выражений.

S>>https://msdn.microsoft.com/ru-ru/library/bb397951.aspx

EP>На C++ для подобных целей уже более двадцати лет используются Expression Templates. Причём порождаемые деревья выражений можно обрабатывать на этапе компиляции.

EP>Используется в разных областях — и в математических/инженерных задачах (например Eigen), и при парсинге(легендарный Spirit), и при генерации запросов(упомянутый sqlpp11), и т.д. и т.п.
EP>А начиная с C++11 — теперь во время компиляции можно обрабатывать и обычные строки, то есть теперь EDSL могут быть и строковыми, при этом проверяемыми/типизируемыми на этапе компиляции.
Вот интересная статья http://habrahabr.ru/post/256821/
и солнце б утром не вставало, когда бы не было меня
Re[41]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 18:36
Оценка:
Здравствуйте, Serginio1, Вы писали:

EP>>Кстати, может ты знаешь, есть ли какая-нибудь нормальная/популярная реализация аналога std::deque для C#/.NET? В той теме так ничего и не привели.

S>Если потокобезопасная то
S>http://professorweb.ru/my/csharp/charp_theory/level12/12_15.php

Какая из них конкретно?

S>Ну есть и непотокобезопасные


В той теме так и не привели.

EP>>>>А зачем ты привёл это? Оно как-то опровергает мои тезисы?

S>>> Про блокировки
EP>>Что именно? Вот это? "Точно — конкурентная гадость, которая скорей всего не lock-free."
EP>>Там сказано что она lock/wait-free?
S> В фоновом режиме для прохода по графу нет никаких блокировок.

А что ты понимаешь под блокировкой? Stop-the-world?
Так речь же не об этом, а о гонках возникающих при обходе графа из одного потока, и изменениях этого же графа из других, и им подобных.
Есть статьи описывающие lock-free реализации, но как я понял нигде в mainstream это не реализовано.
Re[45]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 18:38
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>> Там нехило по твоему QT прошлись. Сказав, что это убожество по сравнению с родными инструментами.

_>>Где это "там"? ) Ну и сказать можно что угодно. Какое-то значение это будет иметь только в том случае, если это подтверждено аргументами. )
S> Ветка была про кроссплатформенность. Я не специалист. Поэтому говорю, то что видел. Ты в той вктке вроде тоже был

Тут часто обсуждают такие вещи, но я что-то не помню чтобы кто-то говорил про убогость Qt — всё же это один из лидирующих в мире инструментов. ))) У него конечно же есть куча своих недостатков (типа надстройки над C++ и т.п.), про которые я сам всегда упоминаю. Но на фоне остальных (где проблемы не во внутренней архитектуре, а в вообще отсутствие необходимой функциональности) всё очень даже не плохо.
Re[42]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 18:41
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:


S>> Потому, что SQL далек от совершенства для интеллисенсе


EP>Так зачем говорить что он понятен тем кто знаком с SQL? Там структура совершенно другая.

Я этого не говорил. Я говорил только про битовые операции


S>> В чем тяжелее? Вся информация есть. Просто не нужно.


EP>Ещё раз "вся информация" может быть сильно разной. Вся информация есть и в динамически типизированных языках, и теоретически компилятор может применить максимально возможную оптимизацию.

Где то и проводит.

EP>В данном случае C++ легко оптимизировать потому что легко всё заинлайнить, а легко заинлайнить потому что нет ни одного виртуального/косвенного вызова, и нет ни одной аллокации.

EP>При этом да, инлайнить виртуальные/косвенные вызовы тоже возможно на этапе компиляции, но это очевидно труднее — так как требуется более серьёзный анализ.

В большинстве это и не нужно. А виртуальные помогают конструировать иерархию и доступ к неопределенным типам через интерфейсы
http://infostart.ru/public/402038/




EP>Так | это другая библиотека, ты за контекстом следишь? | это Boost.Range, а тут sqlpp11.


А в Net это встроено в платформу.
S>>и соединений не увидел,

EP>Выше уже привели ссылку.


EP>Или ты о какой ленивости?

Я ссылку уже видел. Давно от вас ждал. Но все равно мало примеров. Хотя верю, что можно.

EP>>>Я приводил — sqlpp11, первая ссылка в Google, или например на YouTube. Там очень близко к тому что я описал, в том числе есть возможность работать по контейнерам, правда это особо не зачем.

S>> Что то совсем совсем мало гугл выдает.

EP>Ну не знаю, может у тебя google другой — http://lmgtfy.com/?q=sqlpp11 . У меня в выдаче первая ссылка на этот проект.


S>>Задай про Linq и тебе куча статей и примеров.


EP>И что?

Казалось бы
и солнце б утром не вставало, когда бы не было меня
Re[41]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 18:42
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

EP>>Кстати, может ты знаешь, есть ли какая-нибудь нормальная/популярная реализация аналога std::deque для C#/.NET? В той теме так ничего и не привели.

EP>>Это по сути random-access последовательность состоящая из chunk'ов фиксированного размера — это позволило бы обходить проблемы с фрагментацией даже на старой LOH стратегии.
K>https://www.nuget.org/packages/Nito.Deque

Судя по "amortized O(1) access to both front and back" — там реализация не на chunk'ах, а на одном массиве. Для того чтобы обходить проблемы с фрагментацией требуется именно на chunk'ах.
Re[42]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 18:47
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

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


EP>>>Кстати, может ты знаешь, есть ли какая-нибудь нормальная/популярная реализация аналога std::deque для C#/.NET? В той теме так ничего и не привели.

S>>Если потокобезопасная то
S>>http://professorweb.ru/my/csharp/charp_theory/level12/12_15.php

EP>Какая из них конкретно?

Бери какой хочешь. Для этого нужно знать, что ты под std::deque
S>>Ну есть и непотокобезопасные

EP>В той теме так и не привели.

Ты на год посмотри 30.06.04
Тогда мало чего было. Еще Net 1.1 был без дженериков итд.

EP>>>>>А зачем ты привёл это? Оно как-то опровергает мои тезисы?

S>>>> Про блокировки
EP>>>Что именно? Вот это? "Точно — конкурентная гадость, которая скорей всего не lock-free."
EP>>>Там сказано что она lock/wait-free?
S>> В фоновом режиме для прохода по графу нет никаких блокировок.

EP>А что ты понимаешь под блокировкой? Stop-the-world?

EP>Так речь же не об этом, а о гонках возникающих при обходе графа из одного потока, и изменениях этого же графа из других, и им подобных.
EP>Есть статьи описывающие lock-free реализации, но как я понял нигде в mainstream это не реализовано.
Там может быть куча стратегий. Суть в том, что с каждой новой версией GC работает все быстрее. Если раньше были видны тормоза, то сейчас об этом все забыли
и солнце б утром не вставало, когда бы не было меня
Re[45]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 18:47
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>Примеров достаточно, целая папка examples в наличие. Вот один файл оттуда, в котором сразу всё видно: https://github.com/rbock/sqlpp11/blob/master/examples/sample.cpp.

S> Во спасибо интересно. А такие как здесь http://infostart.ru/public/402433/

Ну так все необходимые элементы же имеются. Так что никаких проблем в создание точной копии данных примеров не вижу. Разве что есть только один вариант записи (только через точку), а не два, как в C#.

Ну и кстати, это ещё и работает намного быстрее, чем EF. В данном случае не за счёт крутых оптимизаторов C++ или чего-то подобного, а за счёт метапрограммирования — запросы формируются во время компиляции, а не во время исполнения. Да, для какого-нибудь решения из области 1C подобное ускорение конечно же не принципиально. А вот в случае высоконагруженных веб-серверов это становится уже очень принципиально...
Re[46]: Java vs C# vs C++
От: Klikujiskaaan КНДР  
Дата: 04.10.15 19:00
Оценка:
Здравствуйте, alex_public, Вы писали:

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


_>>>Примеров достаточно, целая папка examples в наличие. Вот один файл оттуда, в котором сразу всё видно: https://github.com/rbock/sqlpp11/blob/master/examples/sample.cpp.

S>> Во спасибо интересно. А такие как здесь http://infostart.ru/public/402433/

_>Ну так все необходимые элементы же имеются. Так что никаких проблем в создание точной копии данных примеров не вижу. Разве что есть только один вариант записи (только через точку), а не два, как в C#.


_>Ну и кстати, это ещё и работает намного быстрее, чем EF. В данном случае не за счёт крутых оптимизаторов C++ или чего-то подобного, а за счёт метапрограммирования — запросы формируются во время компиляции, а не во время исполнения. Да, для какого-нибудь решения из области 1C подобное ускорение конечно же не принципиально. А вот в случае высоконагруженных веб-серверов это становится уже очень принципиально...



Ну ка расскажи, как ты динамические запросы формируешь на этапе компиляции?
Re[46]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 19:07
Оценка:
Здравствуйте, alex_public, Вы писали:

_

_>Ну так все необходимые элементы же имеются. Так что никаких проблем в создание точной копии данных примеров не вижу. Разве что есть только один вариант записи (только через точку), а не два, как в C#.


_>Ну и кстати, это ещё и работает намного быстрее, чем EF. В данном случае не за счёт крутых оптимизаторов C++ или чего-то подобного, а за счёт метапрограммирования — запросы формируются во время компиляции, а не во время исполнения. Да, для какого-нибудь решения из области 1C подобное ускорение конечно же не принципиально. А вот в случае высоконагруженных веб-серверов это становится уже очень принципиально...

Ну часто используемы запросы можно компилировать да и затраты на трансляцию мизерные
http://www.codeproject.com/Articles/38174/How-to-improve-your-LINQ-query-performance-by-X дольше сам запрос выполняется
вот поновее
http://blogs.msdn.com/b/ricom/archive/2008/01/14/performance-quiz-13-linq-to-sql-compiled-query-cost-solution.aspx
и солнце б утром не вставало, когда бы не было меня
Отредактировано 04.10.2015 19:10 Serginio1 . Предыдущая версия .
Re[43]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 19:11
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>> Потому, что SQL далек от совершенства для интеллисенсе

EP>>Так зачем говорить что он понятен тем кто знаком с SQL? Там структура совершенно другая.
S> Я этого не говорил. Я говорил только про битовые операции

ОК, видимо перепутал.
Тем не менее, с битовой операцией всё просто: "Что это? Битовая операция? А, пайп — всё понятно".
А с LINQ'ом же получается: "Что это? SQL запрос? А, монадическая нотация" — это при том что с монадами мало кто знаком, либо считают их чем-то трудно понимаемым. В любом случае разница кардинальная, как бы её не ретушировали ключевыми словами.

EP>>При этом да, инлайнить виртуальные/косвенные вызовы тоже возможно на этапе компиляции, но это очевидно труднее — так как требуется более серьёзный анализ.

S> В большинстве это и не нужно.

В любом случае, это намного тяжелее, несмотря на то что "вся информация есть".

S>А виртуальные помогают конструировать иерархию и доступ к неопределенным типам через интерфейсы


Да понятное дело что виртуальные/косвенные вызовы имеют область применения. Но при этом использование их там, где они не нужны — приводит к вполне справедливым тормозам.

EP>>Так | это другая библиотека, ты за контекстом следишь? | это Boost.Range, а тут sqlpp11.

S>А в Net это встроено в платформу.

Так это известная тема — вместо предоставления какой-то универсальной возможности, на C# решают какой-то сиюминутный use-case. Это приводит например к зоопарку с вариантами замыканий, которые даже ещё планируют расширять локальными методами. Также это приводит к меньшей гибкости самого языка — шаг влево/вправо — и упираешься в забор: 1
Автор: _NN_
Дата: 02.11.13
, 2
Автор: Evgeny.Panasyuk
Дата: 07.06.15
, 3
Автор: Qbit86
Дата: 01.07.15
, 4
Автор: Tesh
Дата: 21.04.15
.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.