Re[6]: Linq : неудачный маркетинг?
От: 0x7be СССР  
Дата: 18.02.10 17:25
Оценка:
Здравствуйте, Dufrenite, Вы писали:

D>По духу да. Но с точки зрения автоматизации разница колоссальна. Были бы в С++ лямбды и замыкания вопросов бы не было а так

Увы, таков "C++ way" — если программист может сам смоделировать что-то, то не вводить это в язык. Хотя, в новом стандарте анонимные функции будут. И что-то смутно напоминающее лексическое замыкание :
Re[7]: Linq : неудачный маркетинг?
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.02.10 17:53
Оценка: 1 (1) :)))
Здравствуйте, 0x7be, Вы писали:

0>Увы, таков "C++ way" — если программист может сам смоделировать что-то, то не вводить это в язык. Хотя, в новом стандарте анонимные функции будут. И что-то смутно напоминающее лексическое замыкание :


Не. Это называется Lisp way. А C++ way — это если что-то можно сделать через анальное отверстие, то делать именно так. А на предложение изменить язык обяснять, что религия не позволяет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Linq : неудачный маркетинг?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 18.02.10 18:00
Оценка:
Здравствуйте, 0x7be, Вы писали:

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


M>>Сравнительно сложен в изучении и понимании при том, что существующие методы решения таких задач всех устраивают.

0>Каких задач? Меня интересует твой взгляд.

Которые возникают на практике, которые характеризует активное использование foreach и yeild. В большинстве своем такие задачи возникают не часто и изучать что-то новое для их решения нет большого желания. Лучшее враг хорошего.

Например, был мой ответ тут
Автор: Mystic
Дата: 02.09.09
. Код с использованием LINQ выглядит пугающе. Я понимаю также, что мой набросок в ответе вполне можно было бы переписать с использованием LINQ. Но... я не знаю как. Идей также не много. Плюс нет уверенности, что это все хорошо ляжет на абстракцию LINQ. Опасение того, что вот во что-то упрется и не выйдешь.

Другой пример я приводил
Автор: Mystic
Дата: 03.10.09
в ветке про Nemerle. Я тоже понимаю, что мою C# реализацию вполне можно написать на LINQ. Но те же проблемы, плюс меня мой вариант вполне устраивает.
Re[29]: Linq : неудачный маркетинг?
От: IT Россия linq2db.com
Дата: 18.02.10 18:16
Оценка:
Здравствуйте, Lloyd, Вы писали:

IT>>Не огребём. Этот код не ходит в базу вообще.


L>Огребем. Если я понял тебя правильно, ты сцепляешь приведенные методы в цепочку и в конечном итоге у тебя будет происходить чтение stream-а. Если ты "прокрутил" последний enumerable до конца, то стрим у тебя будет спозизионирован на конец. Повторное чтение приведет либо к исключению, либо к пустой коллекции на выходе.


Мы не огнебём. Но не из-за var/не var, стрим может оказаться обыкновенной строкой, но главное, мы не пишем такой код как в твоём примере.

Теперь ты мне, пожалуйста, ответь. Пишешь ли ты такой код, как в твоём примере.
Если нам не помогут, то мы тоже никого не пощадим.
Re[30]: Linq : неудачный маркетинг?
От: Lloyd Россия  
Дата: 18.02.10 18:28
Оценка: :)
Здравствуйте, IT, Вы писали:

L>>Огребем. Если я понял тебя правильно, ты сцепляешь приведенные методы в цепочку и в конечном итоге у тебя будет происходить чтение stream-а. Если ты "прокрутил" последний enumerable до конца, то стрим у тебя будет спозизионирован на конец. Повторное чтение приведет либо к исключению, либо к пустой коллекции на выходе.


IT>Мы не огнебём. Но не из-за var/не var, стрим может оказаться обыкновенной строкой, но главное, мы не пишем такой код как в твоём примере.


Что значит "стрим может оказаться обыкновенной строкой"? Ты говоришь о System.IO.Stream?

IT>Теперь ты мне, пожалуйста, ответь. Пишешь ли ты такой код, как в твоём примере.


Нет, именно так не пишу. Это был код для демонстрации. На практике варианты не такии экстремальные, но давольно часто встречается код типа
if (customers.Any()) {
  grid.DataSource = customers;
  grid.DataBind();
} else {
  // ....
}

