Re: A как насчет LINQ?
От: rm822 Россия  
Дата: 13.05.10 10:24
Оценка: 1 (1) +4 -3 :))
Здравствуйте, kvasya, Вы писали:
K>Как считаете, ожидает C++ развитие в сторону LINQ?
Я от души надеюсь что нет. LINQ это инструмент быдлокодера (да, есть люди которые понимают как он работает и какой код генерирует, но это большая редкость). Почему? — да потому что вы пишете какой-то код и понятия не имеете какая у него будет алгоритмическая сложность и сколько памяти он сожрет, а если вы не понимаете что происходит, то о какой сознательной разработке можно говорить?
и LINQ это совсем не SQL — действия SQL прогнозируемы, а сложность легко проверяется просмотром плана выполнения.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 13.05.10 09:52
Оценка: +1 :))) :)))
K>Как считаете, ожидает C++ развитие в сторону LINQ?

Нет.

C# — активно развивающийся, поддерживаемый мощной корпорацией, язык для бизнес-приложений, там постоянно работают с реляционными базами данных, поэтому и родился linq. На C++ бизнес-приложения уже не пишут, с реляционными базами данных так часто не работают, и мощная корпорация за ним не стоит, так что и требований для таких вещей нет, и реализовывать их никому не охота.
Re: A как насчет LINQ?
От: CreatorCray  
Дата: 13.05.10 07:35
Оценка: 2 (1) +3 -1
Здравствуйте, kvasya, Вы писали:

K>И помня о мощи C++ и помня, например, об Александреску и его умопомрачительных пассажей...

Да, в неопытных руках это будет бомба почище "шаблонной эйфории".

K>Как считаете, ожидает C++ развитие в сторону LINQ?

Да ну нафиг. В первую очередь это породит очередную волну говнокодеров александреску-стайл. И только потом более менее схлынет и начнут использовать только там где надо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: A как насчет LINQ?
От: _nn_ www.nemerleweb.com
Дата: 13.05.10 08:46
Оценка: 12 (4)
Здравствуйте, kvasya, Вы писали:

K>Здравствуйте, -MyXa-, Вы писали:


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


MX>>Boost.Proto


K>Каким образом это LINQ?

