Re: Язык Nemerle
От: nikov США http://www.linkedin.com/in/nikov
Дата: 06.10.09 17:23
Оценка: 46 (1)
Здравствуйте, Владислав Юрьевич Чистяков, Вы писали:

VD> System.Byte; byte целое со знаком, 8 бит

VD> System.SByte; sbyte Беззнаковое целое, 8 бит
неправда

VD> System.Decimal; decimal Число с фиксированной точкой

тоже неправда

http://msdn.microsoft.com/en-us/library/system.decimal.aspx

A decimal number is a floating-point value

Re: Язык Nemerle
От: Аноним  
Дата: 13.02.11 21:24
Оценка:
Здравствуйте, Владислав Юрьевич Чистяков, Вы писали:

Насколько я понял из прочитанного, тип указывается после : для того, чтобы сделать всю конструкцию optional.

То есть,

def Get()
{
    "foo"
}


рассматривается при помощи выведения типов компилятором как

def Get() : string
{
    "foo"
}


а если мы хотим вернуть object, надо явно его указать:

def Get() : object
{
    "foo"
}


Зачем был выбран такой непривычный синтаксис? Только чтобы отличаться от сей? Есть ли причины, по которым такой синтаксис был невозможен?

var Get() // Используй вывод типов.
{
    "foo"
}
object Get() // Не используй вывод типов.
{
    "foo"
}
Re[2]: Язык Nemerle
От: catbert  
Дата: 13.02.11 21:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Зачем был выбран такой непривычный синтаксис?


Пользователям Паскаля и его производных, Визуал Бейсика, Окамла такой синтаксис вполне привычен. Более того, сейчас он доступен (а иногда и обязателен) для пользователей С++.

С какой стороны писать тип — не такая уж и большая разница. Поверьте недавно "обращенному" — переучиться писать тип справа совсем несложно

Кстати, никто не мешает создать макросы var и obj (чтобы не было проблем с неоднозначностью), которые работают именно так, как вы описали.
Re[2]: Язык Nemerle
От: hardcase Пират http://nemerle.org
Дата: 13.02.11 21:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>а если мы хотим вернуть object, надо явно его указать:


А>
А>def Get() : object
А>{
А>    "foo"
А>}
А>


А можно и вот так:

def Get()
{
    "foo" : object // уточняем тип выражения :)
}
/* иЗвиНите зА неРовнЫй поЧерК */
Re[2]: Язык Nemerle
От: hardcase Пират http://nemerle.org
Дата: 13.02.11 22:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Зачем был выбран такой непривычный синтаксис? Только чтобы отличаться от сей? Есть ли причины, по которым такой синтаксис был невозможен?


"Сишный" синтаксис уточнения типов (тип перед выражением без разделителя) неоднозначен.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[3]: Язык Nemerle
От: Аноним  
Дата: 13.02.11 22:08
Оценка:
Здравствуйте, catbert, Вы писали:

А>>Зачем был выбран такой непривычный синтаксис?

C>Кстати, никто не мешает создать макросы var и obj (чтобы не было проблем с неоднозначностью), которые работают именно так, как вы описали.

То есть, ответ — "ничто не мешало"? Да, или нет?

C>Пользователям Паскаля и его производных, Визуал Бейсика, Окамла такой синтаксис вполне привычен. Более того, сейчас он доступен (а иногда и обязателен) для пользователей С++.

C>С какой стороны писать тип — не такая уж и большая разница. Поверьте недавно "обращенному" — переучиться писать тип справа совсем несложно

Да, лично я тоже могу писать тип слева, справа, снизу, сбоку, и с разбега, и с прискоку. Но си-подобный синтаксис это промышленный стандарт для масс — как недотнетчиков, так и дотнетчиков. Поэтому, одно дело, если такая запись принципиально необходима для каких-то механизмов языка, о которых из вводной статьи не узнаешь, и совсем другое, если это произвольное решение по причине любви к алголоидам.
Re[3]: Язык Nemerle
От: Аноним  
Дата: 13.02.11 22:14
Оценка:
Здравствуйте, hardcase, Вы писали:

А>>Зачем был выбран такой непривычный синтаксис? Только чтобы отличаться от сей? Есть ли причины, по которым такой синтаксис был невозможен?

H>"Сишный" синтаксис уточнения типов (тип перед выражением без разделителя) неоднозначен.

Пример неоднозначности?
Re[4]: Язык Nemerle
От: catbert  
Дата: 13.02.11 22:46
Оценка:
Здравствуйте, Аноним, Вы писали:

А>То есть, ответ — "ничто не мешало"? Да, или нет?


Вот это я не знаю. Наверное одним лишь полякам известно.

А>Но си-подобный синтаксис это промышленный стандарт для масс — как недотнетчиков, так и дотнетчиков.


Мне кажется, "стандартность" си-подобного синтаксиса преувеличена. Конечно, большинство кода исторически написано именно в этом стиле, но если посмотреть на тренды в программостроении, то все уже не так и однозначно: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. Лишь чуть больше 50% рейтинга достались языкам, в которых тип пишется слева. То есть, если вы случайно найдете код в гугле или другом поисковике, вероятность того, что он будет c-подобным, такая же, как и вероятность того, что он будет алголоподобным или вообще "другим".

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


Мне кажется, так сделано для того, чтобы отучить программистов писать тип переменной. Если будешь продолжать писать string s там, где явное указание типа не нужно, все радости вывода типов так и останутся потенциальными.

