Re[16]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.06 00:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


VD>>Я вообще-то с тобой не спорил. Ясогласился с GlebZ по поводу того, что язык выпускается с недоработанными фичами.


AVK>В ответ на мое сообщение, в котором я написал, что далеко не все фичи там недоделаны. Потому и говорю, что не читаешь то, на что отвечаешь.


Ладно, это все рассплывчато. Лично мне не нравится, что вообще есть явные недоработки.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: Разговор с Luke Hoban
От: IT Россия linq2db.com
Дата: 06.04.06 00:46
Оценка: :)
Здравствуйте, VladD2, Вы писали:

IT>>Я тоже в общем то не впечатлился почему-то


VD>Да, нет там никакого обсуждения.


Ну пока ты там не отметился никакого обсуждения и не будет
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[20]: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 06.04.06 07:49
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>Ансейф ерунда. Ключик убрал и никакого ансейфа.


VD>Хм. А тебе не кажется, что такой же аргумент можно применить и к тем же макросам?


У компилятора Nemerle есть ключик, запрещающий макросы? Ну илди хотя бы макросы ввиде ключевых слов?

VD>>>Но ты то вроде о сложности говорил? C# 3.0 несомннено сложнее C# 1.0.


AVK>>Нет, я говорил не о сложности.


VD>Тогда о чем?


О побочных эффектах.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[21]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.04.06 14:46
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>У компилятора Nemerle есть ключик, запрещающий макросы? Ну илди хотя бы макросы ввиде ключевых слов?


Макросы подключаются через ключ. Есть ключ отключающий стандартные макросы. И нет никаких проблем сделать ключ отключающий синтаксические макросы.

AVK>О побочных эффектах.


Подразумеваемых?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.04.06 15:21
Оценка:
По поводу доступа к анонимным типам появилось немножечко больше информации. Главная проблема их реализации в том, что анонимные типы могут быть использованы не в том модуле, в котором объявлены. Иными словами, одинаковые анонимные типы, объявленные в разных сборках, будут в рантайме разными типами. Следовательно, для полноценной поддержки кортежей нужно менять рантайм. Так что в первой версии LINQ полноценных кортежей, похоже, не будет, придется для экспорта описывать типы руками.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[2]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.04.06 17:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>По поводу доступа к анонимным типам появилось немножечко больше информации. Главная проблема их реализации в том, что анонимные типы могут быть использованы не в том модуле, в котором объявлены. Иными словами, одинаковые анонимные типы, объявленные в разных сборках, будут в рантайме разными типами. Следовательно, для полноценной поддержки кортежей нужно менять рантайм. Так что в первой версии LINQ полноценных кортежей, похоже, не будет, придется для экспорта описывать типы руками.


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

Да и странно слышать от разработчиков дотнета о том, что им нужно менять рантайм. В чем проблема-то? Пусть меняют раз надо. Сделают патчь, обратно совместимый с FW 2.0 и нет проблем.

Когда они планируют выпуск LINQ-а?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Разговор с Luke Hoban
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.04.06 03:43
Оценка:
Здравствуйте, VladD2, Вы писали:

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

Вообще-то классические кортежи вполне себе содержат имена полей. В классической реляционной алгебре, кстати, на этой одноименности много чего построено — к примеру оператор естественного соединения.
VD>Они внутри просто описываются через джененики.
Имхо нужно просто делать анонимный тип вот так:
namespace System
{
    public class Tuple<T1, T2, T3>
    {
        protected T1 _f1;
        protected T2 _f2;
        public Tuple(T1 f1, T2 f2) { _f1 = f1; _f2 = f2; }
        public Tuple(Tuple source): this(source._f1, source._f2) {}
    }
}

namespace MyCode
{
    public class MyAnonymousRecord : Tuple<string, int>
    {
        public string Name { get { return _f1; }}
        public int Count { get { return _f2; }}
    }
}

Т.е. есть встроенный набор туплов нужной размерности, а конкретный аноним будет наследоваться от этих туплов и заниматься переименованием. При этом анонимные типы с одинаковой сигнатурой становятся совместимыми, пусть и не одинаковыми.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.04.06 07:50
Оценка:
Здравствуйте, VladD2, Вы писали:

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


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

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


От разработчиков компилятора.

VD> В чем проблема-то? Пусть меняют раз надо.


Было принято решение о том, что в Orcas рантайм кардинально менятся не будет, максимум выйдет сервис пак.

VD>Когда они планируют выпуск LINQ-а?


На данный момент вместе с Orcas. Т.е. либо в конце 2006, либо в начале 2007. Это релиз. Ближайший CTP должен выйти в течение месяца.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[4]: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.04.06 07:50
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Т.е. есть встроенный набор туплов нужной размерности, а конкретный аноним будет наследоваться от этих туплов и заниматься переименованием. При этом анонимные типы с одинаковой сигнатурой становятся совместимыми, пусть и не одинаковыми.


