Здравствуйте, Gaperton, Вы писали:
Y>>З.З.Ы. С того времени как я сказал, что мне общаться с тобой не интересно ничего не поменялось...
G>Не интересно — не общайся, в чем проблема-то? Ты спрашивал вариант с циклом — я привел. Два варианта, в одном из которых показал влияние на результат функции Filter. Что ты так расстроился-то? Ты решив задачу через линк, никакого подвига не совершил — все что ты сделал, это записал цикл необычным образом. От этого в самом деле никакого выигрыша нет .
Мне вот что инетерсно: ты считаешь, что все, кто использует Linq-to-Objects, делают это не по причине удобства, а по какой-то другой причине? Или ты считаешь, что никто Linq-to-Objects не использует?
Здравствуйте, Lloyd, Вы писали:
L>Ну, мне остается только процитировать тебя же (извини, если не точно): человек либо понимает, либо нет.
Тут другой случай. Человек приципиально не хочет понимать и рисует у себя в мозгу картины которые ему же хочется видеть. В общем, полный отрыв от реальности.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Gaperton, Вы писали:
G>Ну, короче, подводя промежуточные итоги. Ну, установили мы факт, что записываются циклы при помощи линка через жопу. Ну дальше-то что?
Я бы не стал судить о технологии на основании примеров, которые подбирались специально, чтобы посмотреть на неё в сценариях с нецелевым использованием.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
G>>Ну, короче, подводя промежуточные итоги. Ну, установили мы факт, что записываются циклы при помощи линка через жопу. Ну дальше-то что?
IT>Я бы не стал судить о технологии на основании примеров, которые подбирались специально, чтобы посмотреть на неё в сценариях с нецелевым использованием.
А и не сужу о технологии. Я характеризую ровно то, что вижу, и не более того.
Давай я обойдусь без эмоциональных характеристик, это, наверное было неправильно с моей стороны (хоть и весело — ведь правда циклы и правда через, гхм...). Хорошо. Я вижу на этих примерах, что обычные циклы можно записать необычным способом, ничего по сути не наиграв. И все. То есть, в данном классе задач преимущество не наблюдается. Выводов обо всей технологии на их основании я не делаю, это действительно глупо.
Я спрашиваю: "дальше что", то есть, ты-то что думаешь об этих примерах сам? Вот честно? Например, ты можешь сказать что-то вроде "да, действительно, вы подобрали поганые примеры, эти примеры не раскрывают силу технологии, она сильна в другом". И показать другой короткий пример, который наоборот, сильный. С реляционной БД поработай, там. Шутка, шутка. Вэлкам, дружище. Мне пока нравится, как мы друг другу код демонстрируем. Движуха какая-то. Прикольно.
Здравствуйте, Lloyd, Вы писали:
L>Мне вот что инетерсно:
Интересно — отвечаем.
L>ты считаешь, что все, кто использует Linq-to-Objects, делают это не по причине удобства, а по какой-то другой причине?
Я считаю, что приведенные примеры не показывают силу Linq-to-Objects. Она, по всей видимости, проявляется на каких-то других задачах.
И второе — да, я таки считаю, что отчасти линк используют на ровном месте просто "потому, что это круто". Я наблюдал подобную мотивацию и поведение у многих программистов на С++, когда они применяют шаблоны. И за некоторыми из которых вычищал от шаблонов а-ля Александреску код. Я думаю, частично подобная мотивация присутствует и у некоторых программистов на линк.
L> Или ты считаешь, что никто Linq-to-Objects не использует?
Здравствуйте, Gaperton, Вы писали:
L>>ты считаешь, что все, кто использует Linq-to-Objects, делают это не по причине удобства, а по какой-то другой причине?
G>Я считаю, что приведенные примеры не показывают силу Linq-to-Objects. Она, по всей видимости, проявляется на каких-то других задачах.
G>И второе — да, я таки считаю, что отчасти линк используют на ровном месте просто "потому, что это круто".
Но при этом, судя по твоим постам, linq ты почти не знаешь и в практике не использовал. Но те, кто его знают, использовал и продолжает использовать, по твоему мнению используют его просто "потому, что это круто".
Теперь посмотри на это со стороны. Не находишь картинку несколькой странной и наталкивающей на размышления?
Здравствуйте, Gaperton, Вы писали:
ГВ>>Да нет, я как раз именно протягивание состояния имею в виду. А в случае Go, кстати, состояние неплохо заворачивается в горутину. Что ты думаешь, я тут крыльями машу? G>Ну, если ты поэтому машешь крыльями, то тебе стоит обратить внимание на Эрланг.
Скажем так — не в последнюю очередь.
G>Там заворачивание состояния в процесс (==goroutine) ходовая техника, ибо по другому мутабельное состояние заворачивать не то, что-бы низя. А неидеоматично. То есть, в Эрланге практика проектирования такова, что вместо объектов массово применяются процессы.
Спасибо, я в курсе более или менее. Только вот к Эрлангу бы добавить ещё C-подобную семантику и синтаксис (да-да, чтобы он был императивным по сути), и сопоставимое c С быстродействие...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, IT, Вы писали:
G>>Ну, короче, подводя промежуточные итоги. Ну, установили мы факт, что записываются циклы при помощи линка через жопу. Ну дальше-то что? IT>Я бы не стал судить о технологии на основании примеров, которые подбирались специально, чтобы посмотреть на неё в сценариях с нецелевым использованием.
В десятку! Значит — есть некое целевое использование? Последовательности — нецелевое, иерархии — нецелевое, а где ж тогда целевое?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Lloyd, Вы писали:
G>>Я считаю, что приведенные примеры не показывают силу Linq-to-Objects. Она, по всей видимости, проявляется на каких-то других задачах. G>>И второе — да, я таки считаю, что отчасти линк используют на ровном месте просто "потому, что это круто". L>Но при этом, судя по твоим постам, linq ты почти не знаешь и в практике не использовал. Но те, кто его знают, использовал и продолжает использовать, по твоему мнению используют его просто "потому, что это круто".
Не надо обобщать. Речь о части применений. Какой именно части — вопрос, на который никто не ответит.
L>Теперь посмотри на это со стороны. Не находишь картинку несколькой странной и наталкивающей на размышления?
Угу. Раньше вместо LINQ-еров отгавкивались C++-ники.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, IT, Вы писали:
IT>В общем, всё это уже становится не интересным. Где не работает Linq я тебе и сам могу сказать. Linq не работает на деревьях и иерархиях, там, где для обработки требуются рекурсивные алгоритмы.
Ну — упс, приехали. А как же Linq2XML?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Lloyd, Вы писали:
G>>Ну, короче, подводя промежуточные итоги. Ну, установили мы факт, что записываются циклы при помощи линка через жопу. Ну дальше-то что?
L>По-моему, все, что ты доказал — это то, что в go с помощью костылей можно съимитировать то, что на linq-е делается просто и красиво.
Что-то больше похоже на обратную ситуацию: что таки не всякий цикл по данным должен реализовываться LINQ-ом.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
IT>>В общем, всё это уже становится не интересным. Где не работает Linq я тебе и сам могу сказать. Linq не работает на деревьях и иерархиях, там, где для обработки требуются рекурсивные алгоритмы.
ГВ>Ну — упс, приехали. А как же Linq2XML?
Здравствуйте, Lloyd, Вы писали:
IT>>>В общем, всё это уже становится не интересным. Где не работает Linq я тебе и сам могу сказать. Linq не работает на деревьях и иерархиях, там, где для обработки требуются рекурсивные алгоритмы. ГВ>>Ну — упс, приехали. А как же Linq2XML? L>А где там работа с деревьями?
Неужто XML деревом быть перестал? Сильное колдунство!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>>Ну — упс, приехали. А как же Linq2XML? L>>А где там работа с деревьями?
ГВ>Неужто XML деревом быть перестал? Сильное колдунство!
xml-вполне себе дерево, да вот только Linq2Xml (в части linq) не дает никаких средств для работы с xml-ем как с деревом.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, Gaperton, Вы писали:
G>>Ну, короче, подводя промежуточные итоги. Ну, установили мы факт, что записываются циклы при помощи линка через жопу. Ну дальше-то что?
IT>Я бы не стал судить о технологии на основании примеров, которые подбирались специально, чтобы посмотреть на неё в сценариях с нецелевым использованием.
И еще — не доказывают ли примеры, что lisp comprehensions в haskell были созданы для работы с РСУБД, но по какой-то странной ошибке природы они с ними работать не умеют?
Здравствуйте, Lloyd, Вы писали:
ГВ>>>>Ну — упс, приехали. А как же Linq2XML? L>>>А где там работа с деревьями? ГВ>>Неужто XML деревом быть перестал? Сильное колдунство! L>xml-вполне себе дерево, да вот только Linq2Xml (в части linq) не дает никаких средств для работы с xml-ем как с деревом.
Упс №2... И ведь верно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Gaperton, Вы писали:
IT>>Я бы не стал судить о технологии на основании примеров, которые подбирались специально, чтобы посмотреть на неё в сценариях с нецелевым использованием. G>А и не сужу о технологии. Я характеризую ровно то, что вижу, и не более того.
G>Давай я обойдусь без эмоциональных характеристик, это, наверное было неправильно с моей стороны (хоть и весело — ведь правда циклы и правда через, гхм...). Хорошо. Я вижу на этих примерах, что обычные циклы можно записать необычным способом, ничего по сути не наиграв. И все. То есть, в данном классе задач преимущество не наблюдается. Выводов обо всей технологии на их основании я не делаю, это действительно глупо.
Я очень рад это слышать.
G>Я спрашиваю: "дальше что", то есть, ты-то что думаешь об этих примерах сам? Вот честно? Например, ты можешь сказать что-то вроде "да, действительно, вы подобрали поганые примеры, эти примеры не раскрывают силу технологии, она сильна в другом".
Я думаю, что примеры подобраны правильно, чтобы продемонстрировать нецелевое использование предмета обсуждения. Мы, в свою очередь, пытались доказать не то, что "Linq is the best of the best of the best", а показать, что с помощью Linq можно решать и такие задачи. Если бы ГВ спросил меня как бы я решал подобную задачу в реальности, а не в сферичности, то я бы ответил, что скорее всего обошёлся бы банальным циклом, т.к. для меня важнее простота и гибкость кода. С другой стороны твои комментарии вроде "Так держать" свидетельствуют о желании найти любой недостаток, в который можно было бы ткнуть пальцем как в том анекдоте:
Вышли из леса суровые русские мужики и увидели японскую бензопилу.
— А-а, б**! — сказали суровые русские мужики и засунули в пилу щепку.
— Вжик! — сказала пила и распилила щепку.
— У-у, б**! — сказали суровые русские мужики и засунули в пилу доску.
— Вжжик! — сказала пила и распилила доску.
— У-у, б**! — сказали суровые русские мужики и засунули в пилу бревно.
— Вжжжжик! — сказала пила и распилила бревно.
— У-у, б**!!! — сказали суровые русские мужики и засунули в пилу рельс.
— Хррр-дзинь — сказала пила и сломалась.
— А-а, б**... — сказали суровые русские мужики и пошли валить лес топорами.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Геннадий Васильев, Вы писали:
G>>>Ну, короче, подводя промежуточные итоги. Ну, установили мы факт, что записываются циклы при помощи линка через жопу. Ну дальше-то что? IT>>Я бы не стал судить о технологии на основании примеров, которые подбирались специально, чтобы посмотреть на неё в сценариях с нецелевым использованием.
ГВ>В десятку! Значит — есть некое целевое использование? Последовательности — нецелевое, иерархии — нецелевое, а где ж тогда целевое?
Последовательности как раз целевое. Для последовательностей, кстати, в C# добавлен foreach и yield с сотоварищами. Но в них работа с состоянием и индексами выглядит столь же нелепо как и в Linq. Тем не менее ты сам подобными решениями, как я понял, не брезгуешь.
Иерархии подразумевают принципиальной другой способ обработки данных, который в C# пока вообще нельзя выразить лаконично. Для этого нужно добавлять в язык локальные функции.
Если нам не помогут, то мы тоже никого не пощадим.