Re[12]: Будущее C#, или почему C# ходит вокруг да около Neme
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.03.09 16:20
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В общем, мультиметоды в идеологическом плане весьма неоднозначная фича.


Чтобы не было недопонимания — мультиметоды мне не нравятся, слишком они громоздкие. Те варианты, что предлагал Хейлсберг, хоть они и тоже ограничены, нравятся мне куда больше.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[14]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 16:31
Оценка: :)
Здравствуйте, Gajdalager, Вы писали:

G>Оффтоп в защиту перла — это шестой перл, не тот, которым детей пугают


То есть — это уже фильм ужасов для взрослых?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 16:36
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Не понял, зачем отбрасывать скрипты? В чем проблема с ними?

J>Тебе шашечки или ехать?

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

Шарп, кстати, тоже может через рефлекшон (совсем не сложно) динамически методы вызывать.

Ну, и какой от этого толк? В реальном коде это использовать нельзя.

VD>>А на перле вы сами пишите.


J>А я и пишу, с большим удовольствием


Ну, и продолжай .

J>Но ты сам, думаю, понимаешь, что "перл мне не нравится, поэтому в разговоре о мультиметодах ему места нет" — это несерьезный аргумент.


Честно сказать, я только от тебя услышал что в 6-ом Перле реализовали мультиметоды. Может они там даже быстро сделаны. Перл ведь компилируется вроде
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 16:39
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Тошнит потому что часто на клавиатуру ...


А чё? Не хуже других .

Если серьезно, то значит не так уж важны для тебя мультиметоды, чтобы ради них выбирать язык. Я бы вот тоже ради них не выбрал бы ни Перл, ни Васик, ни даже Лисп. Хотя по поводу лиспа еще подумал бы, так как там не только мультиметоды реализованы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 16:49
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Даже и не знаю что ответить. Разумеется, я не собирал подробную статистику (как, впрочем, и ты), но применения итераторов после выхода линка я вижу в на порядок больше, причем не только я. А так да, мои впечатления конечно.


А я как-то и раньше не особо много видел, и сейчас тоже не очень много.


AVK>>>А если делать расширяемыми, то толку в них, по сравнению с рефлекшен+LWCG, не дофига.

VD>>Весь толк в скорости.
AVK>Это мне в данном контексте малоинтересно. И LWCG ты все равно не обгонишь

Кто такой LWCG? И зачем мне его обгонять?

AVK>У полустатического варианта в виде того же визитора или алгебраических типов в Немерле скорость соответствует скорости вызова виртуального метода, а у динамики — ET прекрасно компилируется на ходу.


Да, нет конечно. По меньше будет. Раза в 2.5. В прочем это еще приемлемо. Алгеброические типы тут правда не причем. Это с любыми типами можно делать. Есть такой паттерн "| (x is SomeType1, y is SomeType2, ...)".

Вот только посетители больше двойной диспетчеризации реализовать не могут.

VD>>Сдается мне Меер жестоко тебался и над мультиметодами


AVK>Сдается мне, ты ошибаешься.


Не. Почитав о его деятельности моя уверенность немного укрепилась... примерно до ста процентов .
Человек был одним и создателей Хаскеля. Разбил себе лоб проталкивая Хаскель в массы. Создал даже упрощенный Хаскель который не приняли даже хаскелисты. Потом пошел "в народ". Нанялся в МС и сделал СиОмегу. Далее ты знаешь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Будущее C#, или почему C# ходит вокруг да около Neme
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.03.09 16:52
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>Это мне в данном контексте малоинтересно. И LWCG ты все равно не обгонишь


VD>Кто такой LWCG?


lightweight codegeneration

VD> И зачем мне его обгонять?


Ты скорости хотел

VD>Человек был одним и создателей Хаскеля. Разбил себе лоб проталкивая Хаскель в массы. Создал даже упрощенный Хаскель который не приняли даже хаскелисты. Потом пошел "в народ". Нанялся в МС и сделал СиОмегу. Далее ты знаешь.


Ну, мое мнение по поводу СиОмеги ты знаешь
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[13]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 16:57
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


Что значит громоздкие? Мультиметоды это что-то вроде перегрузки по нескольким параметрам. Может выглядеть, например, так:
class A
{
  public static abstract MultiMethod(object x, D d, F f);
}