Нет, в твоем варианте они совместимыми не становятся. Ты сам можешь придумать массу примеров, когда несовместимость вылезет.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[5]: Разговор с Luke Hoban
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.04.06 08:36
Оценка:
Здравствуйте, AndrewVK, Вы писали:
AVK>Нет, в твоем варианте они совместимыми не становятся.
Ну, я подразумевал наличие implicit операторов конверсии из Tuple<>.
AVK>Ты сам можешь придумать массу примеров, когда несовместимость вылезет.
Разве что в массивах

Впрочем, ты прав — получается сильно много костылей без значительных преимуществ.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.04.06 08:53
Оценка:
Здравствуйте, Sinclair, Вы писали:

AVK>>Ты сам можешь придумать массу примеров, когда несовместимость вылезет.

S>Разве что в массивах

ref и out параметры?

S>Впрочем, ты прав — получается сильно много костылей без значительных преимуществ.


Ага.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[4]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.04.06 16:01
Оценка:
Здравствуйте, Sinclair, Вы писали:

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


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

S>Вообще-то классические кортежи вполне себе содержат имена полей. В классической реляционной алгебре, кстати, на этой одноименности много чего построено — к примеру оператор естественного соединения.

Причем тут "В классической реляционной алгебре"?
Я говорил про классическую реализацию кортежей в функциональных языках. В том же COmega кортежи были с безымянными полями вроде. И никому это не мешало. Ребята решили рацушку ввести и получили кучу несовместимостей.

VD>>Они внутри просто описываются через джененики.

S>Имхо нужно просто делать анонимный тип вот так:
S>
S>namespace System
S>{
S>    public class Tuple<T1, T2, T3>
S>    {
S>        protected T1 _f1;
S>        protected T2 _f2;
S>        public Tuple(T1 f1, T2 f2) { _f1 = f1; _f2 = f2; }
S>        public Tuple(Tuple source): this(source._f1, source._f2) {}
S>    }
S>}

В Немерле почти так и сделано. Только _f2 публичные, что естественно.

S>namespace MyCode
S>{
S>    public class MyAnonymousRecord : Tuple<string, int>
S>    {
S>        public string Name { get { return _f1; }}
S>        public int Count { get { return _f2; }}
S>    }
S>}
S>


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

S>Т.е. есть встроенный набор туплов нужной размерности, а конкретный аноним будет наследоваться от этих туплов и заниматься переименованием. При этом анонимные типы с одинаковой сигнатурой становятся совместимыми, пусть и не одинаковыми.


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

Чистых решений два:
1. Введиние анонимных типов в рантайм.
2. Использование проверенного временем подхода с безымянными полями.

Лично я не понимаю почему было не остановится на втором варинте. В конце концов никто не страдает от того, что параметры методов не указываются явно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.04.06 16:01
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Не согласен.


Значит у нас разные мнения.

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


Ты меня конечно извини, но по-моему. запутывание высасано из пальца. Я в последнее время читаю много кода с тюплами и проблем не вижу. В коде все ясно и понятно.
Более того... Не знаю виноваты ли в этом тюплы, общие характеристики языка или просто умение авторов писать внятный код, но в последнее время я много читаю исходники Немероловского компилятора и постоянно ловлю себя на мысли, что даже без коментариев я отлично понимаю, что делает код. Декларативность очень высокая. В Шарповских исходниках такого же объема я запутался бы куда быстрее. И это при том, что у Шарпа супер IDE обеспечивающая охринительную навигацию по коду.

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

Причем я не против если появиласб бы возможность определять подвиды tuple-лов с именованными членами. Но для этого действительно нужна поддержка рантайма. Это должно быть как функциональный тип и делегат. Другими словами tuple с именованными полями должен являться уточнением обычного tuple-а, как делегат является уточнением функционального типа. C# много потерял из-за отсуствия концептуальной законченности в этих вопросах.

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


AVK>От разработчиков компилятора.


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

VD>> В чем проблема-то? Пусть меняют раз надо.


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


Значит невреное решение приняли. В результате ведь в язык вводится концептуально незаконченная возможность. Это еще может боком в будущем выйти. Ведь это тот самый путь С++ который привел язык к монстроидальности.

VD>>Когда они планируют выпуск LINQ-а?


AVK>На данный момент вместе с Orcas. Т.е. либо в конце 2006, либо в начале 2007. Это релиз. Ближайший CTP должен выйти в течение месяца.


Хм. Это значит за год они не могут в рантайм изменение внести? Во, блин, дают! А чем же они там занимаются?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.04.06 16:13
Оценка: -1 :)
Здравствуйте, VladD2, Вы писали:

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


VD>Ты меня конечно извини, но по-моему. запутывание высасано из пальца.


Я тебя конечно извиню, но нет, не из пальца. Более того — объявить десяток Tuple<T1, T2, ...> можно и сейчас, и точно так же можно их спокойно использовать в LINQ.

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


ЗАДОЛБАЛ!!!

AVK>>От разработчиков компилятора.


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


А в комнату тех людей, которые решили, что серьезных изменений рантайма в Orcas и Vista не будет?

VD>Значит невреное решение приняли.


Не факт. Им в итоге деньги надо зарабатывать.

