Re[15]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.03.07 23:31
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>Не угадал. Речь о F# зашла исключительно в контексте паттерн-матчинга.


VD>Я не о вашем разговоре. Я о фразе "детально не смотрел...".


Да не было такой фразы, ну сколько можно перетирать?

VD>Это конечно только предполжение, но уж очень все сходится.


Вот я и говорю — подгоняем факты под теорию.

AVK>>Cw это поделка убогая.


VD>Я бы не был стольк категоричен. Все что есть C# 3.0 было обкатано на этом языке.


Прямым наследником Cw стал скорее VB 9. С# 3 сильно от него отличается, общее там по больше части только в области идей.

VD>Присоеденяюсь к ie. Очень хочется услышать о "повышении их ценности на порядок".


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

VD>Да есть потенциальное повышение дуракоустойчивости (тяжелее случаяно перепутать члены с одинаковым типо данных),


Кинетически тоже. Я тут в одном месте на широкое использование Tuple<> натолкнулся — мрак. Прочитать код практически невозможно.

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


А это как раз и требует изменения рантайма.

VD>"Такие же" (в смысле с такими же ограничениями) безусловно сделать было можно.


С ограничениями можно. Их для того и ввели, чтобы было можно.
Тут, видишь ли, вопрос приоритетов. Что лучше — глобальная доступность кортежей или именованые члены. Мне кажется, что второе, особенно в контексте LINQ и операций проекции в нем, предпочтительнее. У тебя, наверное, мнение другое. Однако это не делает его единственно верным.

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


К счастью, C# делают не математики, а люди сугубо практические.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[28]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.03.07 23:31
Оценка: 2 (1)
Здравствуйте, VladD2, Вы писали:

AVK>>Кто тебе сказал, что он не заметил?


VD>Постави вопрос по другому. Из чего ты сделал вывод, что заметил?


Я стараюсь не высасывать из пальца теории. И я не делал вывод, что он заметил. Мне это, собственно, не было интересно. Было бы интересно, я бы задал прямой вопрос.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[7]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.03.07 23:31
Оценка:
Здравствуйте, AndreiF, Вы писали:

AVK>>Что непонятно?


AF>Какая связь между "менеджед" и "не купит"?


Видишь ли, МС это коммерческая организация, о чем почему то иногда забывают. Прежде чем начать большой проект, нужно чтобы его кто нибудь из тех, кто владеет денежками "купил", т.е. выделил ресурсы на этот проект. А этому ктоту нужно весомое обоснование. Так вот, в настоящий момент такого обоснования для менеджед компилятора нет. Следовательно, начать такой проект можно разве что в рамках MSR, но никак не в рамках C# team.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[7]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.03.07 23:31
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я тоже не понял с чего можно сделать таой вывод.


Это не вывод, это пересказ слов Хейлсберга.

VD>Покумают не "менеджед-" или "анменеджед-" компилятор, а просто компилятор. Всем кто его не расширяет по барабану какой он там внутри.


Это конечно. Не по барабану ресурсы, затраченные на перепис ывание.

VD> А тем кто расширяет конечно было бы приятно видеть управляемый компилятор.


Ну вот расширяемость не хотят делать. А других причин переписывать компилятор пока не видно. Возможно к Гавайам что то и перепишут, но это будет нескоро.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[5]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.03.07 23:31
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>Ваня точнее передал.


VD>Формулировка "точнее" тут не очень подходит. Описания диаметрально проитвополжены.


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

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


VD>Ну, так что обсужда ли то? Он о каких-то проблемах говрил? Или что?


Не говорил он ни о каких проблемах. Вобще. Сказал что идея интересная, что они с интересом смотрят на матчинг в F#, что он обещать ничего не может. Все.

AVK>>Потому что до него рантайм меняться не будет.


VD>Ну, а этому какие-то разумные обоснования были даны? Это просто каприз?


Это не компетенция Хейлсберга. Не он принимает решение. Он сказал, что нужно менять рантайм, что рантайм будет меняться в 4.0. Все.

AVK>>Это точно будет не раньше выхода Оркаса и Розарио. Этот фреймворк будет под VS 10. Что такое VS 10 еще большой вопрос.


VD>Значит рельно минимум до 2010 года C# будет иметь кастрированные аннонимные типы.