В этом коде будет та же самая проблема, что я и писал, только в меньшем масштабе (1 лишний запрос в базу).
Re[8]: Linq : неудачный маркетинг?
От: Dufrenite Дания  
Дата: 18.02.10 18:32
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Не. Это называется Lisp way. А C++ way — это если что-то можно сделать через анальное отверстие, то делать именно так. А на предложение изменить язык обяснять, что религия не позволяет.


Холивар детектед
Но ты все же прав.
Re[15]: Linq : неудачный маркетинг?
От: IT Россия linq2db.com
Дата: 18.02.10 18:44
Оценка: +2
Здравствуйте, Lloyd, Вы писали:

L>Мое правило — простое и следовательно лучше.


Твоё 'простое' решение как минимум содержит много мусора и трудно читается, следовательно оно не лучшее.
Если нам не помогут, то мы тоже никого не пощадим.
Re[16]: Linq : неудачный маркетинг?
От: Lloyd Россия  
Дата: 18.02.10 18:50
Оценка: +1
Здравствуйте, IT, Вы писали:

L>>Мое правило — простое и следовательно лучше.


IT>Твоё 'простое' решение как минимум содержит много мусора и трудно читается, следовательно оно не лучшее.


Нет, в моем правиле нет мусора и оно легко читается.
Re[8]: Linq : неудачный маркетинг?
От: 0x7be СССР  
Дата: 18.02.10 20:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Не. Это называется Lisp way. А C++ way — это если что-то можно сделать через анальное отверстие, то делать именно так. А на предложение изменить язык обяснять, что религия не позволяет.

Ты преувеличиваешь Делание через анальное отверстие — это результат комбинации двух идей (что тоже очень С++-но по натуре):
1. Нежелание вводить в язык то, что можно сделать самому.
2. Отсутствие средств по-человечески сделать самому то, чего нет в языке.
Re[4]: Linq : неудачный маркетинг?
От: 0x7be СССР  
Дата: 18.02.10 21:12
Оценка: :)
Здравствуйте, Mystic, Вы писали:

M>Которые возникают на практике, которые характеризует активное использование foreach и yeild. В большинстве своем такие задачи возникают не часто и изучать что-то новое для их решения нет большого желания. Лучшее враг хорошего.

Вот тут я бы с тобой поспорил. Что происходит, при замене конструкций вида foreach на вызов функций linq2objects? Повышается уровень абстракции — ты не просто делаешь foreach, а применяешь к последовательности определенные преобразования, реализация которых скрыта. В чем профит? Появление Plinq дает ответ на этот вопрос.
Re[31]: Linq : неудачный маркетинг?
От: IT Россия linq2db.com
Дата: 18.02.10 22:41
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Что значит "стрим может оказаться обыкновенной строкой"? Ты говоришь о System.IO.Stream?


Конвертируем байты, заталкиваем в MemoryStream.

L>
L>if (customers.Any()) {
L>  grid.DataSource = customers;
L>  grid.DataBind();
L>} else {
L>  // ....
L>}
L>

L>В этом коде будет та же самая проблема, что я и писал, только в меньшем масштабе (1 лишний запрос в базу).

С баиндингом у нас всегда был разговор особый, так что тут проблем тоже не будет.
Если нам не помогут, то мы тоже никого не пощадим.
Re[17]: Linq : неудачный маркетинг?
От: IT Россия linq2db.com
Дата: 18.02.10 22:42
Оценка:
Здравствуйте, Lloyd, Вы писали:

IT>>Твоё 'простое' решение как минимум содержит много мусора и трудно читается, следовательно оно не лучшее.

L>Нет, в моем правиле нет мусора и оно легко читается.

В твоём правиле куча мусора, за которым не видно логики.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Linq : неудачный маркетинг?
От: IB Австрия http://rsdn.ru
Дата: 18.02.10 23:06
Оценка: 1 (1) +1
Здравствуйте, Mazay, Вы писали:

M> Но если взять "типичный" проект с SQL БД, то действительно не очень понятно зачем мне ещё и LINQ. Ведь практически все объекты с которыми я работаю, лежат в БД и оттуда их можно спокойно выдернуть SQL запросом, который отработает на сервере, который всё соптимизирует, закэширует и т. д.