K>Я с boost.proto не работал, поэтому спрашиваю, возможно ли реализовать, например, такое (C#):

K>
K>    List<int> data = new List<int> { 1, 2, 4, 0, 5, 6 };

K>    var largerThanTwoData = from v in data
K>                            where v > 2
K>                            select v;
K>


K>Спасибо.


#include <algorithm>
#include <functional>
#include <list>

#include <boost/assign.hpp>
#include <boost/lambda/lambda.hpp>

using namespace std;
using namespace boost::assign;
using namespace boost::lambda;

int main()
{
    list<int> data = list_of(1)(2)(4)(0)(5)(6);
    
    list<int> largerThanTwo;    
    copy_if(data.begin(), data.end(), back_inserter(largerThanTwo), _1 > 2);
}


Так сойдет ?

Под LINQ идут слишком много понятий.
Что конкретно вам нужно ?
Синтаксис from where select ? Или может методы расширения ? Или нормальные лямбды ? Или компиляция выражений во времени выполнения программы ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: A как насчет LINQ?
От: Mazay Россия  
Дата: 17.05.10 04:47
Оценка: 6 (2) +2
Здравствуйте, kvasya, Вы писали:


K>В перспективе?

K>Мне это представляется очень сложным, учитывая то, что внесли в c# для поддержки технологии. Но так хочется
K>И помня о мощи C++ и помня, например, об Александреску и его умопомрачительных пассажей...

K>Как считаете, ожидает C++ развитие в сторону LINQ?


K>Или я может быть что-нибудь пропустил, есть какие-то серьезные наработки в этом направлении?


Уже сказали что, не всегда легко оценить алгоритмическую сложность LINQ. Но я думаю, что эта проблема решаема — достаточно научиться строить аналог плана SQL запроса. Главная проблемма LINQ'а — его нерасширяемость. В С++ мы привыкли к тому, что можем кастомизировать (функтором, стратегией, шаблонным параметром, аллокатором) какой угодно алгоритм или контейнер. Не кастомизируются, только самые атомарные вещи, которые легко самому переписать. Это даёт нам возможность после анализа алгоритма изменять минимально необходимую часть кода.

В случае же LINQ-а проблема не столько в том, чтобы найти узкое место, сколько в том, чтобы его поправить. Вот не нравится мне стратегия итерирования, или я вижу, что LINQ не использует отсортированность коллекции. Если средства LINQ не позволяют явно задать нужное поведение, то у меня есть два варианта: переписать весь запрос вручную (в том числе и ту логику, которая в LINQе меня устраивает) или отнаследоваться от библиотечного класса и написать свой обработчик from-where-select, что очевидно не является достаточно гибким механизмом.

Мне кажется, что спасением С++ мог бы стать подход используемый в Немерле — полноценный механизм кастомизации синтаксиса. В общем-то это будет небольшой и логичный шаг вперёд после перегрузки операторов и темплейтов. Тогда LINQ элегантно и эффективно можно будет реализовать в какой-нибудь библиотеке типа Boost.LINQ.
Главное гармония ...
Re: A как насчет LINQ?
От: Воронков Василий Россия  
Дата: 13.05.10 12:14
Оценка: 5 (2) +2
Здравствуйте, kvasya, Вы писали:

K>В перспективе?

K>Мне это представляется очень сложным, учитывая то, что внесли в c# для поддержки технологии. Но так хочется
K>И помня о мощи C++ и помня, например, об Александреску и его умопомрачительных пассажей...
K>Как считаете, ожидает C++ развитие в сторону LINQ?
K>Или я может быть что-нибудь пропустил, есть какие-то серьезные наработки в этом направлении?

ИМХО Linq — это в первую очередь механизм квазицитирования. Syntax sugar сам по себе весьма вторичен, а часто даже и не очень удобен. Поэтому тут лучше обобщить вопрос, мне кажется.

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

А вот квази-цитаты — это уже более интересный вопрос.
Re: A как насчет LINQ?
От: R.O. Prokopiev Россия http://127.0.0.1/
Дата: 13.05.10 08:49
Оценка: 2 (2) :)
Здравствуйте, kvasya, Вы писали:

K>В перспективе?

K>Мне это представляется очень сложным, учитывая то, что внесли в c# для поддержки технологии. Но так хочется
K>И помня о мощи C++ и помня, например, об Александреску и его умопомрачительных пассажей...
K>Как считаете, ожидает C++ развитие в сторону LINQ?
K>Или я может быть что-нибудь пропустил, есть какие-то серьезные наработки в этом направлении?

Язык C разрабатывался так что любая конструкция генерирует простой код. Своего рода машинно-независимый ассемблер.
C++ более-менее сохранил эту концепцию. (Исключение, которое первым приходит на ум, это исключения )

Прикладные вещи типа LINQ нафиг не нужны в C++. Для этого есть библиотеки.
Re[2]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 13.05.10 10:11
Оценка: -3
Ладно, если вас так обидел мой смайлик, скажу, что меня рассмешило:

ROP>Язык C разрабатывался так что любая конструкция генерирует простой код. Своего рода машинно-независимый ассемблер.

ROP>C++ более-менее сохранил эту концепцию.

Да, это очень смешное утверждение. Я как вспомню, какие на C++ бывают простые конструкции из одной строчки, генерирующие мегабайты кода. Да вы на буст взгляните же ж, какой там простой код-то.
Re: A как насчет LINQ?
От: Pavel Dvorkin Россия  
Дата: 13.05.10 16:55
Оценка: +3
Здравствуйте, kvasya, Вы писали:

1. Не надо.
2. Не будет.
With best regards
Pavel Dvorkin
Re[2]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 13.05.10 10:29
Оценка: -2
R>...да потому что вы пишете какой-то код и понятия не имеете какая у него будет алгоритмическая сложность и сколько памяти он сожрет, а если вы не понимаете что происходит, то о какой сознательной разработке можно говорить?