Насчет дат я ничего не знаю. Релиз Оркаса планируется на конец 2007. Функционал Гавайев начинает урезаться, это свидетельствует о подготовке старта создания продукта. Но тут есть сущая бомба — пока в требованиях стоит совместимость с VSIP. К чему это может привести тебе, надеюсь, объяснять не нужно. Будет ли VS 10 на базе Nautilus (ядро Гавайев) в настоящий момент тоже не так очевидно.

VD>Меж тем уже есть "криативные" орлы которые изобретают способы как протаскивать ссылки на них через object.


А чего тут изобретать? Обычный класс.

AVK>>Толку с твоего компилятора. Нужен продукт, а это стоит недешево.


VD>Ну, то понты. Комплитор шарпа отнюдь не хайтэчный продук. Один человек за пол года его вполне осилит.


Осилит поделку. MSR таких плодит по мере надобности пачку. Продукт это несколько иное. Вон решарперовцы сколько свой парсер строгают. Никак не полгода.

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


VD>О как? То есть они сами не верят что на менеджед-языке можно делать компилятор?


Нет, верят. И Хейлсберг явно не против это сделать, как только это можно будет обосновать.

AVK>>Но компилятор тоже на С++.


VD>Хм. Вот это я не в курсе. Мне показалось из текста, что компилтор будет управляемым. Хотя может конечно прикрутят на JNI.


Ну вон Cyberax кинул ссылку на наличие в последней версии компилятора. Но основной javac пока что на С++.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[18]: Немножко о С# 3
От: AndreiF  
Дата: 25.03.07 05:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Если объявить интерфейс ковариантным, то от этого ничего не изменится. Ну, разве что пользователи будут путаться.


Не вижу никаких оснований для путаницы. Ты кстати забыл, что по хорошему нужно и System.ICloneable тоже реализовать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: Немножко о С# 3
От: ie Россия http://ziez.blogspot.com/
Дата: 25.03.07 12:30
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>>>Что тут неясного? В C# 3 у кортежей члены имеют имена. И это очень хорошо, так как на порядок повышает их ценность.

ie>>По мне так наоборот понижает, но буду рад выслушать объяснение (желательно на примере), что это не так.
AVK>Это тут недалеко обсуждалось. Кортеж без именованных членов заметно ухудшает читабельность и порождает опасность перепутать эти члены.

Возможно, я превык к безымянным и никаких трудностей с ними не испытываю. А перепутать члены.... ну не знаю даже, закрыть один глаз и посмотреть заново.
Меня больше пугает ситуация, когда кортежи таки будут именнованные и идеологически разные кортежи {Name, Value} будут приравниваться компилятором. Если сейчас контроль полностью лежит на плечах программиста, то перенеся часть такого контроля на компилятор, можно нехило огрести. Хотя для меня и твоя крайность и моя достаточно надуманные и на деле не именнованные не безымянные кортежи никакой проблемы не создают.

AVK>>>Но такие кортежи средствами вроде Nemerle или F# не реализуются.

ie>>Т.е. безымянные кортежи реализовать смогли, а именнованые не смогут?
AVK>Без изменения рантайма нет.

В рамках одной сборки — очень даже можно, но в общем случае, да, без изменения в рантайме тяжко.

ie>>Да на них банально забили за ненадобностью.

AVK>Я почему то Хейлсбергу больше, чем тебе верю.

А причем тут Хейлсберг? Или фраза "такие кортежи средствами вроде Nemerle или F# не реализуются" его? Так он все-таки смотрел Немерле?
А вообще болд это нормально. Типа психология. Извесному человеку всегда проще верить, чем "этому с улицы". Так что я ни сколько не удивлен
... << RSDN@Home 1.2.0 alpha rev. 655>>
Превратим окружающую нас среду в воскресенье.
Re[16]: Немножко о С# 3
От: WolfHound  
Дата: 25.03.07 12:55
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Это тут недалеко обсуждалось. Кортеж без именованных членов заметно ухудшает читабельность и порождает опасность перепутать эти члены.

А то что в функцию нужно передавать параметры в определенном порядке тебя не пугает?
А как тебе вариант если в функцию можно будет передавать только один параметер?
А что? Когда нужно несколько просто заводим структурку и передаем через нее.
Ну и что что писать нужно больше за то читабельность на "высоте".
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: Немножко о С# 3
От: Gollum Россия  
Дата: 25.03.07 12:58
Оценка: +2 :)))
Здравствуйте, AndrewVK, Вы писали:

AVK>Ваня точнее передал. Там, кстати, еще Gollum присутствовал.


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

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


