[Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.15 06:08
Оценка:
http://rsdn.ru/poll/5321
Автор: VladD2
Дата: 30.11.15
Вопрос: Используете ли вы синтаксис в LINQ? И как часто?
"Синтаксис" означает, что вы пишите "x from xs where x > 10 select x", а не xs.Where(x => x > 10)
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: Shmj Ниоткуда  
Дата: 30.11.15 08:47
Оценка:
Здравствуйте, VladD2, Вы писали:

Использую когда возможно. Т.е. когда большая часть выражений представлена "сахаром".

Люблю красоту. И ностальгирую по SQL, а синтаксис создает некую иллюзию SQL.
Re[2]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Jack128  
Дата: 30.11.15 09:08
Оценка:
Здравствуйте, Shmj, Вы писали:

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


S>Использую когда возможно. Т.е. когда большая часть выражений представлена "сахаром".


S>Люблю красоту. И ностальгирую по SQL, а синтаксис создает некую иллюзию SQL.

Под красотой ты имеешь ввиду смесь query syntax и обычного в одном выражении??
Отредактировано 30.11.2015 9:09 Jack128 . Предыдущая версия .
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: Mihas  
Дата: 30.11.15 09:12
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>синтаксис в LINQ

Во фразе не хватает названия синтаксиса. Не сразу ясно, о чем речь.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: Kolesiki  
Дата: 30.11.15 13:21
Оценка: -9
Пока только начало голосования, но уже очевидна тенденция: яйцеголовые шарпопилы (вы уж простите за такую точную аллегорию) наворотили космических абстракций там, где в них особо и не было нужды. Сразу вспоминается классическая отмаза всхлиппертов "Да вы знаете сколько нужно времени, чтобы реализовать оператор "вопросик"?!!!" — а не проще ли ПЕРЕД тем, как тратить впустую время, "пошевелить языком" (© анек про книжку "Куниллингус") и спросить юзеров — оно вам надо? Понятно, что концепция исходила из идеи "зачем нам гетерогенный SQL, когда на нём можно писать прямо в коде", но как видите, никто даже в мире баз данных не рвётся особо LINQовать. Видимо, потому что сам SQL суть принципиально другой язык и в императивном C# делать ему нечего. Вот что бывает, когда одну убогую концепцию (выборка из РСУБД) пытаются растянуть на всю вселенную (выборка из любой коллекции). Обрабатывать коллекции можно классическими функциями без вообще какого-либо касания синтаксиса. Вот так простота победила всемогутерство.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: alexzz  
Дата: 30.11.15 14:08
Оценка: :)
Здравствуйте, VladD2, Вы писали:

x from xs where x > 10 select x


Такой вариант я не использую, потому что он не скопмилируется. Использую другой:

var result = from x in xs
             where x > 10
             select x;


Пишу так в половине случаев, там где не требуется добавлять в конце FirstOrDefault(), ToList() и т.п. Если синтаксиса запросов не хватает и требуется дополнительно использовать синтаксис методов, то пишу сразу используя синтаксис методов.
Отредактировано 30.11.2015 14:09 alexzzzz . Предыдущая версия .
Re[2]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinix  
Дата: 30.11.15 14:08
Оценка: :)))
Здравствуйте, Kolesiki, Вы писали:

K>Обрабатывать коллекции можно классическими функциями без вообще какого-либо касания синтаксиса. Вот так простота победила всемогутерство.


Кажется, теперь я знаю, для кого придуман php.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinix  
Дата: 30.11.15 14:25
Оценка: 2 (1) +2
Здравствуйте, VladD2, Вы писали:

VD>http://rsdn.ru/poll/5321
Автор: VladD2
Дата: 30.11.15
Вопрос: Используете ли вы синтаксис в LINQ? И как часто?
"Синтаксис" означает, что вы пишите "x from xs where x > 10 select x", а не xs.Where(x => x > 10)


По-моему, тут опрос некорректно составлен.

Если запрос хорошо ложится на linq (тот же orm, или, например, вытащить данные из csv в нескольких папках, собрать значения в бизнес-объекты и посчитать/закинуть куда-нить) — смысла использовать extension-методы никакого.
Если нужен банальный отбор/select — зачем тут linq? чтоб было?

Теперь сравниваем, как часто нужен первый случай и как часто второй и получаем прям-таки эталонный "нинужен": большинство linq не юзает, т.к. не залазит в нишу, где без сабжа сложновато.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: tyomchick Россия  
Дата: 30.11.15 14:37
Оценка: +1
Здравствуйте, VladD2, Вы писали:

Если бы запросы реально писались как в SQL, то наверное использовал бы.
А так мне его читать сложно. Часто пишу SQL-запросы, и видимо от этого эти "перевернутые" SQL-подобные запросы меня вгоняют в ступор.
Мне кажется, если бы не знал SQL или просто очень редко писал на нем, то мне было бы проще.
Даже самую простую задачу можно сделать невыполнимой, если провести достаточное количество совещаний
Re[2]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Yoriсk  
Дата: 30.11.15 16:44
Оценка: 2 (1) +4
Здравствуйте, tyomchick, Вы писали:

T>А так мне его читать сложно. Часто пишу SQL-запросы, и видимо от этого эти "перевернутые" SQL-подобные запросы меня вгоняют в ступор.


Вообще-то наоборот, это в SQL запросы перевёрнутые. Пытаясь добававить "естественности" (select name from people) убили автокомплиты: from идёт ближе к концу, поэтому пока этот конец не написан принципиально непонятно, что за фигня стоит в select.
Re[3]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.15 18:13
Оценка: -8
Здравствуйте, Yoriсk, Вы писали:

Y>Пытаясь добававить "естественности" (select name from people) убили автокомплиты: from идёт ближе к концу, поэтому пока этот конец не написан принципиально непонятно, что за фигня стоит в select.


Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплитом. Парсеру совершенно фиолетово где этот самый SELECT находится.

Надо более критично воспринимать пропаганду пиарщиков. Они любую глупость могут обосновать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 04.12.2015 15:56 VladD2 . Предыдущая версия .
Re[4]: [Голосование] Используете ли вы синтаксис в LINQ?
От: alexzz  
Дата: 30.11.15 19:06
Оценка: 34 (1) +8 :)
Здравствуйте, VladD2, Вы писали:

VD>Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплиту. Парсеру совершенно фиолетово где этот самый SELECT находится.

VD>Надо более критично воспринимать пропаганду пиарщиков. Они любую глупость могут обосновать.

Не вижу в этом смысла. В C# сделано логично ― от источника данных через ряд фильтров и преобразований постепенно продвигаешься к финальному результату. Можно прочитать запрос от начала до конца, не прыгая взад-вперёд, чтобы понять, что в нём откуда берётся.

var closestMarker = (from body in bodies
                      where body != ignoreBody
                      from part in body.Parts
                      from marker in part.attachables.OfType<Marker>()
                      let distance = Vector3.Distance(marker.WorldPosition, pointerPosition)
                      where distance < SNAP_DISTANCE_LIMIT
                      orderby distance ascending
                      select marker).FirstOrDefault();
Re[4]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinix  
Дата: 30.11.15 20:02
Оценка: 11 (2) +3
Здравствуйте, VladD2, Вы писали:

VD>Надо более критично воспринимать пропаганду пиарщиков. Они любую глупость могут обосновать.


Огосспидя, ну взрослые вроде люди, а всё к пиарщикам сводят
Интеллисенс — самый понятный довод был, его и использовали чтоб не объяснять.
Собственно комментарии выше в топике наглядно показывают почему: люди очень не любят изучать что-то непривычное и объяснения воспринимают чуть ли не как агрессию/попытку оправдаться. А вот обозвать непонятное идиотизмом — эт всегда пожалуйста

Основная причина варианта с select в конце была в трёх моментах:
1. linq не затачивался под реляционные структуры данных. Т.е. linq — это _НЕ_ sql. Как результат, он одинаково натягивается на практически всё, что угодно, rx/tpl/xml/... — подставить по вкусу.
2. Одним из ключевых требований было таким: дерево выражений для linq-запроса не должно принципиально отличаться от того же дерева, полученного через цепочку ext-методов. Это здорово упростило написание linq-провайдеров, т.к. не надо было держать отдельные ветки кода+тестов для каждого из случаев (т.е. да, могло быть _ещё_ хуже).
3. Вариант с select вначале никак не ложился на сложные цепочки вида from ... select ... into ... where ... select ... и выдавал совершенную ересь вместе с let clause. Это с учётом предыдущих пунктов и поставило крест на идее.

Ну и интеллисенс, да. Эксперимент ставили, не пошло. Поскольку речь шла про фичу для мейнстрим языка, "мы сделаем вам неудобно, зато по феншую" за довод не прокатил.
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: GlebZ Россия  
Дата: 30.11.15 20:20
Оценка: +2
Здравствуйте, Sinix, Вы писали:

S>1. linq не затачивался под реляционные структуры данных.

оно и реляционке по барабану. Вероятнее всего это результат требований английского языка, используемый кухарками, для которых проектировали sql. При синтаксичесом разборе — очень неудобная штука.
Re[3]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Kolesiki  
Дата: 30.11.15 23:08
Оценка: :)
Здравствуйте, Sinix, Вы писали:

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


K>>Обрабатывать коллекции можно классическими функциями без вообще какого-либо касания синтаксиса. Вот так простота победила всемогутерство.


S>Кажется, теперь я знаю, для кого придуман php.