Если руководствоваться такими рассуждениями, то можно вообще не начинать программировать, либо писать все в машинных кодах.
Re[2]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 14.05.10 21:40
Оценка: -2
А чего такого смешного я сказал, интересно знать?

Да, все-таки, программисты (большинство) — долбанутые, неадекватные люди.
Re: A как насчет LINQ?
От: -MyXa- Россия  
Дата: 13.05.10 06:54
Оценка: 5 (1)
Здравствуйте, kvasya, Вы писали:

Boost.Proto
Если не поможет, будем действовать током... 600 Вольт (C)
Re[2]: A как насчет LINQ?
От: kvasya  
Дата: 13.05.10 07:50
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

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


K>>И помня о мощи C++ и помня, например, об Александреску и его умопомрачительных пассажей...

CC>Да, в неопытных руках это будет бомба почище "шаблонной эйфории".
Честно говоря у меня даже мысль о таких возможностях взрывает мозг

K>>Как считаете, ожидает C++ развитие в сторону LINQ?

CC>Да ну нафиг. В первую очередь это породит очередную волну говнокодеров александреску-стайл. И только потом более менее схлынет и начнут использовать только там где надо.

Безусловно, но это же не умалит достоинств самой технологии.
Re[2]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 13.05.10 10:06
Оценка: -1
Лол, R.O. Prokopiev из мести поставил смайлик.
Re[7]: A как насчет LINQ?
От: rm822 Россия  
Дата: 17.05.10 06:12
Оценка: -1
Здравствуйте, Тролль зеленый и толстый, Вы писали:

ТЗИ>Я вот глядя на этот запрос, сразу бы сказал, что у него сложность будет линейная. Чего тут сложного-то?

Я не копал вглубь, мне просто не нужен инструмент который является синтаксическим сахаром и решает задачи тупейшим и непроизводительнейшим образом. Признаю только инструменты, которые решают задачи лучше(в широком смысле), чем сделал бы средний разработчик с 1го раза.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: A как насчет LINQ?
От: jazzer Россия Skype: enerjazzer
Дата: 08.12.11 09:28
Оценка: +1
Здравствуйте, k06a, Вы писали:

K>Сейчас пишу свою реализацию LINQ на C++.

Открой для себя Boost.Range
http://www.rsdn.ru/forum/etude/4501680.1.aspx
Автор: jazzer
Дата: 18.11.11

jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: A как насчет LINQ?
От: k06a http://k06a.blogspot.com/
Дата: 19.12.11 18:55
Оценка: -1
Здравствуйте, jazzer, Вы писали:

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


K>>Сейчас пишу свою реализацию LINQ на C++.

J>Открой для себя Boost.Range
J>http://www.rsdn.ru/forum/etude/4501680.1.aspx
Автор: jazzer
Дата: 18.11.11

J>

Я конечно понимаю Boost — это мощь... Но....
Синтаксис мама не горюй... Лучше уж свой велик в стиле .NET LINQ...
A как насчет LINQ?
От: kvasya  
Дата: 13.05.10 06:16
Оценка:
В перспективе?
Мне это представляется очень сложным, учитывая то, что внесли в c# для поддержки технологии. Но так хочется
И помня о мощи C++ и помня, например, об Александреску и его умопомрачительных пассажей...

Как считаете, ожидает C++ развитие в сторону LINQ?

Или я может быть что-нибудь пропустил, есть какие-то серьезные наработки в этом направлении?
linq cpp
Re[2]: A как насчет LINQ?
От: kvasya  
Дата: 13.05.10 08:12
Оценка:
Здравствуйте, -MyXa-, Вы писали:

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


MX>Boost.Proto


