Re[7]: О разнице в подходах.
От: Cyberax Марс  
Дата: 04.06.06 17:24
Оценка:
VladD2 wrote:
> Дыу Nemerle — это самый богатый язык на сегодняшний день. И достигнуто
> это не в последнюю очередь (это если быть оооОочень скромным) за счет
> тех самых макросов.
Самый богатый язык — это Lisp. В нем есть все.

Где там у нас в Nemerle динамические вызовы, например?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[8]: О разнице в подходах.
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.06.06 20:50
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Самый богатый язык — это Lisp. В нем есть все.


... кроме: синтаксиса, статической типизации, привычного ООП...

Но Лисп можно уважать за концептуальную целостность пронесенную аж через 5 десятков лет.

C>Где там у нас в Nemerle динамические вызовы, например?


Мне они не сильно нужны, но кто отменял System.Reflection? Что? Неудобно? А должно? Ну, тогда макросы тебе в зубы.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: О разнице в подходах.
От: ArhAngelVezel Россия  
Дата: 05.06.06 06:49
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Вот какой язык ты сам считашь богатым (т.е. подходящим для написания твоих утилит)?


Для написания тех утилит, я бы счас смотрел в сторону C# 3.0 с его LINK'ами. В немирле такое достигается, насколько я понимаю, за счет предварительного написания макросов, что как понимаешь неприемлемо для китайских способов варения лапши. Ну да я понимаю, что в нем отсутствуют макросредства, но... Если макросы, как я попытался показать, можно использовать только в тепличных условиях, чем функционально это различно от стандартного ооп подхода, кроме того, что с макросами архитектор может допускать больше ошибок и первоначально затраченное время снижено?
Re[9]: О разнице в подходах.
От: Cyberax Марс  
Дата: 05.06.06 08:06
Оценка: -2
VladD2 wrote:
> C>Самый богатый язык — это Lisp. В нем есть все.
> ... кроме: синтаксиса, статической типизации, привычного ООП...
^^Logo ^^^^Есть, при желании ^^Тоже есть
В нем как в Немерле — берешь в зубы AST и делаешь с ним что угодно.

> C>Где там у нас в Nemerle динамические вызовы, например?

> Мне они не сильно нужны, но кто отменял System.Reflection?
ТЕБЕ не нужны. А кому-то могут понадобится.

> Что? Неудобно? А должно? Ну, тогда макросы тебе в зубы.

Нафиг. Чем меньше макросов — тем лучше. И уж тем более нафиг не нужны
макросы, которые могут коннектиться к SQL во время компиляции.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[8]: О разнице в подходах.
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.06.06 15:14
Оценка: +1
Здравствуйте, ArhAngelVezel, Вы писали:

VD>>Вот какой язык ты сам считашь богатым (т.е. подходящим для написания твоих утилит)?


AAV>Для написания тех утилит, я бы счас смотрел в сторону C# 3.0 с его LINK'ами. В немирле такое достигается, насколько я понимаю, за счет предварительного написания макросов,


Не правильно понимашь. Немерле исходно, т.е. в поставке и без единого самопального макроса в разы более богатый язык чем еще не вышедший C# 3.0. Дотсигается это от части действительно макросами, а от части намного более грамотным дизайном языка. Собственно у немерловцев даже где-то лозунг висит Nemerle сегодня это С3 4.0.

AAV> что как понимаешь неприемлемо для китайских способов варения лапши.


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

AAV> Ну да я понимаю, что в нем отсутствуют макросредства, но... Если макросы, как я попытался показать, можно использовать только в тепличных условиях,


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

AAV> чем функционально это различно от стандартного ооп подхода, кроме того, что с макросами архитектор может допускать больше ошибок и первоначально затраченное время снижено?


Тем что макросами ты можешь заточить инструмент под собственные нужды. Тебе не нужно ждать милости от МС. Ты можешь сам сделать унжные тебе вещи.

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

Например, в Немереле есть очень удобная ведь оператор match. В простейших случаях он похож на несклько причесанный оператор switch из Шарпа:
match (x)
{
    | "ля-ля-ля" => Concole.WriteLine("тополя");
    | "тополя" => Concole.WriteLine("ля-ля-ля");
}

но на самом деле это куда более сложная вещь позволяющая оперировать сложными образцами. Фактически во многих случаях процесс программирование можно превратить из запутанного српашивания что где и почем и выполнения неких действий к деклрации "если => то"... Причем вместо если может быть очень хитрый образец.
Даже банальный foreach в Немерле многократно мощьнее. Например, если у нас в коллекции несколько разнотипных объктов, то мы можем отфильтровать объекты нужного типов:
foreach (method is IMethod in memebers)
    method.ЧтоТоДелаемСМетдом();

Или даже круче, распознать разные подтипы и сделать доплнительные проверки:
foreach (_ in memebers)
{
    | method is IMethod                                  => method.ЧтоТоДелаемСМетдом();
    | property is IProperty whwre property.Name == "Foo" => property.ЧтоТоДелаемСоСвойствомFoo();
    | property is IProperty                              => property.ЧтоТоДелаемСоСвойством();
}

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

Собственно все это уже есть в языке — является частью его описания. Реализовано это макросами, но программист не в силах отличить макрос от строенной в язык возможности. Зато он может изменить эти возможности если ему очень захочется.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.