А я еще посмеялся про себя, подумал что шутка такая. Ан нет, действительно — выводят на чистую воду. Надо в следующий раз официальный протокол с печатями видимо захватить, и не дай бог там будет пара словосочетаний, допускающих двоякое толкование.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Eugene Agafonov on the .NET

Re[16]: Немножко о С# 3
От: WolfHound  
Дата: 25.03.07 13:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Кинетически тоже. Я тут в одном месте на широкое использование Tuple<> натолкнулся — мрак. Прочитать код практически невозможно.

Где? В C#? Так это ты зря такие выводы делаешь. В C# для них сахара нет. В немерле все читается хорошо.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Немножко о С# 3
От: Cyberax Марс  
Дата: 25.03.07 13:26
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Ну вон Cyberax кинул ссылку на наличие в последней версии компилятора. Но основной javac пока что на С++.

Javac ВСЕГДА был полностью на Java! На С++ в нем только запускальщик (javac.exe имеет размер 25600 байт).

Сам компилятор находится в tools.jar в каталоге JDK_ROOT/lib и занимает порядка 3Мб откомпилированого кода.
Sapienti sat!
Re[17]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.03.07 13:41
Оценка:
Здравствуйте, ie, Вы писали:

ie>Возможно, я превык к безымянным и никаких трудностей с ними не испытываю.


А некоторые привыкли к С++ и тоже никаких трудностей не испытывают.

ie>Меня больше пугает ситуация, когда кортежи таки будут именнованные и идеологически разные кортежи {Name, Value} будут приравниваться компилятором.


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

ie>>>Т.е. безымянные кортежи реализовать смогли, а именнованые не смогут?

AVK>>Без изменения рантайма нет.

ie>В рамках одной сборки — очень даже можно


А в рамках разных сборок нельзя. Технология, несовместимая с КОП для C# неприемлема.

ie>>>Да на них банально забили за ненадобностью.

AVK>>Я почему то Хейлсбергу больше, чем тебе верю.

ie>А причем тут Хейлсберг?


При том что он озвучил, зачем на них забили.

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


Дело не в известности, дело в том что именно он принимал решение, о котором речь.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[17]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.03.07 13:41
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>А то что в функцию нужно передавать параметры в определенном порядке тебя не пугает?


Параметры функции локальны, кортеж глобален.

WH>А как тебе вариант если в функцию можно будет передавать только один параметер?


Нормально.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[17]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.03.07 13:41
Оценка:
Здравствуйте, WolfHound, Вы писали:

AVK>>Кинетически тоже. Я тут в одном месте на широкое использование Tuple<> натолкнулся — мрак. Прочитать код практически невозможно.

WH>Где? В C#?

В нем.

WH>Так это ты зря такие выводы делаешь. В C# для них сахара нет. В немерле все читается хорошо.


При чем тут Nemerle? Ты заголовок топика прочел?
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[18]: Немножко о С# 3
От: WolfHound  
Дата: 25.03.07 13:59
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Параметры функции локальны, кортеж глобален.

А возвращаемое функцией значение тоже глобально?
Дело в том что кортежи нужны в основном для того чтобы возвратить несколько значений из функции.
out параметры не предлагать. Это куча лишнего кода. И вобще костыль для языков без кортежей и паттернматчинга.
А линий код ну никак не повышает читабельность.

WH>>А как тебе вариант если в функцию можно будет передавать только один параметер?

AVK>Нормально.
А не озвереешь структурки для каждой функции заводить?
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: Немножко о С# 3
От: WolfHound  
Дата: 25.03.07 13:59
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

WH>>Где? В C#?

AVK>В нем.
Во-во.

WH>>Так это ты зря такие выводы делаешь. В C# для них сахара нет. В немерле все читается хорошо.

AVK>При чем тут Nemerle? Ты заголовок топика прочел?
Дело в том что ты говоришь что код с кортежами читать не возможно. Но ты делаешь этот вывод на основе кода на языке где нет сахара для кортежей. И распространяешь этот вывод на все языки. Что есть не корректное обобщение.
Вот по этому я тебе и предлагаю посмотреть на язык в котором этот сахар есть.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[19]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.03.07 15:54
Оценка:
Здравствуйте, WolfHound, Вы писали:

AVK>>Параметры функции локальны, кортеж глобален.

WH>А возвращаемое функцией значение тоже глобально?

Если функция публична.

WH>Дело в том что кортежи нужны в основном для того чтобы возвратить несколько значений из функции.


Анонимные типы в C# создавались для типизации результата операции проекции.

WH>>>А как тебе вариант если в функцию можно будет передавать только один параметер?