Каким образом это LINQ?
Я с boost.proto не работал, поэтому спрашиваю, возможно ли реализовать, например, такое (C#):

    List<int> data = new List<int> { 1, 2, 4, 0, 5, 6 };

    var largerThanTwoData = from v in data
                            where v > 2
                            select v;


Спасибо.
Re[4]: A как насчет LINQ?
От: kvasya  
Дата: 13.05.10 09:04
Оценка:
Здравствуйте, _nn_, Вы писали:


__>Так сойдет ?


+2
Но это C++

__>Под LINQ идут слишком много понятий.

__>Что конкретно вам нужно ?
__>Синтаксис from where select ? Или может методы расширения ? Или нормальные лямбды ? Или компиляция выражений во времени выполнения программы ?

Мне лично нужна типизация объектов источника данных, потенциально — любого. Как это будет — в принципе фиолетово, но в C# LINQ выглядит очень гармонично.
Re[3]: A как насчет LINQ?
От: R.O. Prokopiev Россия http://127.0.0.1/
Дата: 13.05.10 10:24
Оценка:
Здравствуйте, Тролль зеленый и толстый, Вы писали:

ТЗИ>Лол, R.O. Prokopiev из мести поставил смайлик.

Поставил, потому, что чепуху ты написал.
Раньше, когда писали опредени на C++ никому и в голову не приходило превращать его в фокспро.
Даже в дельфи (который более высокоуровневый) такого не было.
Re[3]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 13.05.10 10:24
Оценка:
Ну тогда, R.O. Prokopiev, хотя бы напишите, с чем вы несогласны.
Re[4]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 13.05.10 10:27
Оценка:
ROP>Раньше, когда писали опредени на C++ никому и в голову не приходило превращать его в фокспро.
ROP>Даже в дельфи (который более высокоуровневый) такого не было.

Ничего не понял. Вы имеете в виду, что раньше на C++ писали более просто?
Re[2]: A как насчет LINQ?
От: kvasya  
Дата: 13.05.10 10:39
Оценка:
Здравствуйте, rm822, Вы писали:

K>>Как считаете, ожидает C++ развитие в сторону LINQ?

R>Я от души надеюсь что нет. LINQ это инструмент быдлокодера (да, есть люди которые понимают как он работает и какой код генерирует, но это большая редкость). Почему? — да потому что вы пишете какой-то код и понятия не имеете какая у него будет алгоритмическая сложность и сколько памяти он сожрет, а если вы не понимаете что происходит, то о какой сознательной разработке можно говорить?
R>и LINQ это совсем не SQL — действия SQL прогнозируемы, а сложность легко проверяется просмотром плана выполнения.

Убедительно.
Re[3]: A как насчет LINQ?
От: R.O. Prokopiev Россия http://127.0.0.1/
Дата: 13.05.10 10:43
Оценка:
Здравствуйте, Тролль зеленый и толстый, Вы писали:

ТЗИ>Ладно, если вас так обидел мой смайлик, скажу, что меня рассмешило:


ROP>>Язык C разрабатывался так что любая конструкция генерирует простой код. Своего рода машинно-независимый ассемблер.

ROP>>C++ более-менее сохранил эту концепцию.

ТЗИ>Да, это очень смешное утверждение. Я как вспомню, какие на C++ бывают простые конструкции из одной строчки, генерирующие мегабайты кода. Да вы на буст взгляните же ж, какой там простой код-то.


Это всё по сути инлайн-вызовы. Я о другом. О том, что всегда можно (при соответствующем навыке) проконтролировать,
какой код сгенерируется. Высокоуровневых вещей в C++ мало. Например ввод-вывод, подсчёт ссылок и пр. реализуются библиотечными средствами. Сборка мусора не реализуема, но она и не нужна — расходится с концепцией языка.
LINQ тоже будет слишком высокоуровневой конструкцией для C++. К тому же это проблемно-ориентированное расширение C++,
А C++ язык универсальный.
Re[2]: A как насчет LINQ?
От: kvasya  
Дата: 13.05.10 10:45
Оценка:
Здравствуйте, Тролль зеленый и толстый, Вы писали:

K>>Как считаете, ожидает C++ развитие в сторону LINQ?


ТЗИ>Нет.


ТЗИ>C# — активно развивающийся, поддерживаемый мощной корпорацией, язык для бизнес-приложений, там постоянно работают с реляционными базами данных, поэтому и родился linq. На C++ бизнес-приложения уже не пишут, с реляционными базами данных так часто не работают, и мощная корпорация за ним не стоит, так что и требований для таких вещей нет, и реализовывать их никому не охота.


Я пишу Потому и родился топик.
Re[4]: A как насчет LINQ?
От: R.O. Prokopiev Россия http://127.0.0.1/
Дата: 13.05.10 10:45
Оценка:
Здравствуйте, R.O. Prokopiev, Вы писали:

ROP>К тому же это проблемно-ориентированное расширение C++,

Читать: C#
Re[5]: A как насчет LINQ?
От: R.O. Prokopiev Россия http://127.0.0.1/
Дата: 13.05.10 10:50
Оценка:
Здравствуйте, Тролль зеленый и толстый, Вы писали:

ROP>>Раньше, когда писали опредени на C++ никому и в голову не приходило превращать его в фокспро.

ROP>>Даже в дельфи (который более высокоуровневый) такого не было.

ТЗИ>Ничего не понял. Вы имеете в виду, что раньше на C++ писали более просто?


Бизнес-приложения раньше активно писали на C++, и никто до сих пор не включил туда SQL-образные конструкции.
Потому, что есть библиотеки.
Re[2]: A как насчет LINQ?
От: MxMsk Португалия  
Дата: 13.05.10 11:18
Оценка:
Здравствуйте, rm822, Вы писали:

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

K>>Как считаете, ожидает C++ развитие в сторону LINQ?
R>Я от души надеюсь что нет. LINQ это инструмент быдлокодера (да, есть люди которые понимают как он работает и какой код генерирует, но это большая редкость). Почему? — да потому что вы пишете какой-то код и понятия не имеете какая у него будет алгоритмическая сложность и сколько памяти он сожрет, а если вы не понимаете что происходит, то о какой сознательной разработке можно говорить?
Ах, так и думал, что пойдут отмазки про быдлокодеров и формощлепщиков
И главное какие! От души! Йииииес!

R>и LINQ это совсем не SQL — действия SQL прогнозируемы, а сложность легко проверяется просмотром плана выполнения.

Аааа. Ну интересно. Вот, например, SQL запрос:
SELECT * FROM Orders WHERE OrderSum > 0

Ну-ка, спрогнозируй мне действия SQL... Только чур в план не заглядывать
Re[3]: A как насчет LINQ?
От: rm822 Россия  
Дата: 13.05.10 11:30
Оценка:
MM>
MM>SELECT * FROM Orders WHERE OrderSum > 0
MM>

MM>Ну-ка, спрогнозируй мне действия SQL... Только чур в план не заглядывать
легко, если считать ордерс реальной таблицей и ордернум — реальным полем без всяких там партишнингов то варианты
1. по ордер нуму нет индекса, будет скан таблицы
2. по ордернуму есть индекс, некластерный
а) из статов следует что выборка < примерно 10% таблицы — будет сик по некластерному индексу с джойном на кластерный
б) из статов следует что выборка >= примерно 10% таблицы — будет скан по кластерному индексу
3. ордер нум — кластерный индекс — будет сик по кластерному индексу