Ты не знаешь, для кого придуман LINQ — как ты можешь знать про похапэ?? И остальные 90% прогеров (включая меня) тоже без особого энтузиазма смотрят на этот "недоSQL", на который, кстати, затрачены ресурсы. На которые вечно уповают "запиливатели фич" (не могу называть их профессионально "программистами").
Re[4]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Yoriсk  
Дата: 01.12.15 07:26
Оценка:
Здравствуйте, VladD2, Вы писали:

Y>>Пытаясь добававить "естественности" (select name from people) убили автокомплиты: from идёт ближе к концу, поэтому пока этот конец не написан принципиально непонятно, что за фигня стоит в select.

VD>Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплиту.

Ага, ну то есть тот факт, что в sql запрос как раз "перевёрнут" вы таки признали. А вот аргументации "ну и что, задом-наперёд очень даже удобно, всегда можно написать конец, а потом вернуться, это очень здорово" я как-то не встечал, это весьма свежо.

VD>Надо более критично воспринимать пропаганду пиарщиков. Они любую глупость могут обосновать.


Не надо вполне очевидные аргументы воспринимать как пиар враждебных сил. Любой, кто писал sql запросы прекрасно знает как это неудобно.
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Yoriсk  
Дата: 01.12.15 07:36
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Поскольку речь шла про фичу для мейнстрим языка, "мы сделаем вам неудобно, зато по феншую" за довод не прокатил.


Интересно, а в пользу sql-синтаксиса кроме как "зато по феншую"(весльма сомнительному надо сказать) аргументы вообще какие-то есть?
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinix  
Дата: 01.12.15 08:01
Оценка: 1 (1)
Здравствуйте, Yoriсk, Вы писали:

Y>Интересно, а в пользу sql-синтаксиса кроме как "зато по феншую"(весльма сомнительному надо сказать) аргументы вообще какие-то есть?

Дык тёмное наследие прошлого(pdf) же 41 год закапывания закапывателей намекают, что дедушка ещё и нас переживёт.
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.12.15 11:43
Оценка:
Здравствуйте, alexzz, Вы писали:

A>Не вижу в этом смысла.


SQL и английский язык бессмысленны?

A>В C# сделано логично ― от источника данных через ряд фильтров и преобразований постепенно продвигаешься к финальному результату.


Это не логично, а близко к модели в которую переписывается выражение. С точки зрения английской грамматики Select something from some table не менее логично.

Вам же втюхали (по средством пиара) мысль о том, что именно так правильно. И теперь вы считаете это логичным.

A>Можно прочитать запрос от начала до конца, не прыгая взад-вперёд, чтобы понять, что в нём откуда берётся.


Человеческий разум без проблем "прыгает". Это не аргумент. Миллиарды людей каждый день говорят на английском, в котором постоянно приходится прыгать. Я уже не говорю уже о сотнях миллионах русских которые постоянно воспринимают предложения слова в которых стоят то так, то эдак. Нам совершенно все равно попросят ли нас:
1. Выбрать красные шары из мешка.
2. Из мешка взять красные шары.
3. Выбрать шары красного цвета из мешка.
4. Выбрать шары из мешка, но те у которых красный цвет.

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

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

Те кто создавал SQL исходили из того, что запросы должны быть нормальными фразами на английском языке. В этом тоже есть смысл.

Лично по мне по фигу как записан запрос. Я пойму любую его форму. А, если мне нужно будет записать его на C#, то я предпочту версию без синтаксиса: xs.Where(x => x > 0).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.12.15 14:23
Оценка:
Здравствуйте, Yoriсk, Вы писали:

Y>Ага, ну то есть тот факт, что в sql запрос как раз "перевёрнут" вы таки признали.


Это ты только что сам придумал. Видимо для собственного успокоения. Я утверждаю, что в SQL это работает. А вопрос где что перевернуто — это вопрос философский. Человеку привыкшему к английскому такой вариант кажется более естественно. Человеку привыкшему мыслить абстрактно просто по фигу. Машине вообще все равно. Она любой текст разберет.

В аргументах же пиарщиков говорилось именно о невозможности реализации качественного интеллисенса. И это явная ложь.

Y>А вот аргументации "ну и что, задом-наперёд очень даже удобно, всегда можно написать конец, а потом вернуться, это очень здорово" я как-то не встечал, это весьма свежо.


Задом на перед это только для тебя. В правилах английского задом наперед будет скорее линковский вариант. Люди же читают все предложение целиком. По этому вопроса о том, что что-то задом на перед даже не возникает.

VD>>Надо более критично воспринимать пропаганду пиарщиков. Они любую глупость могут обосновать.


Y>Не надо вполне очевидные аргументы воспринимать как пиар враждебных сил. Любой, кто писал sql запросы прекрасно знает как это неудобно.


Вам промыли голову пиаром и вы защищаете навязанные ложные утверждения.

Я понимаю, что обидно понимать, что ты поддался на рекламу и маркетинг. Но реальность лучше признавать. Это помогает лучше оценивать обстановку.

Когда ты пишешь код ты редко пишешь его слева направо сверху вниз. Ты пишешь что-то. Потом возвращаешься и пишешь еще что-то. Знаешь почему это не взывает у тебя протеста? Потому что ты воспринимаешь это как само собой разумеющееся, а пиарщики и прогандисты не заострили твое внимание на этом.

Возьмем, например, foreach. В нем сначала описание элемента, а потом идет список. Почему не писать:
foreach (from xs var x)

?
Ответ очень прост — потому что это не соответствует нормам английского языка, т.е. плохо читается. А, вот, с линком уже этот аргумент не работает, так как пиарщики его "развенчали".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: alexzz  
Дата: 01.12.15 17:40
Оценка:
Здравствуйте, VladD2, Вы писали:

A>>В C# сделано логично ― от источника данных через ряд фильтров и преобразований постепенно продвигаешься к финальному результату.

VD>Это не логично, а близко к модели в которую переписывается выражение. С точки зрения английской грамматики Select something from some table не менее логично.

Не менее логично, когда у тебя одна таблица и ты выбираешь готовые данные из неё, а иначе и по-английски выходит бред: Select cat from submarines...
Re[4]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 02.12.15 00:46
Оценка: 17 (2) +3
Здравствуйте, VladD2, Вы писали:

VD>Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплиту.


Это вопрос уровня нужен ли return в Немерле. Т.е. в чистом виде вкусовщина. Причём вкусовщина при интенсивном неиспользовании return в Немерле постепенно склоняется к его ненужности вообще. from в начале выражения так же как и отсутствие return со временем становится гораздо удобнее SELECT впереди.

По сути вопроса. Синтаксис LINQ очень удобная штука. Не хватает ещё нескольких ключевых слов типа left join, take, skip, tolist, first, etc. Надеюсь на Нитре не будет проблем их добавить самому. Или ты затеял этот вопрос потому что синтаксис LINQ оказалось сделать не так просто даже на Нитре?
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 02.12.15 00:53
Оценка: +3
Здравствуйте, VladD2, Вы писали:

A>>Не вижу в этом смысла.

VD>SQL и английский язык бессмысленны?

SQL разработчиками языка задумывался как язык для домохозяек. Именно этим обосновывается маниакальное желание сделать его близким к английскому. Но что-то как-то среди домохозяек оно не попёрло. Особенно у российским в 70-х.
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.15 06:29
Оценка:
Здравствуйте, IT, Вы писали:

VD>>Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплиту.


IT>Это вопрос уровня нужен ли return в Немерле.


Аналогия хреновая. "return" действительно не нужен, а "SELECT" таки нужен. Вопрос только где его ставить.

IT>Т.е. в чистом виде вкусовщина.


+1

Я об этом уже говорил.

IT>Причём вкусовщина при интенсивном неиспользовании return в Немерле постепенно склоняется к его ненужности вообще. from в начале выражения так же как и отсутствие return со временем становится гораздо удобнее SELECT впереди.


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

Как ты верно заметил — это вопрос вкуса или привычки.

Я утверждал только одно — "аргумент" с интелисенсом высосан из пальца. Единственный реальный аргумент здесь это — так было проще описать правило преобразования с синтаксиса в линк-паттерн.

IT>По сути вопроса. Синтаксис LINQ очень удобная штука. Не хватает ещё нескольких ключевых слов типа left join, take, skip, tolist, first, etc. Надеюсь на Нитре не будет проблем их добавить самому. Или ты затеял этот вопрос потому что синтаксис LINQ оказалось сделать не так просто даже на Нитре?


В Нитре не проблема добавить любой синтаксис. Линк доступен из коробки.

Меня просто разрдражает, когда люди повторяют булшит за евангелистами и попрагандонами.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.15 06:31
Оценка:
Здравствуйте, IT, Вы писали:

IT>SQL разработчиками языка задумывался как язык для домохозяек. Именно этим обосновывается маниакальное желание сделать его близким к английскому. Но что-то как-то среди домохозяек оно не попёрло. Особенно у российским в 70-х.


Зато среди программистов имеет не хилую популярность. И что-то ни одного вопля, что SELECT не на месте я за все его существование так и не услышал. Комплит тоже для него поддерживается.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: [Голосование] Используете ли вы синтаксис в LINQ?
От: _NN_ www.nemerleweb.com
Дата: 02.12.15 07:50
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплиту. Парсеру совершенно фиолетово где этот самый SELECT находится.

Проблем вернуться то нет, но неудобств добавляет это да.
Я вижу как люди работающие с БД пишут в следующем порядке

1. SELECT * FROM Table
2. Возвращаемся к '*' и получаем водсказки