LINQ — это не про БД.
Нет в природе ни одного проекта больше 10 строчек кода, где не было бы коллекций. Если в коллекции больше двух элементов, то LINQ существенно облегчает жизнь.
Например, вместо того, чтобы писать
            bool isAnySpace = false;
            foreach (var s in "qeqweqweqwe")
            {
                if (s == ' ')
                {
                    isAnySpace = true;
                    break;
                }
            }

Можно написать:
bool isSpace = "qeqweqweqwe".Any(s => s == ' ');

И это все, только часть области применения LINQ. =)
Мы уже победили, просто это еще не так заметно...
Re[12]: Linq : неудачный маркетинг?
От: mrTwister Россия  
Дата: 18.02.10 23:19
Оценка: +1
Здравствуйте, Dufrenite, Вы писали:

D>Если используем Visual Studio и надо узнать точный тип, то для этой цели есть контекстная подсказка. Мне лично хватает.

D>Если IDE нет, то пускаем пулю в лоб, меняем профессию или ищем объявление GetCustomers(). Как то так.

Понятно, то есть другими словами, если нам надо делать code-review, то пускаем пулю в лоб. Так и запишем.
лэт ми спик фром май харт
Re[13]: Linq : неудачный маркетинг?
От: IT Россия linq2db.com
Дата: 18.02.10 23:49
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Понятно, то есть другими словами, если нам надо делать code-review, то пускаем пулю в лоб. Так и запишем.


А вы code review на бумаге делаете?
Если нам не помогут, то мы тоже никого не пощадим.
Re: Linq : неудачный маркетинг?
От: IB Австрия http://rsdn.ru
Дата: 19.02.10 00:32
Оценка:
Здравствуйте, 0x7be, Вы писали:

0> Ваши мнения?

Сегодня Эрик Мейер начал лекцию со слов "Do you understand LINQ?". очень в тему.. )
Как же он жжет, напалмом просто!!!
И таки да, он показал, что мы нифига не понимаем LINQ ))
Мы уже победили, просто это еще не так заметно...
Re[2]: Linq : неудачный маркетинг?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.02.10 04:29
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, 0x7be, Вы писали:


0>> Ваши мнения?

IB>Сегодня Эрик Мейер начал лекцию со слов "Do you understand LINQ?". очень в тему.. )
IB>Как же он жжет, напалмом просто!!!
IB>И таки да, он показал, что мы нифига не понимаем LINQ ))

Можно развернуть тезисы?
Re[3]: Linq : неудачный маркетинг?
От: IB Австрия http://rsdn.ru
Дата: 19.02.10 04:56
Оценка:
Здравствуйте, samius, Вы писали:

S>Можно развернуть тезисы?

Ну, это я просто под впечатлением. Эрик в живую — это круто, на видео он такого эффекта не производит. =)
Выступал он с очередным рассказом про Rx, но в течении первых трех слайдов действительно показал, что линк мы не знаем, на каком-то из видео у него этот эпизод тоже есть, где он рассказывает, что линк — это монады. По ходу лекции рекламировал еще решарпер рекламировал, и утверждал что ни он, ни его команда без него не могут...
Мы уже победили, просто это еще не так заметно...
Re[4]: Linq : неудачный маркетинг?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 19.02.10 05:14
Оценка:
Здравствуйте, IB, Вы писали:

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


S>>Можно развернуть тезисы?

IB>Ну, это я просто под впечатлением. Эрик в живую — это круто, на видео он такого эффекта не производит. =)
IB>Выступал он с очередным рассказом про Rx, но в течении первых трех слайдов действительно показал, что линк мы не знаем, на каком-то из видео у него этот эпизод тоже есть, где он рассказывает, что линк — это монады. По ходу лекции рекламировал еще решарпер рекламировал, и утверждал что ни он, ни его команда без него не могут...

Что линк это монады он неоднократно упоминал в лекциях по хаскелю. А нет ссылки на слайды? Правда я с Rx еще не знаком, только наслышан.
Re[2]: Linq : неудачный маркетинг?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 19.02.10 05:35
Оценка: +1
Здравствуйте, IB, Вы писали:

IB>Сегодня Эрик Мейер начал лекцию со слов "Do you understand LINQ?".


"Do you think you undenstand LINQ?", если быть точнее.
... << RSDN@Home 1.2.0 alpha 4 rev. 1452 on Windows 7 6.1.7600.0>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.