AVK>>На данный момент вместе с Orcas. Т.е. либо в конце 2006, либо в начале 2007. Это релиз. Ближайший CTP должен выйти в течение месяца.


VD>Хм. Это значит за год они не могут в рантайм изменение внести? Во, блин, дают! А чем же они там занимаются?


Спроси у них.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[6]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.04.06 22:15
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Я тебя конечно извиню, но нет, не из пальца. Более того — объявить десяток Tuple<T1, T2, ...> можно и сейчас, и точно так же можно их спокойно использовать в LINQ.


Ага. А на goto и if-ах можно и паттерн-матчинг, и хвостовую рекурсию сэмулировать. Вот толко это уже не жизнь, а издевательство над собой. А так, да. Нет проблем. На Тьюринг-полном языке можно все.

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


AVK>ЗАДОЛБАЛ!!!


Чем, простите? И почему никто не задалбывает упоминанием Шарпа? Естить пример, его и пирвожу. Был бы это С++ привел бы его. Но вот извини из языков которыми пользуюсь тюплы есть толко в одном.

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


AVK>А в комнату тех людей, которые решили, что серьезных изменений рантайма в Orcas и Vista не будет?


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

VD>>Значит невреное решение приняли.


AVK>Не факт. Им в итоге деньги надо зарабатывать.


По мне так факт. Хотя конечно каждый имеет право на лево. А вот то, что они от этого денег больше получат — то точно не факт.

AVK>Спроси у них.


Я к сожалению к ним без стука (да и со стуком) пока зайти не могу.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.04.06 06:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ага. А на goto и if-ах можно и паттерн-матчинг, и хвостовую рекурсию сэмулировать.


А при чем тут кортежи?

AVK>>ЗАДОЛБАЛ!!!


VD>Чем, простите?


немерлёй.

VD> И почему никто не задалбывает упоминанием Шарпа?


Потому что этот топик о C#.

AVK>>А в комнату тех людей, которые решили, что серьезных изменений рантайма в Orcas и Vista не будет?


VD>А это что на основе астрологических прогнозов было решено? Или на религиозной почве?


Это было решено на основании необходимости выпустить продукт в срок.

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


Для тебя. А для них важнее заработать денег (и выпустить Висту в срок).

VD> Пошли же на изменение рантайма ради концептуальной полноты нулабл-типов прямо перед релизом? Ну, а тут в чем дело?


В Висте.
... << RSDN@Home 1.2.0 alpha rev. 646 on Windows XP 5.1.2600.131072>>
AVK Blog
Re[8]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.04.06 13:06
Оценка:
Здравствуйте, AndrewVK, Вы писали:

VD>>Ага. А на goto и if-ах можно и паттерн-матчинг, и хвостовую рекурсию сэмулировать.


AVK>А при чем тут кортежи?


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

VD>> И почему никто не задалбывает упоминанием Шарпа?


AVK>Потому что этот топик о C#.


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

Вообще чем дальше тем больше C# будет сравниваться с Немерлом, так как языки во многом близки, и все развитие C# идет по пути который Немерле уже прошел.
C#, С++ или Руби на этом форуме упомянаются куда чаще. Причем в большинсве случаев противопоставляются. На то это и филосфия.

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


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

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


AVK>Для тебя.


Для языка. Ну, и для меня естественно, так как я являюсь одним из его пользователей и сторонников.

AVK> А для них важнее заработать денег (и выпустить Висту в срок).


Виста никаким боком к языку отношения не имеет. Ее и с C# 2.0 можно выпускать. Фрэймворки, как ты знашь, живут параллельно.
Да и опять же за год уж такую мелочь можно было реализовать.

VD>> Пошли же на изменение рантайма ради концептуальной полноты нулабл-типов прямо перед релизом? Ну, а тут в чем дело?


AVK>В Висте.


А мне кажетчя в другом. Ботся они чего-то или банально не видят, что решение не полноценное выходит.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Разговор с Luke Hoban
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.04.06 18:13
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>> А для них важнее заработать денег (и выпустить Висту в срок).


VD>Виста никаким боком к языку отношения не имеет.


Зато имеет отношение к новой студии. Orcas собственно и выпускается как средство разработки под Vista, а не как независимый релиз.

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


Не думаю что это мелочь.
... << RSDN@Home 1.2.0 alpha rev. 646 on Windows XP 5.1.2600.131072>>
AVK Blog
Re[10]: Разговор с Luke Hoban
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.04.06 20:02
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Зато имеет отношение к новой студии. Orcas собственно и выпускается как средство разработки под Vista, а не как независимый релиз.


Язык не должен привязываться к студиям или ОСям. Иначе это уже походит на стачу объектов к коммунистическим праздникам.

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


AVK>Не думаю что это мелочь.


Что, ввести некий кэш типов и сопоставление типов из сборки с ним — это большая задача? Даже мсил править не прийдется.

Я бы просто формировал имя в стиле __UnnamedType_имяТипСвойства1_имяТипСвойстваX, добавл бы флажок говорящий, что тип анонимный и сделал бы помену ссылки на тип при первом обращении к нему.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.