А я пользуясь LINQ пишу просто и сразу получаю подсказки без прыжков
1. from Table select <Ctrl+Enter>
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: AlexRK  
Дата: 02.12.15 08:04
Оценка:
Здравствуйте, _NN_, Вы писали:

VD>>Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплиту. Парсеру совершенно фиолетово где этот самый SELECT находится.

_NN>Проблем вернуться то нет, но неудобств добавляет это да.

Это только если в случае, когда стоит задача без остановки стругать SQL-запросы. 100 запросов в минуту, если на 2 штуки меньше — лишение премии.
Если это не так, то совершенно пофиг, что в каком месте стоит.
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: _NN_ www.nemerleweb.com
Дата: 02.12.15 08:10
Оценка: +2
Здравствуйте, AlexRK, Вы писали:

ARK>Это только если в случае, когда стоит задача без остановки стругать SQL-запросы. 100 запросов в минуту, если на 2 штуки меньше — лишение премии.

ARK>Если это не так, то совершенно пофиг, что в каком месте стоит.

Ну мне удобно когда не нужно прыгать туда сюда.
У каждого свои предпочтения
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Yoriсk  
Дата: 02.12.15 09:00
Оценка: +3
Здравствуйте, VladD2, Вы писали:

Y>>Ага, ну то есть тот факт, что в sql запрос как раз "перевёрнут" вы таки признали.

VD>Это ты только что сам придумал. Видимо для собственного успокоения. Я утверждаю, что в SQL это работает. А вопрос где что перевернуто — это вопрос философский.

Нет, это вы так и сказали: сначала пишется конец, потом возаращаемся в начало.
Это у вас не "философский вопрос" а банальное упрямство.

VD>В аргументах же пиарщиков говорилось именно о невозможности реализации качественного интеллисенса. И это явная ложь.


Это явная правда. Ну или у вас какой-то уникальный автокомплит, который угадывает откуда будут браться данные.

VD>Вам промыли голову пиаром и вы защищаете навязанные ложные утверждения.

VD>Я понимаю, что обидно понимать, что ты поддался на рекламу и маркетинг. Но реальность лучше признавать. Это помогает лучше оценивать обстановку.

Ну это какая-то теория заговора в чистом виде. У меня мысли "почемсу оно так глупо сделано" появились когда я и слова "маркетинг"-то не знал.
ИМХО ситуация как раз обратная: вы отрицаете реальность, защищаете явно абсурдные идеи о том, что можно писать задом наперёд и это вполне можно вытерпеть(зачем?) а всем "промыли мозги", "обидно признавать" и так далее. Типичный "спор без аргументов, спор на темперамент".
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Yoriсk  
Дата: 02.12.15 09:06
Оценка: +2
Здравствуйте, AlexRK, Вы писали:

_NN>>Проблем вернуться то нет, но неудобств добавляет это да.

ARK>Это только если в случае, когда стоит задача без остановки стругать SQL-запросы. 100 запросов в минуту, если на 2 штуки меньше — лишение премии.
ARK>Если это не так, то совершенно пофиг, что в каком месте стоит.

Ну это аргументация из серии, что "настоящемк программисту"© вообще пофиг, писать можно в notepad, причём хоть на брейнфаке. Оно, конечно, сильно в теории так, но есть один нюанс...
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: VasEug  
Дата: 02.12.15 09:12
Оценка:
Здравствуйте, VladD2.

Хотя и очень хорошо знаю синтаксис SQL, но не использую его в LINQ по нескольким причинам:

1. Для оптимизации генерируемых LINQ2SQL запросов и для сборки вложенных запросов из других подзапросов по различным условиям пользуюсь самописным билдером выражений (условие поддерживает вложенные подзапросы из различных сущностей). Поэтому результирующие выражение в LINQ выглядят следующим образом:

Expression<Func<T, bool>> condition = ...
var linqexpr = dc.Entity.Where(condition)
;

2. использую собственные расширения LINQ2SQL для генерации SQL запросов, которых нет в синтаксисе LINQ-а, например, выборку иерархических объектов:

dc.Hierarchical.Descendants(t => t.Id, t => t.ParentId, ...) // производит выборку дерева элементов с полем ключа Id и полем ключа родителя ParentId;

Таким образом для меня использование синтаксиса LINQ накладывает большие ограничения на использование функциональности поставщика запросов.
Отредактировано 02.12.2015 9:26 VasEug . Предыдущая версия .
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.15 09:52
Оценка: +1
Здравствуйте, _NN_, Вы писали:

_NN>А я пользуясь LINQ пишу просто и сразу получаю подсказки без прыжков

_NN>1. from Table select <Ctrl+Enter>

Ну, вот то что нужно куда-то там возвращаться — это никак не "невозможность реализации интеллисенса". А люди здесь именно этой утверждали (наслушавшись пропагандистов из МС). Это небольшое неудобство при написании. Таких неудобств ты испытываешь по 100 раз на дню, так как периодически приходится куда-то возвращаться и дописывать ранее написанный код.

Но мы пишем код во много раз реже нежели его читаем. И смотреть здесь нужно именно на то как он читается, а не на то как он пишется.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.12.15 10:04
Оценка: -1
Здравствуйте, Yoriсk, Вы писали:

Y>Нет, это вы так и сказали: сначала пишется конец, потом возаращаемся в начало.

Y>Это у вас не "философский вопрос" а банальное упрямство.

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

И это не моя упертость, а твои проблемы в логическом мышлении. Ты делаешь выводы там где их делать нельзя.

VD>>В аргументах же пиарщиков говорилось именно о невозможности реализации качественного интеллисенса. И это явная ложь.


Y>Это явная правда.


Это у вас не "философский вопрос" а банальное упрямство. (ц)

Y>Ну или у вас какой-то уникальный автокомплит, который угадывает откуда будут браться данные.


Я просто знаю о чем говорю, а не треплюсь по чем зря. Парсеру и типизатору совершенно фиолетово как распространяются области видимости.

Угадывать при этом ничего не надо. Если будет секция FROM с описанием таблиц, комплит будет работать отлично. И есть не мало реализаций комплита для SQL.

Y>Ну это какая-то теория заговора в чистом виде.


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

Y>У меня мысли "почемсу оно так глупо сделано" появились когда я и слова "маркетинг"-то не знал.


Ты всеведущий раз где-нибудь свои мысли опубликуй, чтобы можно было потом дать ссылку. А, то как-то до появления линка я ни разу не слышал подобных высказываний. Всех удовлетворяло наличие SELECT-а спереди.

Y>ИМХО ситуация как раз обратная: вы отрицаете реальность, защищаете явно абсурдные идеи о том, что можно писать задом наперёд и это вполне можно вытерпеть(зачем?) а всем "промыли мозги", "обидно признавать" и так далее. Типичный "спор без аргументов, спор на темперамент".


Я утверждаю, то что можно проверить. Я утверждаю, что утверждение о том, что в случае селекта спереди нельзя сделать интеллисенс — ложно. Больше я ничего не утверждаю. А, вот ты просто не хочешь понять, что поддерживаешь ложные предпослыки и споришь со мной о чем-то тебе угодном, но никак не пересекающемся с моими словами.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 02.12.15 16:12
Оценка: +3
Здравствуйте, VladD2, Вы писали:

VD>Аналогия хреновая. "return" действительно не нужен, а "SELECT" таки нужен. Вопрос только где его ставить.


Аналогия прекрасна. А Select в LINQ бывает так же часто не нужен, как и нужен. По сути нужен он только когда нужна проекция. По большому счёту "SELECT *" в SQL — это синтаксический мусор.

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


Думаю, что ты сам запутался в причинах и следствиях. Становится удобнее потому что привыкаешь, или привыкаешь потому что становится удобнее?

VD>В Нитре не проблема добавить любой синтаксис. Линк доступен из коробки.


А в нём есть синтаксический distinct или возможность его добавить самостоятельно?

VD>Меня просто разрдражает, когда люди повторяют булшит за евангелистами и попрагандонами.


Пусть повторяют. Зачем из-за этого раздражаться? Или ты всё ещё хочешь сделать мир лучше?
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 02.12.15 16:21
Оценка: +6
Здравствуйте, VladD2, Вы писали:

VD>Зато среди программистов имеет не хилую популярность. И что-то ни одного вопля, что SELECT не на месте я за все его существование так и не услышал.


Это как раз тот случай, когда всем по барабану из-за отсутсвия альтернативы в самом SQL. Что толку вопить, если тебя всё равно никто не услышит. Зато когда касается альтернатив самому SQL, то сегодня воплей предостаточно.

VD>Комплит тоже для него поддерживается.


Комплит для него не столько поддерживается сколько нещадно глючит и люто раздражает.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: hi_octane Беларусь  
Дата: 02.12.15 17:23
Оценка: +5
VD>Я утверждаю, то что можно проверить. Я утверждаю, что утверждение о том, что в случае селекта спереди нельзя сделать интеллисенс — ложно. Больше я ничего не утверждаю. А, вот ты просто не хочешь понять, что поддерживаешь ложные предпослыки и споришь со мной о чем-то тебе угодном, но никак не пересекающемся с моими словами.

Утверждаешь — так доказывай

В случае с линком и решарпером после var x = from a in | <- уже здесь автокомплит может вывести подсказку со всем что в локальной области видимости IEnumerable, IQueryable и т.п. А когда дело до ходит до select| автокомплиту уже вообще ясно чеиу можно сделать select а чему точно нет.

