Re[4]: Nemerle explicit interface
От: _nn_ www.nemerleweb.com
Дата: 22.03.10 14:56
Оценка: +1
Здравствуйте, nikov, Вы писали:

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


__>>Все же похоже что есть баг или это by-design ?


N>А что говорит спецификация Nemerle по этому поводу? Ну, та самая, которую не нашёл Хейлсберг.


Вопрос с подколом

На самом деле, да нужна спецификация.
Т.е. если кто-то может писать сейчас, это было бы круто.

Все же приоритетней , как мне кажется , это довести интеграцию и компилятор до ума, чтобы дать возможность большому количеству людей попрользоваться языком.
А далее, в рамках Nemerle 2 уже создать спецификацию и все необходимое для Хейлсберга .
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Nemerle explicit interface
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.03.10 14:59
Оценка: :)
Здравствуйте, _nn_, Вы писали:

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

__>А далее, в рамках Nemerle 2 уже создать спецификацию и все необходимое для Хейлсберга .

Ну конечно, сначала дом построим, чтобы было где жить, а уж потом план начертим.
Re[7]: Nemerle explicit interface
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.03.10 17:19
Оценка: +1
Здравствуйте, VladD2, Вы писали:

N>>Ну конечно, сначала дом построим, чтобы было где жить, а уж потом план начертим.


VD>Лучше уж так чем как с Шарпом (где и дом кривой, и плат).


Смотря для каких целей. Неужели ты думаешь, что тот факт, что в мире .NET в продакшене повсеместно используются C# и VB.NET (а в разработку инструментов для работы с ними вкладываются десятки миллионов долларов ежегодно), а Nemerle используется только на нескольких проектах — это только следствие тупости и недальновидности менеджмента, принимающего такое решение?
Nemerle explicit interface
От: _nn_ www.nemerleweb.com
Дата: 22.03.10 13:03
Оценка:
C#
class A<T> : IEnumerable, IEnumerable<T>
{
    IEnumerator<T> IEnumerable<T>.GetEnumerator()
    {
        return null;
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return null;
    }
}


Nemerle
class A[T] : IEnumerable, IEnumerable[T]
{
    public GetEnumerator() : IEnumerator[T]
      implements IEnumerable[T].GetEnumerator
    {
        null;
    }

    public GetEnumerator() : IEnumerator
      implements IEnumerable.GetEnumerator
    {
        null;
    }
}


Error: attempted return type overload on method A.GetEnumerator() : System.Collections.IEnumerator and method A.GetEnumerator() : System.Collections.Generic.IEnumerator[T]
Error: type name 'IEnumerable' is ambiguous, it could be:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll(0,0):Warning: hint: first possible type: 'System.Collections.Generic.IEnumerable.[T]'
C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll(0,0):Warning: hint: second possible type: 'System.Collections.IEnumerable'


Вторая попытка
class A[T] : System.Collections.IEnumerable,
             System.Collections.Generic.IEnumerable[T]
{
    public GetEnumerator() : System.Collections.Generic.IEnumerator[T]
      implements System.Collections.Generic.IEnumerable[T].GetEnumerator
    {
        null;
    }

    public GetEnumerator() : System.Collections.IEnumerator
      implements System.Collections.IEnumerable.GetEnumerator
    {
        null;
    }
}



Error: attempted return type overload on method A.GetEnumerator() : System.Collections.IEnumerator and method A.GetEnumerator() : System.Collections.Generic.IEnumerator[T]


Если оставить только IEnumerable или IEnumerable[T] то работает.
Как заставить работать ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Nemerle explicit interface
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.03.10 14:12
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Как заставить работать ?


Насколько я помню, Nemerle позволяет дать любое имя методу, реализующему интерфейсный метод. Таким образом, надо просто дать им разные имена.
Re[2]: Nemerle explicit interface
От: _nn_ www.nemerleweb.com
Дата: 22.03.10 14:30
Оценка:
Здравствуйте, nikov, Вы писали:

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


__>>Как заставить работать ?


N>Насколько я помню, Nemerle позволяет дать любое имя методу, реализующему интерфейсный метод. Таким образом, надо просто дать им разные имена.


Работает.
class A[T] : System.Collections.IEnumerable,
             System.Collections.Generic.IEnumerable[T]
{
    public GetEnumeratorGeneric() : System.Collections.Generic.IEnumerator[T]
      implements System.Collections.Generic.IEnumerable[T].GetEnumerator
    {
        null;
    }

    public GetEnumerator() : System.Collections.IEnumerator
      implements System.Collections.IEnumerable.GetEnumerator
    {
        null;
    }
}


Все же похоже что есть баг или это by-design ?

А так уже нет:
class A[T] : IEnumerable,
             IEnumerable[T]
{
    public GetEnumeratorGeneric() : IEnumerator[T]
      implements IEnumerable[T].GetEnumerator
    {
        null;
    }

    public GetEnumerator() : IEnumerator
      implements IEnumerable.GetEnumerator
    {
        null;
    }
}