для более точного прогноза, нужно больше данных
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: A как насчет LINQ?
От: MxMsk Португалия  
Дата: 13.05.10 11:33
Оценка:
Здравствуйте, rm822, Вы писали:

MM>>SELECT * FROM Orders WHERE OrderSum > 0

MM>>Ну-ка, спрогнозируй мне действия SQL... Только чур в план не заглядывать
R>легко, если считать ордерс реальной таблицей и ордернум — реальным полем без всяких там партишнингов то варианты
R>1. по ордер нуму нет индекса, будет скан таблицы
R>2. по ордернуму есть индекс, некластерный
R> а) из статов следует что выборка < примерно 10% таблицы — будет сик по некластерному индексу с джойном на кластерный
R> б) из статов следует что выборка >= примерно 10% таблицы — будет скан по кластерному индексу
R>3. ордер нум — кластерный индекс — будет сик по кластерному индексу
Откуда ты все это узнал? Мне вот из запроса этого совершенно не ясно. Я вижу только "выбрать все записи, у которых сумма больше нуля".
Re[5]: A как насчет LINQ?
От: rm822 Россия  
Дата: 13.05.10 11:45
Оценка:
MM>Откуда ты все это узнал? Мне вот из запроса этого совершенно не ясно. Я вижу только "выбрать все записи, у которых сумма больше нуля".
Все БД работают по одним принципам, на похожих структурах данных, которые за последние 10лет почти не менялись. Этого вполне достаточно
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: A как насчет LINQ?
От: MxMsk Португалия  
Дата: 13.05.10 12:04
Оценка:
Здравствуйте, rm822, Вы писали:

MM>>Откуда ты все это узнал? Мне вот из запроса этого совершенно не ясно. Я вижу только "выбрать все записи, у которых сумма больше нуля".

R>Все БД работают по одним принципам, на похожих структурах данных, которые за последние 10лет почти не менялись. Этого вполне достаточно
Весь Linq работает по одним принципам. Этого вполне достаточно.
Re[6]: A как насчет LINQ?
От: . Великобритания  
Дата: 13.05.10 12:07
Оценка:
On 13/05/2010 14:45, rm822 wrote:

> MM>Откуда ты все это узнал? Мне вот из запроса этого совершенно не ясно.

> Я вижу только "выбрать все записи, у которых сумма больше нуля".
> Все БД работают по одним принципам, на похожих структурах данных,
> которые за последние 10лет почти не менялись. Этого вполне достаточно
     List<int> data = new List<int> { 1, 2, 4, 0, 5, 6 };

     var largerThanTwoData = from v in data
                             where v > 2
                             select v;

А тут что такого сверхсекретного? Коллекциям лет гораздо больше и тоже почти ничего не менялось.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[7]: A как насчет LINQ?
От: rm822 Россия  
Дата: 13.05.10 12:11
Оценка:
Здравствуйте, MxMsk, Вы писали:
MM>Весь Linq работает по одним принципам. Этого вполне достаточно.
ок. вы их знаете? можете предсказать во что развернется запрос? моежете прикинуть алгоритмическую сложность и потребление памяти?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: A как насчет LINQ?
От: MxMsk Португалия  
Дата: 13.05.10 12:23
Оценка:
Здравствуйте, rm822, Вы писали:

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

MM>>Весь Linq работает по одним принципам. Этого вполне достаточно.
R>ок. вы их знаете? можете предсказать во что развернется запрос? моежете прикинуть алгоритмическую сложность и потребление памяти?
Ой, вот только не надо этих умных слов, мы же не перед девчонками здесь. Принципы Linq-To-Objects я знаю на достаточном уровне. Если нужно, и сложность могу прикинуть и память тоже. С Linq-To-Sql я не работаю, т.к. на текущем проекте нет БД. Но если бы была и мы использовали Linq, то просто изучил бы его и все. И потом, я уверен, что часто при написании проги, обращающейся к БД о всяких там умных словах думают там, где что-то начинает тормозить (или может вызвать тормоза). И в этот момент вполне можно потратить время на доскональное изучение, в остальном часто достаточно общих принципов. Но так вообще везде, и в Linq в том числе.
:)
От: rm822 Россия  
Дата: 13.05.10 12:42
Оценка:
т.е. не можете. я так и думал
вот поэтому линку и приблуда для быдлокодеров. сначала вы пишете какую-то хрень, потом через годик объем данных изменяется со 100 элементов до 1000 и все начинает тормозить, потому что где-то там O(n*n).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: :)
От: . Великобритания  
Дата: 13.05.10 12:47
Оценка:
On 13/05/2010 15:42, rm822 wrote:

> т.е. не можете. я так и думал

> вот поэтому линку и приблуда для быдлокодеров. сначала вы пишете
> какую-то хрень, потом через годик объем данных изменяется со 100
> элементов до 1000 и все начинает тормозить, потому что где-то там O(n*n).
Так он же написал — зависит от. Если linq-sql, то оно примерно один в один преобразуется в соответсвующий sql запрос (а как он выполняется ты уже сам рассказывал). Если же как в примере выше для List, то обычный цикл по коллекции.
В общем, всё довольно интуитивно понятно.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: :)
От: MxMsk Португалия  
Дата: 13.05.10 13:08
Оценка:
Здравствуйте, rm822, Вы писали:

R>т.е. не можете. я так и думал

R>вот поэтому линку и приблуда для быдлокодеров. сначала вы пишете какую-то хрень, потом через годик объем данных изменяется со 100 элементов до 1000 и все начинает тормозить, потому что где-то там O(n*n).
Если следовать твоим рассуждениям, то всякий язык/библиотека, на котором можно написать что-нибудь нерабочее, является приблудой для быдлокодеров. Отчасти это так. Но речь ведь не об этом. Я тебе уже написал, что не работаю с Linq-To-Sql, но постоянно использую различные конструкции Linq-To-Objects, где я вполне могу рассудить, что хорошо, а что плохо. Если бы я поработал с Linq-To-Sql достаточное время, то уверен, смог бы дать тебе более подходящий ответ. Когда ты пишешь запрос на простом SQL, ты не можешь со стопроцентной уверенностью предсказать план запроса. А это означает, что ты либо допускаешь определенную последовательность выполнения, либо смотришь план. Первое ничем не отличается от применения Linq, второе точно также возможно и при применении Linq.
Re[5]: A как насчет LINQ?
От: _nn_ www.nemerleweb.com
Дата: 13.05.10 13:47
Оценка:
Здравствуйте, kvasya, Вы писали:

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



__>>Так сойдет ?


K>+2

K>Но это C++
Мы тут на форуме С++

__>>Под LINQ идут слишком много понятий.

__>>Что конкретно вам нужно ?
__>>Синтаксис from where select ? Или может методы расширения ? Или нормальные лямбды ? Или компиляция выражений во времени выполнения программы ?

K>Мне лично нужна типизация объектов источника данных, потенциально — любого. Как это будет — в принципе фиолетово, но в C# LINQ выглядит очень гармонично.


Что-то я не совсем понимаю что вам хочется.
Можете дать пример ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 14.05.10 21:43
Оценка:
Да, это было мощно. А если ты такой умный, то почему тебе трудно изучить как работает Linq и прогнозировать себе на здоровье?
Re[5]: A как насчет LINQ?
От: rm822 Россия  
Дата: 15.05.10 09:33
Оценка:
Здравствуйте, Тролль зеленый и толстый, Вы писали:

ТЗИ>Да, это было мощно. А если ты такой умный, то почему тебе трудно изучить как работает Linq и прогнозировать себе на здоровье?

Не трудно, прогноз по линку не порадовал даже на простейших операциях. Вот для примера он не детектит что коллекция отсортирована
Тупость линку и делает его технологией которую сложно применять правильно.

        static void WriteTime()
        {
            DateTime t = DateTime.Now;
            Console.WriteLine(t +"." + t.Millisecond);
        }

        static void Main(string[] args)
        {
            SortedList<int, int> data = new SortedList<int, int>();
            int itemCount = 100000000;
            for (int i = 0; i < itemCount; ++i)
            {
                data.Add(i, i * 2);
            }


            var last2 = from v in data.Keys where v >= itemCount - 2 select v;
            WriteTime();
            foreach (var k in last2)
                Console.WriteLine(k);
            WriteTime();

            WriteTime();
            for (int i = data.IndexOfKey(itemCount - 2); i < data.Count; ++i )
                Console.WriteLine(data.Keys[i]);
            WriteTime();
        }


15.05.2010 13:06:40.141
99999998
99999999
15.05.2010 13:06:41.313

15.05.2010 13:06:41.313
99999998
99999999
15.05.2010 13:06:41.313
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 15.05.10 12:34
Оценка:
R>Не трудно, прогноз по линку не порадовал даже на простейших операциях. Вот для примера он не детектит что коллекция отсортирована
R>Тупость линку и делает его технологией которую сложно применять правильно.

Ну так он же весь построен на IEnumerable, как он может детектить, что коллекция отсортирована? Мне кажется, что, наоборот, сложность запросов linq гораздо проще предсказывать, чем сложность запросов SQL, поскольку linq устроен просто как дверь.

Я вот глядя на этот запрос, сразу бы сказал, что у него сложность будет линейная. Чего тут сложного-то?