А теперь давай рассмотрим случай со спереди SELECT| и скажи что тут может подсказать автокомплит? В SQL Management Studio 2014 он в этот момент сначала не показывает ничего, а после Ctrl+Space вываливает вообще всё — т.е. бесполезен чуть менее чем полностью. Оракловский в этой же ситуации просто молчит в обоих случаях. И это мы даже близко не рассматриваем такие случаи как вложенные запросы, с несбалансированными скобками, где автокомплит SQL-я лежит не вставая.

И особенно хотел бы отметить безумную идею набирать сначала select, а потом прыгать влево и набирать начало. Да, хорший парсер может и такое подтянуть, но сама идея такого набора в мэйнстрим языке — совершенное безумие. Я как-то linq запросы пишу слева направо и даже решарперовскими сниппетами не очень пользуюсь, несмотря на то что они сами за меня прыгать умеют.
Nemerle — power of metaprogramming, functional, object-oriented and imperative features in a statically-typed .NET language
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: WolfHound  
Дата: 02.12.15 18:07
Оценка:
Здравствуйте, IT, Вы писали:

VD>>В Нитре не проблема добавить любой синтаксис. Линк доступен из коробки.

IT>А в нём есть синтаксический distinct
Нет.
IT>или возможность его добавить самостоятельно?
Есть.

Но, честно говоря, мне данная грамматика не нравится.
Слишком правильная, а значит плохо расширяемая.
ИМХО лучше так:
  Скрытый текст
namespace CSharp
{
  syntax module Linq
  {
    using Nitra.Core;

    using CSharp.TokenNames;
    using Literals;
    using CSharp.CsIdentifiers;
    using Types;
    using Expressions;

    keyword regex ['A'..'Z', 'a'..'z', '_'..'_']+ rule S;

    alias BooleanExpression   = Expression;

    extend syntax Expression
    {
      | Query = &("from") LinqClause+;
    }

    token LinqKeyword
    {
      | Name=LinqKeywordToken !CsIdentifiers.IdentifierPartCharacters
        {
          // "from" ignored
          regex LinqKeywordToken = "where" | "join" | "on" | "equals" | "into" | "let" | "orderby" | "ascending" | "descending" | "select" | "group" | "by";
        }
    }

    syntax LinqExpression  = !LinqKeyword Expression;
    syntax LinqType        = !LinqKeyword AnyType;
    syntax LinqName        = !LinqKeyword Name;

    syntax LinqClause
    {
      | FromCommon = "from" sm             LinqName sm "in" sm LinqExpression;
      | FromCasted = "from" sm LinqType sm LinqName sm "in" sm LinqExpression;

      | Let        = "let" sm LinqName sm "=" sm LinqExpression; // let-clause
      | Where      = "where" sm BooleanExpression; // where-clause
      | JoinCommon = "join" sm             LinqName sm "in" sm LinqExpression sm "on" sm LinqExpression sm "equals" sm LinqExpression (sm IntoClause)?; // join-clause && join-into-clause
      | JoinCasted = "join" sm LinqType sm LinqName sm "in" sm LinqExpression sm "on" sm LinqExpression sm "equals" sm LinqExpression (sm IntoClause)?; // join-clause && join-into-clause
      | Orderby    = "orderby" sm (Ordering; ","sm)+ // orderby-clause
        {
          regex OrderingDirection = "ascending" | "descending";
          syntax Ordering = LinqExpression OrderingDirection?;
        }

      | Select     = "select" sm LinqExpression;
      | Group      = "group"  sm LinqExpression sm "by" sm LinqExpression;

      | IntoClause = "into" sm LinqName;
    }
  }
}

Вот так можно расширить синтаксис
namespace CSharp
{
  syntax module LinqExt
  {
    using Nitra.Core;
    using CSharp.Linq;
    extend syntax LinqClause
    {
      | Distinct = "distinct" что там дистинкту надо;
      | FirstOrDefault = "first" "or" "default";
    }
    extend token LinqKeyword
    {
      | Distinct = "distinct";
      | FirstOrDefault = "first" "or" "default";
    }
  }
}
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: _NN_ www.nemerleweb.com
Дата: 02.12.15 19:34
Оценка:
Здравствуйте, IT, Вы писали:

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


VD>>Аналогия хреновая. "return" действительно не нужен, а "SELECT" таки нужен. Вопрос только где его ставить.


IT>Аналогия прекрасна. А Select в LINQ бывает так же часто не нужен, как и нужен. По сути нужен он только когда нужна проекция. По большому счёту "SELECT *" в SQL — это синтаксический мусор.

Кстати да.
Я смотрел на работу DBA.
Делают сначала
SELECT * FROM TheTable

Смотрят что там есть и только потом изменяют на
SELECT TheColumn FROM TheTable

Я согласен с тем, что 'FROM TheTable' должно быть валидно и просто выбирать всё.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.12.15 06:24
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Вам же втюхали (по средством пиара) мысль о том, что именно так правильно. И теперь вы считаете это логичным.


Наоборот, fluent интерфейс за 10 лет до linq именно так и использовался — источник-преобразования-результат
Корни таких идей растут еще в железе — очень легко понять, что откуда растет. Многие модели в программировании взяты из других областей. Самый простой способ выразить известные модели в языке — просто переписать один к одному. Что и видим — источник-преобразования-результа

Более того — люди пишут слева направо. Именно эту особнность и использует интеллисенс. Никто в своем уме не будет пилить интеллисенс под фокусы вида "прыгни назад после донабора справа перед дополнением слева"

VD>Человеческий разум без проблем "прыгает". Это не аргумент. Миллиарды людей каждый день говорят на английском, в котором постоянно приходится прыгать. Я уже не говорю уже о сотнях миллионах русских которые постоянно воспринимают предложения слова в которых стоят то так, то эдак. Нам совершенно все равно попросят ли нас:


У людей, который английский не родной, полно ошибок "я взял", "меня взяли", "взяли мне"
То есть, путаница между главным и второстепенным, объектом и субъектом и тд и тд.

VD>Нам плевать на последовательность. Мы анализируем предложение целиком. Если нам нужно разобраться в деталях, то мы можем перейти к любой части предложения и проанализировать ее более глубоко.


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

Кроме того — надо учесть, что язык программирования учат слишком поздно относительно первых двух естественых(родной с рождения, второй в школе).

VD>Те кто создавал SQL исходили из того, что запросы должны быть нормальными фразами на английском языке. В этом тоже есть смысл.


И ожидаемо, что для тех, у кого английский неродной или сильно условный, смысла в этом никакого не будет.
Отредактировано 03.12.2015 6:28 Pauel . Предыдущая версия .
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.12.15 06:36
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Из того что приходится возвращаться в начало никак не следует, что что-то там перевернуто.


Если ты не заметил, то возвращаться в начало собственно потому и нужно, что где то чтото перевернуто. Иначе сам возврат не нужен.

VD>И это не моя упертость, а твои проблемы в логическом мышлении. Ты делаешь выводы там где их делать нельзя.


Скорее последствия разрыва шаблона — оказывается, большинство-то c разной частотой, но используют query comprehension.

А вот 5-6 лет назад query comprehension только студенты на собеседованиях показывали
Отредактировано 03.12.2015 6:38 Pauel . Предыдущая версия .
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.12.15 06:46
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Но мы пишем код во много раз реже нежели его читаем. И смотреть здесь нужно именно на то как он читается, а не на то как он пишется.


Читать удобнее слева направо, снизу вверх примерно в таком виде — источник-трансформация-результат. А если надо возвращаться, то лучше этот кусок или выпрямить, или выбросить.

Если ты не в курсе, текст набирают тоже слева направо — именно так, как и читают. Потому ни в случае чтния кода, ни в случае набора нет никаких "возвратов"

Попробуй, кстати, свои "возвраты" в Нитре запилить. Вдруг взлетит ? Можно, кстати, улучшить интеллисенс — показывать не одно окошко меню, а целую кучу. Вобщем, буде взлетят "возвраты" всех сортов — на такой случай обязуюсь сей же секунд возобновить эксперименты с Немерле.
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.12.15 11:00
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>на такой случай обязуюсь сей же секунд возобновить эксперименты с Немерле.


Не, лучше не надо. Люди читающие последовательность букв, а не предложения ничего хорошего привнести не могут. Ты лучше продолжай критиковать. Твоя критика лучше любой похвалы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.12.15 06:10
Оценка:
Здравствуйте, VladD2, Вы писали:

Влад, этот "синтаксис" имеет имя собственное, query comprehension.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.12.15 15:01
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Влад, этот "синтаксис" имеет имя собственное, query comprehension.


Пусть имеет. Я все эти базворды запомнить не могу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.12.15 08:26
Оценка: 15 (1) +5
Здравствуйте, VladD2, Вы писали:

VD>Зато среди программистов имеет не хилую популярность. И что-то ни одного вопля, что SELECT не на месте я за все его существование так и не услышал. Комплит тоже для него поддерживается.

Значит, не работал с программистами СУБД.
Автокомплит для сиквела я видел ещё в конце 90х. И уже тогда он был ровно тем отстоем, что и сейчас: набираем select pr<Ctrl-Space> и наблюдаем дропдаун с 960000 вариантами — потому что тянутся поля из всех мыслимых таблиц.
В более-менее реальных ERP базах (а не в примерах про select name from students) в типичной базе — под 500 таблиц. Без указания имени таблицы автокомплит не имеет ни малейшего смысла, т.к. нет контекста, из которого можно было бы хоть что-то вывести. Справа от select можно написать буквально всё, что угодно.