AVK>>Нормально.
WH>А не озвереешь структурки для каждой функции заводить?

Нет, если заведение структурки сделать удобным.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[19]: Немножко о С# 3
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.03.07 15:54
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>>>Где? В C#?

AVK>>В нем.
WH>Во-во.

WH>>>Так это ты зря такие выводы делаешь. В C# для них сахара нет. В немерле все читается хорошо.

AVK>>При чем тут Nemerle? Ты заголовок топика прочел?
WH>Дело в том что ты говоришь что код с кортежами читать не возможно.

Речь, естественно, о C#. Другие языки в контексте этого топика меня не интересуют.

WH> Но ты делаешь этот вывод на основе кода на языке где нет сахара для кортежей. И распространяешь этот вывод на все языки.


Я не распространяю вывод на другие языки, не надо фантазировать.

WH>Вот по этому я тебе и предлагаю посмотреть на язык в котором этот сахар есть.


Андрюша, дорогой, я, в свое время, потратил достаточно времени на изучение Nemerle. Спецом я в нем, конечно, не стал, но определенное представление о нем имеется. Так что оставь этот тон.
... << RSDN@Home 1.2.0 alpha rev. 675 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[20]: Немножко о С# 3
От: ie Россия http://ziez.blogspot.com/
Дата: 25.03.07 16:29
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

WH>>Дело в том что кортежи нужны в основном для того чтобы возвратить несколько значений из функции.

AVK>Анонимные типы в C# создавались для типизации результата операции проекции.

Дык, может тогда и не стоит их громким словом "кортежи" называть?

WH>>>>А как тебе вариант если в функцию можно будет передавать только один параметер?

AVK>>>Нормально.
WH>>А не озвереешь структурки для каждой функции заводить?
AVK>Нет, если заведение структурки сделать удобным.

Например так?
def x = (1, "test", 0.75);
def y = f(x);
... << RSDN@Home 1.2.0 alpha rev. 655>>
Превратим окружающую нас среду в воскресенье.
Re[20]: Немножко о С# 3
От: WolfHound  
Дата: 25.03.07 16:39
Оценка: +2
Здравствуйте, AndrewVK, Вы писали:

AVK>Речь, естественно, о C#. Другие языки в контексте этого топика меня не интересуют.

Это не суть важно. Важно только есть сахар или нет в конкретном языке.

AVK>Я не распространяю вывод на другие языки, не надо фантазировать.

А что-же ты делаешь? Ты пытаешься убедить всех что позиционнае кортежи бесполезны, а то и вредны.
Если я не прав тогда объясни чего ты всем этим пытаешься добиться?

AVK>Андрюша, дорогой, я, в свое время, потратил достаточно времени на изучение Nemerle. Спецом я в нем, конечно, не стал, но определенное представление о нем имеется. Так что оставь этот тон.


Востановим разговор вместе с фразами которые ты выкинул:

VD>>>>>> Так что не ясно что за выбор такой.

AVK>>>>>Что тут неясного? В C# 3 у кортежей члены имеют имена. И это очень хорошо, так как на порядок повышает их ценность.

VD>>>>Присоеденяюсь к ie. Очень хочется услышать о "повышении их ценности на порядок".
VD>>>>Лично я вообще в это ценности никакой не вижу.
VD>>>>Да есть потенциальное повышение дуракоустойчивости (тяжелее случаяно перепутать члены с одинаковым типо данных), но при этом возможности использования ограничиваются. Например, нельзя передавать их в качестве параметров методов с совпадающей сигнатурой.
VD>>>>Ну, а так как на практике позиционные кортежи проблем не возникают, то вообще не ясно за что идет борьба? Ведь без изменения рантайма решение получается крайне ограниченным.

AVK>>Кинетически тоже. Я тут в одном месте на широкое использование Tuple<> натолкнулся — мрак. Прочитать код практически невозможно.

WH>>Где? В C#?

AVK>В нем.


Что же у нас тут получается? А получается у нас то что ты для обоснования вредности позиционных кортежей приплел язык где нет нормальных инструментов для работы с ними.
В то время как Влад говорил про практику использования позиционных кортежей в языке в котором есть прекрасные инструменты для работы с ними.
Это всеравно что пытаться доказать вредность замыканий в примерах на чистом C. Тем не мение даже в C#2 они реализуются весьма сносно, а в C#3 еще больше сахара насыпали.

Короче я не оставлю этот тон пока ты будешь применять подобные приемы.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.