Error: type name 'IEnumerable' is ambiguous, it could be:


C# без проблем понимает, а Nemerle никак. Баг или by-design ?

P.S.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: Nemerle explicit interface
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.03.10 14:34
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Все же похоже что есть баг или это by-design ?


А что говорит спецификация Nemerle по этому поводу? Ну, та самая, которую не нашёл Хейлсберг.
Re[3]: Nemerle explicit interface
От: hardcase Пират http://nemerle.org
Дата: 22.03.10 16:06
Оценка:
Здравствуйте, _nn_, Вы писали:

Ну вообще IEnumerable уже реализуется IEnumerable[T]...

А проблема никак не связана с отсутствием поддержки ковариантных интерфейсов (невозможностью реализовать IEnumerable[int] и IEnumerable[string] в одном классе)?
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Nemerle explicit interface
От: _nn_ www.nemerleweb.com
Дата: 22.03.10 16:11
Оценка:
Здравствуйте, hardcase, Вы писали:

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


H>Ну вообще IEnumerable уже реализуется IEnumerable[T]...

Это как реализуюется ?
class A[T] : System.Collections.IEnumerable,
             System.Collections.Generic.IEnumerable[T]
{
  GetEnumerator() : System.Collections.Generic.IEnumerator[T]
    implements System.Collections.Generic.IEnumerable[T].GetEnumerator
  {
    null;
  }
}


Error: unimplemented interface method System.Collections.IEnumerable.GetEnumerator() : System.Collections.IEnumerator (in A type)


H>А проблема никак не связана с отсутствием поддержки ковариантных интерфейсов (невозможностью реализовать IEnumerable[int] и IEnumerable[string] в одном классе)?

Я не силен в компиляторе. Может и связанна.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 16:30
Оценка:
Здравствуйте, _nn_, Вы писали:

using System.Collections.Generic;

class A[T] : IEnumerable[T]
{
  public GetEnumerator() : System.Collections.Generic.IEnumerator[T]
    implements System.Collections.Generic.IEnumerable[T].GetEnumerator
  {
      null;
  }

  public GetEnumerator1() : System.Collections.IEnumerator
    implements System.Collections.IEnumerable.GetEnumerator
  {
      null;
  }
}
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Nemerle explicit interface
От: Воронков Василий Россия  
Дата: 22.03.10 16:33
Оценка:
Здравствуйте, nikov, Вы писали:

__>>А далее, в рамках Nemerle 2 уже создать спецификацию и все необходимое для Хейлсберга .

N>Ну конечно, сначала дом построим, чтобы было где жить, а уж потом план начертим.

Справедливости ради, много вполне популярных языков вообще десятилетиями живут без спецификаций.
Re[7]: Nemerle explicit interface
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.03.10 16:34
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

__>>>А далее, в рамках Nemerle 2 уже создать спецификацию и все необходимое для Хейлсберга .

N>>Ну конечно, сначала дом построим, чтобы было где жить, а уж потом план начертим.

ВВ>Справедливости ради, много вполне популярных языков вообще десятилетиями живут без спецификаций.


Например?
Re[8]: Nemerle explicit interface
От: Воронков Василий Россия  
Дата: 22.03.10 16:52
Оценка:
Здравствуйте, nikov, Вы писали:

ВВ>>Справедливости ради, много вполне популярных языков вообще десятилетиями живут без спецификаций.

N>Например?

Ну Руби, например. Или Питон.
Re[9]: Nemerle explicit interface
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.03.10 16:58
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>>>Справедливости ради, много вполне популярных языков вообще десятилетиями живут без спецификаций.

N>>Например?

ВВ>Ну Руби, например. Или Питон.


Ruby
Python
Re[10]: Nemerle explicit interface
От: Воронков Василий Россия  
Дата: 22.03.10 17:01
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ruby

N>Python

Ну а когда они появились (причем еще не факт, что появились) и сколько лет эти языки жили без спецификаций?
Потом ссылка, которую ты привел на Питон, это не спецификация, а Language Reference — все же вещи не совсем чтобы одинаковые.
Re[6]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:09
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ну конечно, сначала дом построим, чтобы было где жить, а уж потом план начертим.


Лучше уж так чем как с Шарпом (где и дом кривой, и плат).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:15
Оценка:
Здравствуйте, _nn_, Вы писали:

__>C# без проблем понимает, а Nemerle никак. Баг или by-design ?


Это бай-дизайн, но в дизайне баг.

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

Если докрутить анализ добавив в него эвристику "Если есть два типа-кандидата среди которых есть кандидат без параметров типа, то выбирать его для выражений в которых не указаны параметры типов.", то подобный код будет компилироваться.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:16
Оценка:
Здравствуйте, VladD2, Вы писали:

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


В общем, напиши фича-реквест. Будет время, реализую.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:17
Оценка:
Здравствуйте, nikov, Вы писали:

N>А что говорит спецификация Nemerle по этому поводу? Ну, та самая, которую не нашёл Хейлсберг.