class B : A
{
  public static override MultiMethod(string x, D d, G f);  // 1
  public static override MultiMethod(int x, X d, Y f);     // 2
}

class F { }
class G : F { }
class D { }
class X : D { }
class Y : G { }
...
A.MultiMethod((object)1, (D)new X(), (F)new G());
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Будущее C#, или почему C# ходит вокруг да около Neme
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.03.09 16:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что значит громоздкие?


То и значит. Слишком громоздкий синтаксис.

VD> Мультиметоды это что-то вроде перегрузки по нескольким параметрам.


Я в курсе того что такое мультиметоды.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[15]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 17:00
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>>>Это мне в данном контексте малоинтересно. И LWCG ты все равно не обгонишь

VD>>Кто такой LWCG?
AVK>lightweight codegeneration

И каким боком это тут?
Речь кажется была о языке.

VD>> И зачем мне его обгонять?

AVK>Ты скорости хотел

Скорости работы стандартного языкового механизма. А не хрен знает чего с боку бантик.

AVK>Ну, мое мнение по поводу СиОмеги ты знаешь


Дык. Все что не СиШарп, то...
Линк — это его рук дело. И в СиОмега он был отработан на языках с близкой к шпрповской системой типов (расширенной, правда).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 17:01
Оценка:
Здравствуйте, AndrewVK, Вы писали:

VD>>Что значит громоздкие?

AVK>То и значит. Слишком громоздкий синтаксис.

А простые методы значит не громоздкие?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Будущее C#, или почему C# ходит вокруг да около Neme
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.03.09 17:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>И каким боком это тут?

VD>Речь кажется была о языке.

C# 4 обеспечит тебе синтаксис, а реализация будет работать через кодогенерацию.

VD>Дык. Все что не СиШарп, то...


Нет.

VD>Линк — это его рук дело.


Пруфлинк?

VD> И в СиОмега он был отработан на языках с близкой к шпрповской системой типов (расширенной, правда).


Сиомега и линк это две большие разницы.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[16]: Будущее C#, или почему C# ходит вокруг да около Neme
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.03.09 17:06
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А простые методы значит не громоздкие?


Громоздкие. Но там надо контроллировать контракт. А задача мультиметодов решается и на локальном уровне.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[17]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 18:16
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>C# 4 обеспечит тебе синтаксис, а реализация будет работать через кодогенерацию.


Что-то я не вижу как это можно сделать. Что тут даст кодогенерация? Диспетчеризация же будет делаться средствами DLR.


AVK>Пруфлинк?

VD>> И в СиОмега он был отработан на языках с близкой к шпрповской системой типов (расширенной, правда).
AVK>Сиомега и линк это две большие разницы.

Разницы не разницы, но инспирировал все Меер.

http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=274C7511459ACB6F30CA506B2BB9975B?doi=10.1.1.72.868&amp;rep=rep1&amp;type=pdf
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 18:18
Оценка:
Здравствуйте, AndrewVK, Вы писали:

VD>>А простые методы значит не громоздкие?


AVK>Громоздкие.




AVK>Но там надо контроллировать контракт. А задача мультиметодов решается и на локальном уровне.


Ну, да is конечно никто не отменял.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Будущее C#, или почему C# ходит вокруг да около Neme
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.03.09 18:23
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>C# 4 обеспечит тебе синтаксис, а реализация будет работать через кодогенерацию.


VD>Что-то я не вижу как это можно сделать. Что тут даст кодогенерация? Диспетчеризация же будет делаться средствами DLR.


На вход биндера придет ET с вызовом. А что уж с ним делать — интерпретировать или сгенерить в рантайме IL, это уже дело самого биндера.

VD>Разницы не разницы, но инспирировал все Меер.


Скажем так, он, безусловно, сильно повлиял на то, что получилось в итоге. Но это не значит, что конечный дизайн линка на 100% его заслуга.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[19]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 18:41
Оценка:
Здравствуйте, AndrewVK, Вы писали:


AVK>На вход биндера придет ET с вызовом. А что уж с ним делать — интерпретировать или сгенерить в рантайме IL, это уже дело самого биндера.