var last2 = from v in data.Keys where v >= itemCount - 2 select v;
Re[2]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 17.05.10 11:50
Оценка:
Пожалуйста, люди, владеющие логикой программистов, объясните мне, чего такого смешного в моем посте?
Re[8]: A как насчет LINQ?
От: Тролль зеленый и толстый  
Дата: 17.05.10 11:55
Оценка:
R>Я не копал вглубь, мне просто не нужен инструмент который является синтаксическим сахаром и решает задачи тупейшим и непроизводительнейшим образом. Признаю только инструменты, которые решают задачи лучше(в широком смысле), чем сделал бы средний разработчик с 1го раза.

Ну тогда понятно — тебя не устраивает эффективность. С другой стороны, с помощью linq можно достигнуть некоторой экономии времени при написании кода и сделать его более "семантически насыщенным", а производительность может быть приемлемой.

Не эта ли философия — "приемлемая производительность + сокращение времени разработки" — движет программированием? Этой философии отвечает и сам .Net.
с
Re[9]: A как насчет LINQ?
От: rm822 Россия  
Дата: 17.05.10 12:22
Оценка:
Здравствуйте, Тролль зеленый и толстый, Вы писали:

ТЗИ>Ну тогда понятно — тебя не устраивает эффективность. С другой стороны, с помощью linq можно достигнуть некоторой экономии времени при написании кода и сделать его более "семантически насыщенным", а производительность может быть приемлемой.


ТЗИ>Не эта ли философия — "приемлемая производительность + сокращение времени разработки" — движет программированием? Этой философии отвечает и сам .Net.

Да, меня лично не устраивает эффективность, готов признать что сокращение времени разработки позволило бы этой технологии жить, но имхо это сокращение времени либо незначительно, либо его нет вовсе (по крайней мере я его не заметил).
Про философию: верно только отчасти, есть извечный треугольник цена + качество + перфоманс, в мск стоимость разработчиков довольно высокая и с индусами конкурировать только по цене — нереально, остается повышать качество и производительность до недоступного им уровня
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: A как насчет LINQ?
От: k06a http://k06a.blogspot.com/
Дата: 07.12.11 16:31
Оценка:
Сейчас пишу свою реализацию LINQ на C++.
Пишу с тестами на Google C++ Testing Framework.
Минимальные требования для компиляции: C++11 and STL.
Используемый контроль версий: Mercurial (Hg).
Используемый хостинг: Google Code
Если есть желание присоединиться — свяжитесь со мной.

Ссылка на проект: http://code.google.com/p/boolinq/

--
Антон, k06aaa@gmail.com
Re[3]: A как насчет LINQ?
От: k06a http://k06a.blogspot.com/
Дата: 19.12.11 18:48
Оценка:
Здравствуйте, kvasya, Вы писали:

K>Здравствуйте, -MyXa-, Вы писали:


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


MX>>Boost.Proto


K>Каким образом это LINQ?

K>Я с boost.proto не работал, поэтому спрашиваю, возможно ли реализовать, например, такое (C#):

K>
K>    List<int> data = new List<int> { 1, 2, 4, 0, 5, 6 };

K>    var largerThanTwoData = from v in data
K>                            where v > 2
K>                            select v;
K>


K>Спасибо.


Как насчёт такого варианта на C++11 + boolinq?

int src[] = {1,2,4,0,5,6};
auto dst = boolinq::from(src).where([](int v){return v > 2;})
                             .toVector();


Сейчас работаю над библиотекой boolinq: http://code.google.com/p/boolinq/
Если есть желание помочь — присоединяйтесь ...
И конечно же буду рад пообщаться на близлежащие темы)))
Re[8]: A как насчет LINQ?
От: jazzer Россия Skype: enerjazzer
Дата: 20.12.11 00:12
Оценка:
Здравствуйте, k06a, Вы писали:
K>Синтаксис мама не горюй... Лучше уж свой велик в стиле .NET LINQ...
my_array | transformed(_1*5) | filtered(_1>300) | strided(3) | uniqued | reversed

Конкретные претензии к синтаксису будут? Почему "мама не горюй", почему "велик лучше"...
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.