Ты лучше бы не подкалывал, а помог ее написать. На все вопросы (если сам не сможешь ответить) я тебе помогу ответить.
Ты с такой задачей справишся наилучшим образом. Я не столь педантичен, так что точно накосячу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:20
Оценка:
Здравствуйте, _nn_, Вы писали:

__>А далее, в рамках Nemerle 2 уже создать спецификацию и все необходимое для Хейлсберга .


А нафиг нам тогда Хейлсберг то будет нужен?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:28
Оценка:
Здравствуйте, nikov, Вы писали:

N>Python


Ну, в некотором виде Reference Manual у Nemerle тоже нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Nemerle explicit interface
От: nikov США http://www.linkedin.com/in/nikov
Дата: 22.03.10 17:29
Оценка:
Здравствуйте, VladD2, Вы писали:

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

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

Немерле мне нравится, но всё-таки, это не тот язык, ради развития которого я был бы готов прикладывать значительные усилия только из энтузиазма.
Re[8]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:44
Оценка:
Здравствуйте, nikov, Вы писали:

N>Смотря для каких целей. Неужели ты думаешь, что тот факт, что в мире .NET в продакшене повсеместно используются C# и VB.NET (а в разработку инструментов для работы с ними вкладываются десятки миллионов долларов ежегодно), а Nemerle используется только на нескольких проектах — это только следствие тупости и недальновидности менеджмента, принимающего такое решение?


Нет конечно. Я думаю, что люди жрут колбасу из сои, мороженное из сухого молока и масла, пользуются шампунями от которых кожа покрывается красными пятнами и Завераксами содержащими то же действующее вещество что и в Ацикловире (ацикловир) но стоящем в 10 раз дороже потому что они умные и делают свой выбор обдуманно не взирая на терробаксы вкладываемые в рекламу.

Если серьезно, то это вопрос многофакторный. C# живет за счет: маркетинга MS, малой осведомленности людей, боязни людей использовать что-то не сделанное именитым производителем и за счет того, что MS таки вкладывает миллионы долларов (а то и больше) ежегодно в инфраструктуру вокруг C#-а, а в Nemerle время урываемое ото сна горсткой людей.

И у меня нед ни тени сомнения, что если бы в MS решили поддержать Nemerle, то дни C# были бы сочтены (даже если его финансирование, при этом, увеличить в три раза).

Вот только именно по этому в MS никогда не поддержат Nemerle. Слишком много именитых людей останется не удел.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Nemerle explicit interface
От: Воронков Василий Россия  
Дата: 22.03.10 17:48
Оценка:
Здравствуйте, nikov, Вы писали:

N>Немерле мне нравится, но всё-таки, это не тот язык, ради развития которого я был бы готов прикладывать значительные усилия только из энтузиазма.


Интересно, а есть язык, в который стал бы?
Re[6]: Nemerle explicit interface
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.03.10 17:48
Оценка:
Здравствуйте, nikov, Вы писали:

N>Немерле мне нравится, но всё-таки, это не тот язык, ради развития которого я был бы готов прикладывать значительные усилия только из энтузиазма.


А C# это тот язык? Какой смысл в ковырянии потрохов его спецификации?

Собственно тебя никто не просит заниматься разработкой Nemerle, но вместо того чтобы с завидной переодичностью заходить на сайт и тюкать отсутствием спецификации ты бы ведь мог бы просто взять иногда добавить пару строчек в немерловой вики?

ЗЫ

Интересно, а что нужно чтобы язык стал "тем"? Не уж то патронаж MS?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Nemerle explicit interface
От: Воронков Василий Россия  
Дата: 22.03.10 17:54
Оценка:
Здравствуйте, nikov, Вы писали:

N>Смотря для каких целей. Неужели ты думаешь, что тот факт, что в мире .NET в продакшене повсеместно используются C# и VB.NET (а в разработку инструментов для работы с ними вкладываются десятки миллионов долларов ежегодно), а Nemerle используется только на нескольких проектах — это только следствие тупости и недальновидности менеджмента, принимающего такое решение?


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

Или взять для контраста PHP какой-нибудь (а у него, кстати, есть спецификация? никогда не интересовался). Язык, который вообще развивался хаотично, от "шаблонизатора" до class based OOP. Вообще хоть какую-то концепцию в нем проследить сложно. Но ведь пишут на нем?
Re[9]: Nemerle explicit interface
От: hardcase Пират http://nemerle.org
Дата: 22.03.10 19:54
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

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


ВВ>Или взять для контраста PHP какой-нибудь (а у него, кстати, есть спецификация? никогда не интересовался). Язык, который вообще развивался хаотично, от "шаблонизатора" до class based OOP. Вообще хоть какую-то концепцию в нем проследить сложно. Но ведь пишут на нем?


Тут скорее вопрос вхождения в профессию а также привычка привитая "с пеленок".
Если человека изначально обучать программированию на функциональном языке, то понятное дело, Хаскель ему будет удобен и понятен. В подавляющем же большинстве случаев у нас с чего начинают обучать? То-то же.
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.