Что за ET?

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

VD>>Разницы не разницы, но инспирировал все Меер.


AVK>Скажем так, он, безусловно, сильно повлиял на то, что получилось в итоге. Но это не значит, что конечный дизайн линка на 100% его заслуга.


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

Меня просто его слова в этом авишнике несколько удивили. Особенно на фоне дружного ржания за кадром. Я сразу подумал, что это похоже на стеб. Но зная про то, что в Америке все очень любят улыбаться (какую бы гадость не делали, или какую бы глупость не говорили) я подумал, что может это и не стеб. Но когда прочел файлик по ссылке, то сразу понял, что не стебом это быть не могло.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Будущее C#, или почему C# ходит вокруг да около Neme
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.03.09 18:57
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что за ET?


Expression Tree

VD>Ну, а тормозить может сам механизм рантайм-идентификации типов.


В смысле? Полиморфный вызов что ли?

VD> Как я понимаю, там предполагается вызвать у каждого объекта .GetType()


Где там? Биндер ты можешь реализовать самостоятельно как тебе угодно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[21]: Будущее C#, или почему C# ходит вокруг да около Neme
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.03.09 19:20
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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

VD>>Что за ET?
AVK>Expression Tree

Ты бы сокращения вводил бы что ли. Это пока что не общепринятое сокращение.

VD>>Ну, а тормозить может сам механизм рантайм-идентификации типов.


AVK>В смысле? Полиморфный вызов что ли?


Там техника такая. Компилятор вмондячивает вызов делегата. Тот нацелен на код который получает динамическую информацию о типах параметров (видимо для тех из них, что заданы как dynamic). Затем лезет в кэш, если в кэше что-то есть, то дергает его (тут я не понял, вроде как там Expression Tree и лежит, но это же бред!). Если нет, то пытается запросить интерфейс IDynamicObject или биндер (если IDynamicObject не реализован). И только биндер уже может отплюнуть что-то. Похоже тоже Expression Tree, хотя тоже не ясно почему бы не просто делегат?

VD>> Как я понимаю, там предполагается вызвать у каждого объекта .GetType()


AVK>Где там? Биндер ты можешь реализовать самостоятельно как тебе угодно.


А что толку? Там до вызова того, что биндер возвратит еще тонна кода будет отрабатывать.

Для сравнения код типа:

match (x, y)
{
  | (x is X, y is Y) => ...
}

Будет переписан в аналог шарповских if-ов и is/as-ов. Разницу в скорости можешь сам себе представить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Будущее C#, или почему C# ходит вокруг да около Neme
От: MasterZiv СССР  
Дата: 26.03.09 20:13
Оценка:
VladD2 пишет:

> Если серьезно, то значит не так уж важны для тебя мультиметоды, чтобы

> ради них выбирать язык. Я бы вот тоже ради них не выбрал бы ни Перл, ни

Безусловно, это не решающий фактор.

> Васик, ни даже Лисп. Хотя по поводу лиспа еще подумал бы, так как там не

> только мультиметоды реализованы.

Ну вот, сам же всё знаешь....
Posted via RSDN NNTP Server 2.1 beta
Re[14]: Будущее C#, или почему C# ходит вокруг да около Neme
От: MasterZiv СССР  
Дата: 26.03.09 20:18
Оценка:
VladD2 пишет:

> MZ>Ну вот, если в стольких языках это реализуют, хотя бы в виде библиотек,

> MZ>значит этого не хватает, значит это кому-то зачем-то нужно ...
>
> А кто-то пользуется?

VladD, я не знаю. Я не фанат мультиметодов. Есть — замечательно. Нет — ну
и ладно, можно и без них жить. Но если люди так старательно их встраивают
или имитируют в языках, где их нет, то значит они им зачем-то очень нужны,
причём имитация в виде Visitor-а их почему-то не устраивает.
Вот у этих людей и спрашивай, зачем они им нужны.

> Такие библиотеки делают из принципа — шоб у нас було. Приходят товарищи

> (обычно лисперы) и говорят — а у вас нет Зингельшухера (с)...

ага, делать им нечего...
В питоне, как я понял, аж три раза подряд делать нечего было.
Posted via RSDN NNTP Server 2.1 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.