Описание типа после имени переменной чуточку упрощает парсинг, но я не думаю, что это было настолько важно для авторов языка.
Re[5]: Язык Nemerle
От: Аноним  
Дата: 13.02.11 23:11
Оценка: -1
Здравствуйте, catbert, Вы писали:

C>Мне кажется, так сделано для того, чтобы отучить программистов писать тип переменной. Если будешь продолжать писать string s там, где явное указание типа не нужно, все радости вывода типов так и останутся потенциальными.


То-то они отучились! Сидят себе на шарпе и в ус не дуют. Если хочешь популярности, не надо навязывать непривычное, если за этим не стоит необходимости. А стоит или нет, я и пытаюсь выяснить у знатоков. И сделать выводы.
Re[6]: Язык Nemerle
От: Rival Таиланд
Дата: 14.02.11 01:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Если хочешь популярности, не надо навязывать непривычное, если за этим не стоит необходимости.

С таким настроем все языки должны быть похожи на С, чтобы не дай бог чем нибудь не напугать.
По аналогии: "Если хочешь популярности пой как Гага", — слышь, певичка оперная!

Кстати, справа реально удобнее. Это точно не та вещь на которую стоит обращать внимание.
«История жизни – это, по существу, развитие сознания, которое завуалировано морфологией.» Пьер Тейяр де Шарден
Re[4]: Язык Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.02.11 03:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>Зачем был выбран такой непривычный синтаксис? Только чтобы отличаться от сей? Есть ли причины, по которым такой синтаксис был невозможен?

H>>"Сишный" синтаксис уточнения типов (тип перед выражением без разделителя) неоднозначен.

А>Пример неоднозначности?

x? y : z

PEG с его предикатами это разрулить позволяет, а вот LL(k)-автоматы нет. Приходится приседать по полной.

Но это мелочи по сравнению с приведением типов в сишном стиле:
(x)y

Вот там эвристика крутая получается. Только PEG с его предикатами ее и может разрулить (ну, и рукописный парсер, конечно же).

Еще в шарпе крутая неоднозначность с параметрами типов получается. Вот что это:
A<B>(C)X

?

ЗЫ

Скоро в наших руках появится чудо-технология Peg-Pratt-движок макросов. Он сможет щелкать любые неоднозначности как семечки. Если хватит сил постараемся ко всему прочему сделать фронтэнд к C#. Причем так чтобы он смог использовать расширяемый синтаксис (короче, с блэкджеком и шлюхами).

Но после некоторого привыкания немерловый синтаксис кажется удобнее (по-моему).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Язык Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.02.11 03:58
Оценка:
Здравствуйте, Аноним, Вы писали:

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


Скажем так. Она не принципиально необходима, но она полезна. Более стройна что ли. Плюс с ней было проще разбираться парсеру, а он должен быть расширяемым.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Язык Nemerle
От: catbert  
Дата: 14.02.11 09:04
Оценка: +2
Здравствуйте, Аноним, Вы писали:

А>Если хочешь популярности, не надо навязывать непривычное, если за этим не стоит необходимости.


Это вы компании Эппл и Стиву Джобсу лично скажите
Re[5]: Язык Nemerle
От: Аноним  
Дата: 14.02.11 14:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Скоро в наших руках появится чудо-технология Peg-Pratt-движок макросов. Он сможет щелкать любые неоднозначности как семечки. Если хватит сил постараемся ко всему прочему сделать фронтэнд к C#. Причем так чтобы он смог использовать расширяемый синтаксис (короче, с блэкджеком и шлюхами).


То есть, были чисто технологические (не синтаксические) трудности? Сейчас они решены, и, при желании, можно было бы перейти на сишный тайпинг?

VD>Но после некоторого привыкания немерловый синтаксис кажется удобнее (по-моему).


Мне все равно: после некоторого привыкания я вообще как угодно могу. Но уговорить других не могу.
Re[6]: Язык Nemerle
От: Ziaw Россия  
Дата: 14.02.11 14:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>То есть, были чисто технологические (не синтаксические) трудности? Сейчас они решены, и, при желании, можно было бы перейти на сишный тайпинг?


В N2 есть надежда сделать C# не просто компилируемым языком, а языком со всеми возможностями Nemerle. Но никто пока эту задачу не прорабатывал.
Re[6]: Язык Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.02.11 14:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>То есть, были чисто технологические (не синтаксические) трудности? Сейчас они решены, и, при желании, можно было бы перейти на сишный тайпинг?


Были и иделогические причины. Но они не так существенны.

VD>>Но после некоторого привыкания немерловый синтаксис кажется удобнее (по-моему).


А>Мне все равно: после некоторого привыкания я вообще как угодно могу. Но уговорить других не могу.


Согласен.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Язык Nemerle
От: Аноним  
Дата: 27.06.14 14:46
Оценка:
Прекрасная статья, изящный и доступный слог
зацепила меня
я прям-таки влюбляюсь в Nemerle

ведь столько лет прошло с зарождения nemerle (и где же я был раньше!) а он все на плаву!!!
мой низкий поклон, успехов вам, ребята и долгой-вечной жизни этому прекрасному языку!!!
Влад Чистяков, спасибо тебе за эти статьи и за твой вклад в развитие этого изящного и элегантного языка!!!
Удачи тебе Влад и всей команде!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.