Сказки про то, что можно прыгать при наборе текста направо-налево, надо рассказывать тем, кто пишет те же select * from students при помощи мышки. Реальные пацаны, которые пишут хранимки по 90 килобайт, не пользуются мышой, т.к. при таких объёмах клавиатура рулит. И при клавиатурном наборе непрерывность навигации — штука очень важная. Вот, например, ексель запоминает, сколько раз ты прыгнул направо при помощи tab, чтобы при нажатии enter угадать, куда поставить курсор. Хотя казалось бы — чего сложного: ну возьмёшь и отпрыгнешь руками налево настолько, насколько нужно.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.12.15 08:42
Оценка: +2
Здравствуйте, VladD2, Вы писали:
VD>Ну, вот то что нужно куда-то там возвращаться — это никак не "невозможность реализации интеллисенса". А люди здесь именно этой утверждали (наслушавшись пропагандистов из МС). Это небольшое неудобство при написании.
Таких неудобств ты испытываешь по 100 раз на дню, так как периодически приходится куда-то возвращаться и дописывать ранее написанный код.
Это значительное неудобство при написании, и невозможность реализации такого интеллисенса, который бы реально помогал при написании sql стейтментов.

VD>Но мы пишем код во много раз реже нежели его читаем. И смотреть здесь нужно именно на то как он читается, а не на то как он пишется.

И вот практика показывает, что любой порядок воспринимается на отлично. И синтаксис linq ничуть не менее "английский", чем синтаксис SQL.
Это в советских школах был настолько отвратительный курс английского языка, что их выпускники до сих пор считают "прямой" порядок слов там незыблемым. Что, мягко говоря, неверно.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.15 11:11
Оценка: :)
Здравствуйте, Yoriсk, Вы писали:

Y>Интересно, а в пользу sql-синтаксиса кроме как "зато по феншую"(весльма сомнительному надо сказать) аргументы вообще какие-то есть?


Есть. Многие находят этот вариант более читабельным. Но в моем сообщении речь ведь шла не о том какой из синтаксисов лучше. Я ведь не утверждал, что мне больше нравится подход SQL, а не Linq (мне просто по фигу). Я только лишь утверждал, что "аргумент" с невозможностью реализации интеллисенса — вранье пиарщиков. Но всем по фиг. Они тупо защищают то что им навязали. Причем делают это не какие-то там ламеры, а вполне состоявшиеся люди. Это результат работы промывочной машины большой корпорации. Она настолько хоршо работает, что люди выражают несогласие с очевидным фактом и не задумываются о существе обсуждаемого.

Такова человеческая природа. Здесь ничего не поделаешь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 08.12.2015 11:21 VladD2 . Предыдущая версия .
Re[4]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.15 11:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Это аргумент высосан из пальца пиарщиками из Макрософт. На практике нет никаких проблем написать "SELECT FROM xs", а потом вернуться к секции SELECT и пользоваться комплитом. Парсеру совершенно фиолетово где этот самый SELECT находится.


VD>Надо более критично воспринимать пропаганду пиарщиков. Они любую глупость могут обосновать.


Синнклер! Поясни с чем несогласен то? Что ты там между строк прочел?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.15 12:01
Оценка:
Здравствуйте, Sinclair, Вы писали:

VD>>Зато среди программистов имеет не хилую популярность. И что-то ни одного вопля, что SELECT не на месте я за все его существование так и не услышал. Комплит тоже для него поддерживается.

S>Значит, не работал с программистами СУБД.

Расскажи мне с кем я и где работал. Повесели!

Давай проще сделаем. Найди хоть одно сообщение в сети написанное до этой PR-компании с Linq-ом, где кто-то возмущается тем что SELECT нужно спереди писать.

S>Автокомплит для сиквела я видел ещё в конце 90х.


И умудрился поставить минус на констотацию факта, что положение SELECT-а на его наличие не влияет. Молодец! Чё?!

S>И уже тогда он был ровно тем отстоем, что и сейчас: набираем select pr<Ctrl-Space> и наблюдаем дропдаун с 960000 вариантами — потому что тянутся поля из всех мыслимых таблиц.


Ты же не даун, чтобы жать Ctrl+Space после того как SELECT наберешь? Ну, не разочаровывай же меня так сильно .
Напиши еще FROM и никаких проблем не будет.

Тебя ведь не смущает, что поля в классах могут описываться сильно ниже (или даже в другом файле) чем ты их используешь?

Мили смущает? Где твои протесты по этому поводу?

И, вообще, ты меня так сильно не разочаровывай. Я не верю, ты готов пожертвовать читаемостью кода ради более быстрого ввода.

S>В более-менее реальных ERP базах (а не в примерах про select name from students) в типичной базе — под 500 таблиц. Без указания имени таблицы автокомплит не имеет ни малейшего смысла, т.к. нет контекста, из которого можно было бы хоть что-то вывести. Справа от select можно написать буквально всё, что угодно.


Это ты снова гонишь. Люди ведь обычно и так знают, что хотя написать. Не мало людей быстрее пишут вообще без комплита. Комплит позволят выбрать правильное написание идентификатора. Во многих случаях этого хватает. В тех же скриптовых языках часто нельзя точно сказать, что надо комплитить, по этому выдают более широкий список. И как-то народ доволен и этим.

Но еще раз повторюсь, я не предлагаю комплитить не дописав FROM.

S>Сказки про то, что можно прыгать при наборе текста направо-налево, надо рассказывать тем,


Значит я сказочник. Какие проблемы написать "SELECT FROM Customer", нажать пару раз CTRL + <- и начать выбирать комплитом колонки?

Я обычно сначала писал весь запрос, а уже потом заботился о колонках. Зачастую и "*" хватало.

S>Реальные пацаны, которые пишут хранимки по 90 килобайт, не пользуются мышой, т.к. при таких объёмах клавиатура рулит. И при клавиатурном наборе непрерывность навигации — штука очень важная. Вот, например, ексель запоминает, сколько раз ты прыгнул направо при помощи tab, чтобы при нажатии enter угадать, куда поставить курсор. Хотя казалось бы — чего сложного: ну возьмёшь и отпрыгнешь руками налево настолько, насколько нужно.


Я не знаю зачем ты меня отсылаешь к опыту каких-то даунов пишущих процедуры в десятки килобайтов размером. Но я точно знаю, что аргумент про мышь тоже не канает. В такой огромной процедуре будет не один запрос и "скакать" по ее коду придется не раз. Можешь делать это как тебе удобнее. Хочешь делай мышью, хочешь клавой. Современные редакторы отлично заточены под это.

Короче, ты явно попал под влияние этого промытия мозга.

Код намного чаще читают чем пишут. И в коде важно не то за сколько секунд ты его написал, а то как точно он решает задачу. Такие мелочи где находится SELECT по отношении к FROM никак на это не влияют. Это чистого рода вкусовщина. Понятно, что нэйтив-спикеры могут предпочесть SELECT FROM, так как оно им привычнее, а другие FROM SELECT.

Моя мысль была только о том, что не надо приплетать в качестве аргумента, за один из вариантов, "невозможность организации автокомплита", так как это не соответствует действительности. Комплит можно организовать в любом из вариантов. Вопрос лишь в том, что с классическим SELECT придется вернуться назад на пару слов (два нажатия на клавиатуре).

С чем ты тут споришь, я не знаю, так как лично мне все равно где ставить SELECT. В Linq я вообще не использую синтаксис (query comprehention). Соответственно и Select я использую только кода надо данные "отмапить".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.15 12:18
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Таких неудобств ты испытываешь по 100 раз на дню, так как периодически приходится куда-то возвращаться и дописывать ранее написанный код.


Мне показалось, или ты мои слова повторил?

S>Это значительное неудобство при написании, и невозможность реализации такого интеллисенса, который бы реально помогал при написании sql стейтментов.


У тебя жажда доказать какую-то хрень отбило чувство реальности. Еще раз повторю свою мысль. Может она дойдет наконец.

Интеллисенс реализовать никаких проблем не составляет. Движку интлеллисенса по фигу где находится SELECT. Ему важно чтобы FROM был. Будет FROM — будут и точные подсказки.

Сколько раз не писал запросы, всегда делал это в итеративном режиме. Сначала напишешь упрощенный запрос (обычно со звездочкой). Потом его уточняешь в несколько приемов. При этом постоянно перемещаешься от одной части запроса к другой.

Видел людей которые пишут запросы слева-направо, сверху-вниз. Только им ваши эти интеллсенсы по барабану. Потому они и пишут слева направо.

VD>>Но мы пишем код во много раз реже нежели его читаем. И смотреть здесь нужно именно на то как он читается, а не на то как он пишется.

S>И вот практика показывает,

Твоя практика показала одно, моя другое, а Васи Пупкина — третье.

S>что любой порядок воспринимается на отлично.


Не раз слышал, разные мнения на этот счет. Но согласен, в принципе большинству по фиг.

S>И синтаксис linq ничуть не менее "английский", чем синтаксис SQL.


Да даже по русски так не говорят "Из кладовки красных яблок возьми". Это надо быть последователем Мастера Иоды, чтобы считать такой вариант английским. Он даже не человеческий.

Правда в том, что ко всему можно привыкнуть. Да ты привык к стилю Йоды. И что?

S>Это в советских школах был настолько отвратительный курс английского языка, что их выпускники до сих пор считают "прямой" порядок слов там незыблемым. Что, мягко говоря, неверно.


Давай сюда еще и советские школы приплетем.

Неопровержимые факт тут один. Сделать нормальный интеллисенс в SQL-ном варианте как не чего нелать. А пиарщики Майкрософт ничтожно сумнявшись заявляли, что это невозможно.

Короче, в топку этот аргумент.

Как мы только что выяснили единственный реальный аргумент за SELECT вконце — возможность написания запроса справа-налево, сверху-вниз. Вот им и нужно оперировать, а не разводить демагогию.

Но пиарщикам кажется, что одного аргумента мало. Вот они и высасывают из пальца чушь про невозможность интеллисенса и еще 100500 других офигительных историй. А вы все это хаваете и ведетесь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinix  
Дата: 08.12.15 12:41
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

S>Таких неудобств ты испытываешь по 100 раз на дню, так как периодически приходится куда-то возвращаться и дописывать ранее написанный код.


При всём уважении, не надо спорить. У Влада, когда увлечётся и кто-то с ним не согласен, всё сводится к "промыли мозги". Непрошибаемо

Тем более что тема спора дурная дониззя.
Всё равно что спорить, почему скобки не пишутся )вот так(, или почему в плюсах для объявления переменных не использовали синтаксис от фортрана.
Особую прелесть обсуждению придаёт тот нюанс, что linq вообще-то заточен под обработку последовательностей, а не реляционных данных. Разные языки, разные задачи — разные решения. Очевидно вроде бы

Давайте ещё с css требовать select-from, чо уж там.
Отредактировано 08.12.2015 12:42 Sinix . Предыдущая версия .
Re[10]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 09.12.15 00:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>С чем ты тут споришь, я не знаю, так как лично мне все равно где ставить SELECT. В Linq я вообще не использую синтаксис (query comprehention). Соответственно и Select я использую только кода надо данные "отмапить".


Влад, я понимаю, что ты базворды не запоминаешь, но в LINQ это называется Projection.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 09.12.15 00:40
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Неопровержимые факт тут один. Сделать нормальный интеллисенс в SQL-ном варианте как не чего нелать.


Это уже получается совсем наоборот:

— Суслика видишь?
— Вижу.
— А его нет!
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.12.15 04:58
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Давай проще сделаем. Найди хоть одно сообщение в сети написанное до этой PR-компании с Linq-ом, где кто-то возмущается тем что SELECT нужно спереди писать.

Это демагогия. Пока нет альтернативы — никто и не будет жаловаться.

VD>Ты же не даун, чтобы жать Ctrl+Space после того как SELECT наберешь? Ну, не разочаровывай же меня так сильно .

Конечно. Поэтому я показал, что набираю перед этим фрагмент названия поля. Точно так же, как и в любом другом языке — я набираю часть того текста, который хочу туда поставить, и ожидаю, что автодополнение сделает свою работу — то есть дополнит текст.
VD>Напиши еще FROM и никаких проблем не будет.
Влад. Я на SQL написал столько, сколько ты, наверное, на шарпе не написал. И я тебе говорю из личного опыта: автокомплит в нём неработоспособен.

VD>Тебя ведь не смущает, что поля в классах могут описываться сильно ниже (или даже в другом файле) чем ты их используешь?

VD>Мили смущает? Где твои протесты по этому поводу?
Поля в классах = полям в таблицах SQL. Вопрос не в том, что ниже, а что выше. А в процессе написания кода. В шарпе ты 95% кода пишешь с использованием уже определённых метаданных — и неважно, выше они или ниже. А если тебя заставить прыгать вправо-влево для автокомплита в шарпе, ты повесишься.
VD>И, вообще, ты меня так сильно не разочаровывай. Я не верю, ты готов пожертвовать читаемостью кода ради более быстрого ввода.
Нет никакой жертвы читаемости. Query comprehensions читаются как минимум не хуже SQL.

S>>В более-менее реальных ERP базах (а не в примерах про select name from students) в типичной базе — под 500 таблиц. Без указания имени таблицы автокомплит не имеет ни малейшего смысла, т.к. нет контекста, из которого можно было бы хоть что-то вывести. Справа от select можно написать буквально всё, что угодно.


VD>Это ты снова гонишь. Люди ведь обычно и так знают, что хотя написать.

Влад, я говорю о практике, а ты фантазируешь. Конечно же люди знают, что хотят написать. А вот как это назвал проектировщик в далёком 1995 году, никто не помнит. То ли qty, то ли quantity, то ли quantutu. Автокомплит в таких местах адски рулит — потому что позволяет быстро посмотреть на возможные варианты и сделать выбор. И выбор из 30 полей сделать гораздо удобнее, чем из 9000.

VD>Не мало людей быстрее пишут вообще без комплита.

Конечно. На SQL без автокомплита получается гораздо быстрее — ровно потому, что там автокомплит такой.
VD>Комплит позволят выбрать правильное написание идентификатора.
Это там, где он есть. А в SQL комплит не позволяет ничего — обычно он только тормозит, т.к. за метаданными нужно сбегать в базу, а это быстро не бывает.
VD>Во многих случаях этого хватает. В тех же скриптовых языках часто нельзя точно сказать, что надо комплитить, по этому выдают более широкий список. И как-то народ доволен и этим.
Не смеши меня. Я ещё не видел девелопера, который был бы доволен автокомплитом в JavaScript. Его не ругают на каждом углу ровно по той же причине, что и для SQL — люди понимают, что по-другому нельзя. Смысл жаловаться на гравитацию?

VD>Но еще раз повторюсь, я не предлагаю комплитить не дописав FROM.

А я ещё раз повторюсь, что такой комплит нам ненужен.
VD>Значит я сказочник. Какие проблемы написать "SELECT FROM Customer", нажать пару раз CTRL + <- и начать выбирать комплитом колонки?
То, что это — нелинейное письмо. Тем более, что часто надо писать select from customer c inner join customer_city cc on c.city_id = c.id и так далее. То есть нажимать ctrl + <- надо неизвестное заранее количество раз.

VD>Я обычно сначала писал весь запрос, а уже потом заботился о колонках. Зачастую и "*" хватало.

Ну вот и в linq ты будешь писать весь запрос. При этом тебе комплит помогает во всех местах.

S>>Реальные пацаны, которые пишут хранимки по 90 килобайт, не пользуются мышой, т.к. при таких объёмах клавиатура рулит. И при клавиатурном наборе непрерывность навигации — штука очень важная. Вот, например, ексель запоминает, сколько раз ты прыгнул направо при помощи tab, чтобы при нажатии enter угадать, куда поставить курсор. Хотя казалось бы — чего сложного: ну возьмёшь и отпрыгнешь руками налево настолько, насколько нужно.


VD>Я не знаю зачем ты меня отсылаешь к опыту каких-то даунов пишущих процедуры в десятки килобайтов размером. Но я точно знаю, что аргумент про мышь тоже не канает. В такой огромной процедуре будет не один запрос и "скакать" по ее коду придется не раз. Можешь делать это как тебе удобнее. Хочешь делай мышью, хочешь клавой. Современные редакторы отлично заточены под это.

Я хочу, чтобы автокомплит помогал мне набирать текст, не требуя мышиных прыжков туда-сюда в пределах одного стейтмента.
VD>Короче, ты явно попал под влияние этого промытия мозга.
Удобная позиция.

VD>Код намного чаще читают чем пишут. И в коде важно не то за сколько секунд ты его написал, а то как точно он решает задачу. Такие мелочи где находится SELECT по отношении к FROM никак на это не влияют. Это чистого рода вкусовщина. Понятно, что нэйтив-спикеры могут предпочесть SELECT FROM, так как оно им привычнее, а другие FROM SELECT.

Влад, мне вот непонятно, откуда ты берёшь свои представления о вкусах нейтив спикеров. Дело даже не в том, что у меня другие представления. Ну ты сам как думаешь — наверное, Хейльсберг реже, чем ты, общается с нейтив спикерами?

VD>С чем ты тут споришь, я не знаю, так как лично мне все равно где ставить SELECT.

И всем остальным тоже всё равно. А вот получить работающий комплит — мелочь, а приятно.

VD>В Linq я вообще не использую синтаксис (query comprehention). Соответственно и Select я использую только кода надо данные "отмапить".

Ну так тебе и комплит подсказывает везде.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.12.15 05:02
Оценка: +3
Здравствуйте, VladD2, Вы писали:
VD>Мне показалось, или ты мои слова повторил?
Да, скобка потерялась.

VD>Интеллисенс реализовать никаких проблем не составляет. Движку интлеллисенса по фигу где находится SELECT. Ему важно чтобы FROM был. Будет FROM — будут и точные подсказки.



VD>Неопровержимые факт тут один. Сделать нормальный интеллисенс в SQL-ном варианте как не чего нелать. А пиарщики Майкрософт ничтожно сумнявшись заявляли, что это невозможно.

Влад, ты упорно не читаешь то, что тебе пишут. Максимально возможный интеллисенс в SQL-ном варианте был реализован почти 20 лет назад. И был он такой, что хочется обнять и плакать. И остаётся таким 20 лет спустя. Это не теоретические рассуждения, а 20-летний опыт эксплуатации.
Тебе уже об этом написали здесь чуть ли не все, кто с SQL работал за рамками "сдать зачёт и забыть".
Query comprehensions позволяют получить интеллисенс, который реально работает для реальных людей — а не для тех, кто пишет запрос в семь приёмов, слева-направо-налево-вверх или ещё как-то.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.12.15 05:06
Оценка: +1
Здравствуйте, VladD2, Вы писали:
VD>Синнклер! Поясни с чем несогласен то? Что ты там между строк прочел?
С тем что, нет проблем возвращаться туда-обратно. Интеллисенс должен помогать людям, а не мешать. А в твоей интерпретации получается так, что есть специальный порядок использования — т.е. запрашивать интеллисенс до написания корректной правой части просто нельзя. Дело не в том, что там удобно парсеру — ему-то хоть задом наперёд пиши. А в том, что людям таким "интеллисенсом" пользоваться адски неудобно.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.15 13:10
Оценка:
Здравствуйте, IT, Вы писали:

IT>Влад, я понимаю, что ты базворды не запоминаешь, но в LINQ это называется Projection.


Да мне в общем-то все равно. МС в год по 20 новых базводров придумывает. Я же в Немерле Map увидел лет за несколько до того как они свой базворд придумали.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.15 13:13
Оценка:
Здравствуйте, IT, Вы писали:

IT>Это уже получается совсем наоборот:


IT>- Суслика видишь?

IT>- Вижу.
IT>- А его нет!

Все получается нормально, если за другими не домысливать. Аргументы у МС говно. Но народ на них ведется. Единственный разумный аргумент для потребителя — это отсутствие необходимости передвигать курсор. А для МС основной аргумент был — более простое отображение синтаксиса на паттерн. Вот и все. А в МС чтобы убедить массы высосали из пальца еще несколько "аргументов", которые успешно распространяют эти самые массы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 09.12.15 13:51
Оценка: +4
Здравствуйте, VladD2, Вы писали:

VD>Все получается нормально, если за другими не домысливать. Аргументы у МС говно.


Твои аргументы в общем-то не сильно лучше. К тому же на тему МС с тобой уже давно никто не спорит, да не очень то и спорил. Тебе тут все дружно утверждают, что нормального интелисенса в SQL действительно нет и пара движений мышкой ситуацию не спасёт уже никогда. И это не аргументы МС, это жизнь, Влад. Возможно, даже скорее всего, для тебя работа с вечно ищущими себя инструментами, в которых удобство и практичность постоянно заменяется лишней парой кликов, обыденность, но большинство разработчиков уже давно избаловано комфортом студии и решарпера. Лично я каждый день работаю с SQL и лично меня каждый день раздражает в нём кривой интеллисенс.
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.15 19:05
Оценка: -1
Здравствуйте, IT, Вы писали:

IT>Твои аргументы в общем-то не сильно лучше. К тому же на тему МС с тобой уже давно никто не спорит, да не очень то и спорил.


Вот ты сейчас споришь.

IT>Тебе тут все дружно утверждают, что нормального интелисенса в SQL действительно нет и пара движений мышкой ситуацию не спасёт уже никогда.


Это заблуждение. Выдумка. Оно как теоретически не подтверждается, так и практикой опровергается (есть ряд отлично работающих движков интлелисенса для SQL).

IT>И это не аргументы МС, это жизнь, Влад.


Жизнь — то наличие работающих движков автодополнения и т.п. для SQL. Точнее это факт.

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


Так поставь прямой. То что ты пользуешься кривым, не означает, что нельзя сделать прямой. Принципиальных противоречий для реализации нормального интеллисенса в SQL нет. Нет никакой разницы тащить области видимости вниз или вверх.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.15 19:11
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>С тем что, нет проблем возвращаться туда-обратно. Интеллисенс должен помогать людям, а не мешать. А в твоей интерпретации получается так, что есть специальный порядок использования — т.е. запрашивать интеллисенс до написания корректной правой части просто нельзя. Дело не в том, что там удобно парсеру — ему-то хоть задом наперёд пиши. А в том, что людям таким "интеллисенсом" пользоваться адски неудобно.


Рассказывай это тем кто сам им не пользовался. На практике разницы где SELECT нет никакой. Малом мальски сложные запросы не пишутся в один присест с лева направо. Ты скорее всего раз пять выполнишь недописанный запрос и половину времени у тебя будет не конкретный набор колонок, а "*".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.15 19:15
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Влад, ты упорно не читаешь то, что тебе пишут. Максимально возможный интеллисенс в SQL-ном варианте был реализован почти 20 лет назад. И был он такой, что хочется обнять и плакать.


Что и требуется доказать. Твои суждения основываются на каком-то там неудачном опыте двадцатилетней давности.

Попробуй не ссылаться на негативный опыт, а логически обосновать почему невозможно реализовать этот самый "нормальный" интеллисенс.

S>Query comprehensions позволяют получить интеллисенс, который реально работает для реальных людей — а не для тех, кто пишет запрос в семь приёмов, слева-направо-налево-вверх или ещё как-то.


Ничего такого что нельзя сделать в SQL там нет. Не выдумывай. Ну, или покажи реальную причину. Только не надо рассказывать сказки про то, что интеллисенс исчезает от того что ты начал писать FROM пропустив список колонок или поставив там "*". Давай конкретно. Какие технические причины?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.12.15 19:23
Оценка:
Здравствуйте, VladD2, Вы писали:

Все зависит от проекта. Существенный плюс от QC имеется тогда, когда в форме методов в запросе содержатся промежуточные анонимные типы, т.е. такие типы, которые больше нигде кроме запроса не используются.
Во всех остальных случаях QC-форма существенных преимуществ не имеет, зато имеет проблемы с тем, что микс ее с обычной инфиксной записью весьма уродлив и избежать его удается редко.
Соответственно, если в проекте мало такого, или вообще нет (на rsdn, к примеру, таких может запросов 5), то лучше на QC забить. А вот если структура БД сложная и запросы хитрые и большие, то тогда QC может их заметно упростить.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.12.15 19:36
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Рассказывай это тем кто сам им не пользовался. На практике разницы где SELECT нет никакой.


Влад, ну не смеши, а? IT, к примеру, с которым ты споришь, пишет SQL и LINQ запросы каждый рабочий день уже много много лет. А ты когда последний раз что то коммерческое с SQL писал?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.15 19:39
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Влад, ну не смеши, а? IT, к примеру, с которым ты споришь, пишет SQL и LINQ запросы каждый рабочий день уже много много лет. А ты когда последний раз что то коммерческое с SQL писал?


Дык когда писал интеллисенс был вполне в порядке. Просто нужно было не брать поделки от МС.

Может ты мне ответишь что за фундаментальная проблема в SQL, что интеллисенс не получить?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.12.15 19:49
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Дык когда писал интеллисенс был вполне в порядке.


Все познается в сравнении. И, в любом случае, твои заявления по поводу опыта выглядят смешно. Я бы на твоем месте прислушался к тем, кто на самом деле пользуется этим активно.

VD>Может ты мне ответишь что за фундаментальная проблема в SQL, что интеллисенс не получить?


Мне сложно тебе ответить, потому что ты или не слушаешь или не понимаешь что тебе пишут. У тебя какой то narrow vision. Ты уперся в свою техническую реализуемость, хотя про нее никто кроме тебя не говорит.
Отсутствие возможности писать код линейно это очень большая проблема, зря ты ее отметаешь. Даже в linq ходить не надо — в половине проектов есть extension метод, который полный аналог string.Format, только в инфиксной форме. И в решарпере рефакторинг есть (был по крайней мере до 6 версии шарпа) — переделать в string.format. Знаешь нафига все это? А вот как раз для того чтобы не скакать курсором. И вот когда лично мне приходится писать в проектах, где такой функции нет и добавить ее по каким то причинам нельзя — это очень сильно напрягает.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[12]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 10.12.15 00:05
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Твои аргументы в общем-то не сильно лучше. К тому же на тему МС с тобой уже давно никто не спорит, да не очень то и спорил.

VD>Вот ты сейчас споришь.

Про МС я с тобой не спорю вообще. Мне это как-то по барабану.

VD>Это заблуждение. Выдумка. Оно как теоретически не подтверждается, так и практикой опровергается (есть ряд отлично работающих движков интлелисенса для SQL).


Приведи хотя бы один. Ну, или сам напиши на Нитре. Только сразу одно требование — после SELECT должны выпадать только поля из таблиц, которые я собираюсь написать во FROM. Желательно сразу с теми алиасами таблиц, которые я собираюсь придумать.

VD>Жизнь — то наличие работающих движков автодополнения и т.п. для SQL. Точнее это факт.


Ты их сам-то много видел?
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 10.12.15 00:07
Оценка: +2
Здравствуйте, VladD2, Вы писали:

VD>Рассказывай это тем кто сам им не пользовался. На практике разницы где SELECT нет никакой. Малом мальски сложные запросы не пишутся в один присест с лева направо. Ты скорее всего раз пять выполнишь недописанный запрос и половину времени у тебя будет не конкретный набор колонок, а "*".


Твои домыслы меня умиляют. Ты сам когда последний раз видел SQL? И ты будешь здесь заливать людям, которые с ним работают каждый день? Не позорься.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: [Голосование] Используете ли вы синтаксис в LINQ?
От: WolfHound  
Дата: 10.12.15 00:27
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Во всех остальных случаях QC-форма существенных преимуществ не имеет, зато имеет проблемы с тем, что микс ее с обычной инфиксной записью весьма уродлив и избежать его удается редко.

А если бы у тебя была возможность добавить в QC нужные операторы, стал бы ей пользоваться?
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.12.15 12:44
Оценка:
Здравствуйте, IT, Вы писали:

IT>Твои домыслы меня умиляют. Ты сам когда последний раз видел SQL? И ты будешь здесь заливать людям, которые с ним работают каждый день? Не позорься.


Меня умиляет когда технические люди в техническом споре скатываются на давление авторитетом. Как бы не надо быть курицей чтобы понимать толк в яичнице. (ц)

ЗЫ

SQL видел месяц назад. Там мало что изменилось. А вот вопросах как что типизируется разбираюсь последние 1.5 года и отвечаю за свои слова в этом вопросе.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Yoriсk  
Дата: 10.12.15 13:02
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Твои домыслы меня умиляют. Ты сам когда последний раз видел SQL? И ты будешь здесь заливать людям, которые с ним работают каждый день? Не позорься.

VD>Меня умиляет когда технические люди в техническом споре скатываются на давление авторитетом. Как бы не надо быть курицей чтобы понимать толк в яичнице. (ц)

От человека, единсвенный аргумент которого "вы ничего не понимаете, кругом враги, заговор, ZOG вам всем промыла мозги, а у меня шапочка из фольги поэтому я знаю точно", это звучит особенно весомо.
Re[10]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.12.15 13:05
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Ты уперся в свою техническую реализуемость, хотя про нее никто кроме тебя не говорит.


Это был реальный "аргумент" пиарщиков Майкрософт.

AVK>Отсутствие возможности писать код линейно это очень большая проблема, зря ты ее отметаешь. Даже в linq ходить не надо — в половине проектов есть extension метод, который полный аналог string.Format, только в инфиксной форме. И в решарпере рефакторинг есть (был по крайней мере до 6 версии шарпа) — переделать в string.format. Знаешь нафига все это? А вот как раз для того чтобы не скакать курсором. И вот когда лично мне приходится писать в проектах, где такой функции нет и добавить ее по каким то причинам нельзя — это очень сильно напрягает.


Ну, так и надо приводить в качестве аргумента "необходимость сказать курсором", а не "невозможность реализовать интеллисенс". Чувствуешь разницу?

Проблема (для пиарщиков) в том, что этот уже довольно слабый аргумент для многих. Многие бы предпочли првычный синтаксис.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.12.15 13:06
Оценка:
Здравствуйте, Yoriсk, Вы писали:

Y>От человека, единсвенный аргумент которого "вы ничего не понимаете, кругом враги, заговор, ZOG вам всем промыла мозги, а у меня шапочка из фольги поэтому я знаю точно",


Тебе мерещится. Это плохой признак.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[11]: [Голосование] Используете ли вы синтаксис в LINQ?
От: alexzz  
Дата: 10.12.15 13:16
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Ну, так и надо приводить в качестве аргумента "необходимость сказать курсором", а не "невозможность реализовать интеллисенс". Чувствуешь разницу?


"Невозможность реализовать нормальный интеллисенс без необходимости скакать курсором" — такая формулировка подойдёт? Либо интеллисенс, но скакать; либо не скакать, но без интеллисенса.
Re[11]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinix  
Дата: 10.12.15 13:31
Оценка: 70 (1)
Здравствуйте, VladD2, Вы писали:

VD>Ну, так и надо приводить в качестве аргумента "необходимость сказать курсором", а не "невозможность реализовать интеллисенс". Чувствуешь разницу?

Влад, проблема в том, что ты споришь с "я так запомнил", а не с "было такое объяснение".

Я ещё на первой странице давал ссылку на объяснение от Де Смета.
Ну и реальные объяснения, которые на конференциях не раз озвучивались, тоже приводил.

Поскольку тема затянулась до маразма, скопирую ещё раз целиком:

... SQL query editors don’t have a crystal ball that can predict what table or view you’re querying when you write:

SELECT Na

How is it supposed to autocomplete what you’re writing when it hasn’t seen the FROM clause (here spelled all caps because we’re talking about SQL) just yet? Moreover, it doesn’t make sense to write SELECT first because it’s the last thing that happens: Tell the source, filter items, sort them, and so on. But projecting the result happens at the very end. So why does it come syntactically first? I don’t know. If there’s a SQL language designer reading this book, send me an email and enlighten me!

DON’T REPEAT MISTAKES
Assuming the SQL order of operations was a mistake (it is), it would be silly to repeat it in today’s language design even if it were for consistency and familiarity with the SQL language people may already know.
In fact, Visual Basic 9.0 was in this camp for a long while, going to great lengths to keep the Select clause (here using typical Visual Basic spelling of the keyword) in front, with intractable and confusing code editor jumps while typing a query.
It went roughly like this, if I recall correctly:



This was highly unintuitive, and the Visual Basic team eventually surrendered and made the From clause come first. The fear people would dislike it because of its difference from the already familiar SQL language has, as far as I know, never really materialized.

So, even if some SQL language designers would defend their design choices, the .NET developer audience has shown that having the From clause first is much more intuitive in the end.


найди тут хоть слово про "нишмагли в интеллисенс".

VD>Проблема (для пиарщиков) в том, что этот уже довольно слабый аргумент для многих. Многие бы предпочли првычный синтаксис.

Проблема в том, что люди не любят изучать матчасть _перед_ тем, как делать какие-либо утверждения.
На практике даже самые фанатичные сторонники сабжа из VB team после первых же прототипов отказались от идеи.
Re[12]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.12.15 14:22
Оценка:
Здравствуйте, Sinix, Вы писали:

S>найди тут хоть слово про "нишмагли в интеллисенс".


Ты цитируешь какую-то книжку, а про "нишмагла" было написано в агитках. И повторяют именно их, а не автора этой книги.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: [Голосование] Используете ли вы синтаксис в LINQ?
От: Sinix  
Дата: 10.12.15 14:38
Оценка: +2
Здравствуйте, VladD2, Вы писали:

S>>найди тут хоть слово про "нишмагли в интеллисенс".

VD>Ты цитируешь какую-то книжку, а про "нишмагла" было написано в агитках. И повторяют именно их, а не автора этой книги.

О, в этой "какую-то" и есть весь юмор ситуации
Где лопата: Де Смет и есть (точнее, был) евангелистом linq team, см его серию LINQ to Everything. Ну и по совместительству немножко так автор Rx (не он один, конечно, но отметился он там хорошо).

В общем, лучше читать первоисточники, а не "Рабинович напел"
Re[14]: [Голосование] Используете ли вы синтаксис в LINQ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.12.15 14:51
Оценка:
Здравствуйте, Sinix, Вы писали:

S>В общем, лучше читать первоисточники, а не "Рабинович напел"


Проблема в том, что пресрелизы и агитацию пишут рабиновичи. А массы потоп подхватывают и делают их перлы "аргументами".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [Голосование] Используете ли вы синтаксис в LINQ?
От: IT Россия linq2db.com
Дата: 10.12.15 15:21
Оценка: +1
Здравствуйте, VladD2, Вы писали:

IT>>Твои домыслы меня умиляют. Ты сам когда последний раз видел SQL? И ты будешь здесь заливать людям, которые с ним работают каждый день? Не позорься.

VD>Меня умиляет когда технические люди в техническом споре скатываются на давление авторитетом. Как бы не надо быть курицей чтобы понимать толк в яичнице. (ц)

Это в случае, если ты яичницу регулярно потребляешь, а не слышал как это делается от друзей, которые её в последний раз видели в прошлом году.

VD>SQL видел месяц назад. Там мало что изменилось. А вот вопросах как что типизируется разбираюсь последние 1.5 года и отвечаю за свои слова в этом вопросе.


Твоё экспертное мнение в вопросах типизации никто не ставит под сомнение. Более того, ты единственный здесь, кто этими вещами занимается профессионально. Но и остальные тоже понимают некоторый толк в яичнице. Поэтому я тебя прошу если не реализовать, то хотя бы объяснить мне способ реализации следующего требования к SQL интелесенсу: выведи, пожалуйста, после написания "SELECT" список полей для таблиц, которые я собираюсь использовать во FROM. Если я буду использовать GROUP BY, то туда же должны попасть count(*) и только те поля, которые я включу в GROUP BY. Полей для таблиц, которые я не собираюсь использовать показывать не надо.
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.15 18:28
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>Ты уперся в свою техническую реализуемость, хотя про нее никто кроме тебя не говорит.

VD>Это был реальный "аргумент" пиарщиков Майкрософт.

Ну я ж говорю — ты все равно не слушаешь что тебе говорят. Ты ж заведомо прав, верно?

VD>Ну, так и надо приводить в качестве аргумента "необходимость сказать курсором"


Тебе тут уже раз 10 про это сказали. Читать надо сообщения и понимать их смысл, а не бросаться в бой как следует не разобравшись.

VD>, а не "невозможность реализовать интеллисенс". Чувствуешь разницу?


Ты уперся в свою техническую реализуемость, хотя про нее никто кроме тебя не говорит.


Не читаешь ты сообщения других нормально, не читаешь.

VD>Проблема (для пиарщиков) в том, что этот уже довольно слабый аргумент для многих. Многие бы предпочли првычный синтаксис.


Давай ты не будешь говорить за многих, ОК? Как минимум большинство в этом топике твою точку зрения не разделяет.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[13]: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.15 18:28
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ты цитируешь какую-то книжку, а про "нишмагла" было написано в агитках.


Можно пример такой агитки?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[10]: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.15 18:28
Оценка:
Здравствуйте, IT, Вы писали:

IT>Твоё экспертное мнение в вопросах типизации никто не ставит под сомнение. Более того, ты единственный здесь, кто этими вещами занимается профессионально.


Не единственный, но не суть.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: [Голосование] Используете ли вы синтаксис в LINQ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.15 18:28
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>А если бы у тебя была возможность добавить в QC нужные операторы, стал бы ей пользоваться?


Сложно сказать. Надо пробовать. Мне не очень нравится что правила преобразования QC в инфикс местами не особо интуитивны, и это несколько затрудняет чтение кода. С другой стороны, если QC пользоваться активно, то рано или поздно эти правила пропишутся на подкорку и проблема нивелируется.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.