Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.09.09 17:18
Оценка: 35 (6) -1
Собственно в развитии вот этого обсуждения
Автор: VladD2
Дата: 30.07.09
я таки взялся за написание развернутого введения в Nemerle.
Вот что из этого вышло (первая часть):
http://www.rsdn.ru/article/Nemerle/TheNemerleLanguage.xml
Автор(ы): Владислав Юрьевич Чистяков
Дата: 24.09.2009
Эта статья открывает цикл статей, посвященных обучению языку программирования Nemerle. Имеющиеся статьи об этом языке предполагают, что программист хорошо знаком с Microsoft .NET Framework и языком программирования C#. Данный же цикл статей, напротив, рассчитан на людей, не знакомых ни с тем, ни с другим, и может быть даже применен для изучения программирования как такового. Новичкам в программировании может потребоваться помощь людей, уже знающих программирование.


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

Небольшое пояснение. Я принципиально старался построить изложение так чтобы не разжевывать тонкие моменты и не вдаваться в подробности, а сосредоточиться на том, чтобы как можно скорее позволить человеку писать пусть и простые но полезные программы. По этому просьба не высказать претензии к поверхности изложения. Это концептуальное решение, а не просчет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Статья "Введение в Nemerle" - по критикуйте
От: WolfHound  
Дата: 24.09.09 20:03
Оценка: 42 (1)
Здравствуйте, VladD2, Вы писали:

Кстати, в чем я искренне убежден, так это в том, что хороший программист должен знать не менее 3 языков программирования. Так что если перед вами стоит выбор, какой язык изучать, то изучите любой, а потом изучите еще парочку . Причем желательно, чтобы языки максимально отличались друг от друга. Я бы посоветовал познакомиться со следующими языками: Nemerle, Haskell, C++, Prolog, Erlang и Ruby. После этого все остальные языки покажутся вам диалектами оных.

Как минимум refal(весь язык это одно сплошное сравнение с образцом), forth(форте на программист старый он), agda2(зависимые типы) и scheme(continuation) не покажутся.
А я еще про совсем экзотику вспоминать не начал.

9. Nemerle полностью совместим с C# и VB на уровне библиотек. Все компоненты и библиотеки, доступные в .Net, можно использовать из Nemerle. Более того, любую библиотеку Nemerle можно использовать из C# или VB без переделок и каких-то мучений, как это часто бывает с языками, адаптируемыми к платформе, а не разрабатываемыми для нее.

Выделенное не правда.
Если в публичном контракте торчат типы данных специфичные для немерле то в C# будет то еще мучение.
А макры в C# вообще ни каким боком не пролезут.

8. Наличие интеллектуальной IDE (модуля расширения для Microsoft Visual Studio). Поддержка IDE позволяет резко упростить процесс написания и чтения (понимания) кода.

14. Для Nemerle имеется поддержка Microsoft Visual Studio (интегрированной среды разработки), которая очень сильно облегчает использование языка, что особенно актуально для новичков.

Что-то тут лишнее.

Чтобы можно было использовать одинаковые имена и при этом не происходило путаницы, были придуманы пространства имен и модули (точнее типы, но об этом позже).

Функции могут объявляться только в типах (таких, как модуль) и внутри других функций.

Кто на ком стоял?
Еслиб я не знал о чем разговор то

1 < 2 => true1 < 1 => false2 < 1 => false

пробелов не хватает.
А еще лучше засунуть эти выражения в разные столбцы таблицы.

Причем в метаинформации программы данное имя будет храниться так, как будто у него нет префикса «@».

Нужно пояснить что такое метаинформация.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.09.09 20:14
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


WH>

WH>Кстати, в чем я искренне убежден, так это в том, что хороший программист должен знать не менее 3 языков программирования. Так что если перед вами стоит выбор, какой язык изучать, то изучите любой, а потом изучите еще парочку . Причем желательно, чтобы языки максимально отличались друг от друга. Я бы посоветовал познакомиться со следующими языками: Nemerle, Haskell, C++, Prolog, Erlang и Ruby. После этого все остальные языки покажутся вам диалектами оных.

WH>Как минимум refal(весь язык это одно сплошное сравнение с образцом), forth(форте на программист старый он), agda2(зависимые типы) и scheme(continuation) не покажутся.
WH>А я еще про совсем экзотику вспоминать не начал.

На мой взгляд все перечисленное экзотика. К тому же концепции перечисленные тобой как раз намного проще освоить, если предварительно изучить Немерле. А так многие языки имеют уникальные концепции. Тот же хаскель имеет классы типов. Эрланг процессы. Ну, и т.п. Важно что люди не будут учить их скопом. Им достаточно будет понять именно отдельные (весьма не сложные по отдельности) концепции.
В прочем, утверждение можно смягчить заменив "все" на большую часть.

WH>

WH>9. Nemerle полностью совместим с C# и VB на уровне библиотек. Все компоненты и библиотеки, доступные в .Net, можно использовать из Nemerle. Более того, любую библиотеку Nemerle можно использовать из C# или VB без переделок и каких-то мучений, как это часто бывает с языками, адаптируемыми к платформе, а не разрабатываемыми для нее.

WH>Выделенное не правда.
WH>Если в публичном контракте торчат типы данных специфичные для немерле то в C# будет то еще мучение.
WH>А макры в C# вообще ни каким боком не пролезут.

Согласен. Надо переформулировать иначе. Что-то типа "Весьма не сложно создавать библиотеки которые будут выглядить как родные в языках ...".

WH>

WH>8. Наличие интеллектуальной IDE (модуля расширения для Microsoft Visual Studio). Поддержка IDE позволяет резко упростить процесс написания и чтения (понимания) кода.

WH>14. Для Nemerle имеется поддержка Microsoft Visual Studio (интегрированной среды разработки), которая очень сильно облегчает использование языка, что особенно актуально для новичков.

WH>Что-то тут лишнее.

+1 Сам заметил, но было уже поздно.

WH>

WH>Чтобы можно было использовать одинаковые имена и при этом не происходило путаницы, были придуманы пространства имен и модули (точнее типы, но об этом позже).

WH>Функции могут объявляться только в типах (таких, как модуль) и внутри других функций.

WH>Кто на ком стоял?
WH>Еслиб я не знал о чем разговор то

А вот тут я не понял, что ты не понял. Как еще это можно объяснить? Да еще и людям не имевшим к этому никакого отношения...

WH>

WH>1 < 2 => true1 < 1 => false2 < 1 => false

WH>пробелов не хватает.
WH>А еще лучше засунуть эти выражения в разные столбцы таблицы.

Уже так и сделал. Просто пока новую версию не залили. Это проблемы нашего обработчика статей. Он попросту убивает концы строк.

WH>

WH>Причем в метаинформации программы данное имя будет храниться так, как будто у него нет префикса «@».

WH>Нужно пояснить что такое метаинформация.

ОК. Сделаем ссылку.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Статья "Введение в Nemerle" - по критикуйте
От: Рысцов Денис  
Дата: 24.09.09 20:17
Оценка: 1 (1)
Мне понравилось, но есть одно замечание в статье ни разу не упоминается ООП, хотя есть даже примеры макросов, локальных функций и pattern matching'а. У человека, который впервые читает про язык может сложиться впечатление, что Nemerle функциональный язык с поддержкой макросов — другой про сравнению с C# и Java, как, например, F#. И поэтому у него может возникнуть вопрос, зачем ему отвлекаться на язык, который не будет иметь ничего общего с тем, с чем ему придется иметь дело на работе. Я бы, наверное, подправил 16 причин, написав, что Nemerle такой же язык как C# и Java, в том смысле, что он так же поддерживает ООП, как и они.
Re[2]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.09.09 20:27
Оценка:
Здравствуйте, Рысцов Денис, Вы писали:

РД>Мне понравилось, но есть одно замечание в статье ни разу не упоминается ООП, хотя есть даже примеры макросов, локальных функций и pattern matching'а.


Это не совсем так. В самом начале сказано:

Язык Nemerle задумывался как язык программирования высокого уровня, поддерживающий объектно-ориентированное программирование, функциональное программирование и метапрограммирование.


В прочем, согласен, что пропустить не сложно.

РД> У человека, который впервые читает про язык может сложиться впечатление, что Nemerle функциональный язык с поддержкой макросов — другой про сравнению с C# и Java, как, например, F#.


Дык в F# с ООП тоже все в порядке .
А с впечатлением не ясно, что делаеть. Давать ООП на начальной стадии обучения, на мой взгляд, неправильно.
Да и говорить об ООП можно только тем кто уже понимает это.
Возможно нужно сделать врезку или еще как-то успокоить тех кто знает об ООП и может посчитать, что язык его поросту не содержит.
Тут как раз мне требуется "помощь зала".

РД> И поэтому у него может возникнуть вопрос, зачем ему отвлекаться на язык, который не будет иметь ничего общего с тем, с чем ему придется иметь дело на работе. Я бы, наверное, подправил 16 причин, написав, что Nemerle такой же язык как C# и Java, в том смысле, что он так же поддерживает ООП, как и они.


Это можно. Но в самом начале ведь и так сказано:

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

Тут конечно про ООП ни слова, но как раз про похожесть на C# сказано почти то что ты предлагаешь.
Ладно, подумаем, что можно добавить про ООП в "16 причин".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Статья "Введение в Nemerle" - по критикуйте
От: Pavel Dvorkin Россия  
Дата: 25.09.09 02:42
Оценка:
Здравствуйте, VladD2, Вы писали:

Дочитал более чем до середины (увы, ухожу на лекцию) и так и не понял одно

def fahrenheitToCelsius(fahrenheit)
{
5.0 / 9 * (fahrenheit — 32)
}

Далее идет предупреждение, которое объясняет, куда девался return. Это все хорошо, но что будет если внутри этой fahrenheitToCelsius будет 2 или более выражения ? Или так вообще нельзя ? ИМХО об этом следовало бы написать тут же. Вот это меня не устраивает

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


Дойдем-то дойдем, а пока что я не понимаю
With best regards
Pavel Dvorkin
Re: Статья "Введение в Nemerle" - по критикуйте
От: Кэр  
Дата: 25.09.09 21:47
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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


Если мы говорим о простоте. И об уровне "для начинающих", то вот этот макрос:

ьacro @&& (e1, e2) 
{
  <[ 
    match ($e1)
    {
      | true  => $e2
      | false => false
    }
  ]>
}

особенно в сочетании вот с этими декларациями:
[assembly: OperatorAttribute("Nemerle.Core", "*",  false, 260, 261)]
[assembly: OperatorAttribute("Nemerle.Core", "/",  false, 260, 261)]
[assembly: OperatorAttribute("Nemerle.Core", "+",  false, 240, 241)]
[assembly: OperatorAttribute("Nemerle.Core", "-",  false, 240, 241)]
[assembly: OperatorAttribute("Nemerle.Core", "<",  false, 210, 211)]
[assembly: OperatorAttribute("Nemerle.Core", ">",  false, 210, 211)]
[assembly: OperatorAttribute("Nemerle.Core", "<=", false, 210, 211)]
[assembly: OperatorAttribute("Nemerle.Core", ">=", false, 210, 211)]
[assembly: OperatorAttribute("Nemerle.Core", "==", false, 165, 166)]
[assembly: OperatorAttribute("Nemerle.Core", "!=", false, 165, 166)]
[assembly: OperatorAttribute("Nemerle.Core", "&&", false, 160, 161)]
[assembly: OperatorAttribute("Nemerle.Core", "||", false, 150, 151)]


То это писец. Начинающим программистам нужно объяснять, что такое логическое И/ИЛИ и рассказывать про правила работы с ними (как их упростить, как построить отрицание и пр). А не объяснять, как вводить в язык эту конструкцию и хардкодить волшебными константами приоритеты.

P.S. Эта иллюстрация очень живой пример, почему я с опаской смотрю на подобные живые языки. В F# вон уже есть примеры, когда вместо того, чтобы объявить метод с нормальным именем — вводят оператор if', который по сути вызывает тот же пользовательский метод, но совершенно не читается в коде. И мне не хочется читать код, который написан на аналоге Perl 0.9 pre-alpha version. И я буду возражать против введения подобных фишек в моем проекте. Не каждый Андерс Хайлсберг, не каждый способен создавать внятный синтаксис. Как только в Немерле появится ЗАЩИТА от использования макросов (понятия не имею как она выглядит — но она должна работать также как и типобезопасность — не давать новичкам отстрелить себе ноги автоматически) — то я первым буду махать флагом, что Немерле может быть стандартом разработки. Ну может быть не сразу флагом начну махать, если сравнивать баг-фикс форс C# и Nemerle — то я лучше подожду, пока макросы в C# 5.0 появятся.
Re[2]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.09 07:03
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

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


PD>Дочитал более чем до середины (увы, ухожу на лекцию) и так и не понял одно


PD>def fahrenheitToCelsius(fahrenheit)

PD>{
PD> 5.0 / 9 * (fahrenheit — 32)
PD>}

PD>Далее идет предупреждение, которое объясняет, куда девался return. Это все хорошо, но что будет если внутри этой fahrenheitToCelsius будет 2 или более выражения ? Или так вообще нельзя ? ИМХО об этом следовало бы написать тут же. Вот это меня не устраивает


Мне кажется, что ты не дочитал всего один раздел до того места где есть ответ на этот вопрос.
В примере с "циклом" как раз неявно демонстрируется как сделать функцию содержащую несколько вычислений.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.09 07:03
Оценка: :)
Здравствуйте, Кэр, Вы писали:

Кэр>Если мы говорим о простоте. И об уровне "для начинающих", то вот этот макрос:


Кэр>
Кэр>ьacro @&& (e1, e2) 
Кэр>{
Кэр>  <[ 
Кэр>    match ($e1)
Кэр>    {
Кэр>      | true  => $e2
Кэр>      | false => false
Кэр>    }
Кэр>  ]>
Кэр>}

Кэр>

Кэр>особенно в сочетании вот с этими декларациями:...

На счет "в сочетании вот с этими декларациями" я согласен. Но что сложного в макросе?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Статья "Введение в Nemerle" - по критикуйте
От: 0K Ниоткуда  
Дата: 26.09.09 08:32
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Небольшое пояснение. Я принципиально старался построить изложение так чтобы не разжевывать тонкие моменты и не вдаваться в подробности, а сосредоточиться на том, чтобы как можно скорее позволить человеку писать пусть и простые но полезные программы. По этому просьба не высказать претензии к поверхности изложения. Это концептуальное решение, а не просчет.


Вы даете вводную информацию для тех, кто уже захотел изучать Nemerle. А как быть тем, кто вообще не знает что это такое?

>>Это один из самых лучших и интересных языков программирование, созданных на сегодняшний день, который легко и приятно изучать.


Ого! А где доказательство? Чем он лучше C#? Только макросами? Из статьи я ничего этого не узнал Еще были какие-то конструкции (кроме макросов), в которые даже не стал вникать, т.к. полезность их не очевидна.
... << RSDN@Home 1.2.0 alpha 4 rev. 1238>>
Re[2]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.09 13:20
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Вы даете вводную информацию для тех, кто уже захотел изучать Nemerle. А как быть тем, кто вообще не знает что это такое?


Мне казалось, что вводная информация как раз не требует знаний о том, что такое немреле.

ОК. Что же по твоему нужно было бы давать во вводной информации?
Ну, или другими словами, в чем ошибка?

>>>Это один из самых лучших и интересных языков программирование, созданных на сегодняшний день, который легко и приятно изучать.


0K>Ого! А где доказательство? Чем он лучше C#? Только макросами? Из статьи я ничего этого не узнал Еще были какие-то конструкции (кроме макросов), в которые даже не стал вникать, т.к. полезность их не очевидна.


В общих словах это сказано и не однократно. Доказательство же можно получить только изучив оба языка и поработав на них какое-то время. Так что новичкам придется поверить на слово или спросить у кого-то другого.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Статья "Введение в Nemerle" - по критикуйте
От: BulatZiganshin  
Дата: 26.09.09 14:25
Оценка: +3
Здравствуйте, VladD2, Вы писали:

на мой взгляд — абсолютно мимо

1. 16 или сколько у тебя там аргументо ЗА — это очень неубедительно выглядит, как психолог говорю. оставь 3. я бы написал о полноценном ФП расширении C#, включая полный вывод типов и макросах, позволяющих переделать синтаксис языка по своему желанию и избавиться от любого boilerplate кода. но я немерле не знаю, так что это так навскидку

2. такое впечатление что ты замахнулся на полноценный учебник по языку аналогичный кернигану. оно реально? я бы посоветовал сделать учебник для знающих C#, и делать в нём ставку на то что можно сделать проще. использовать ФП стиль, ввод типов и т.д. скажем

def faren(x) {x*11}

write(x, faren(x))

и сравните это с объёмом кода на C#. затем — мы же показываем преимущества немерле, а не мучения с ним — реализовать цикл с использованием аналога map. на хаскеле это было бы так — for [1..20] (print.faren). ну и далее примеры, на которых видно что немерле лучше c#

3. насчёт макросов я бы посоветовал привести примеры полезных макросов, а не описывать их реализацию — это достаточно полезный материал, а сначала надо людей заинтересовать в ценности этой фичи


сейчас получается, что статья после невнятной мотивационной части начинает описывать язык в непонятном порядке. похоже, ты просто на скорую руку сначала вводишь минимум механизмов, которые тебе позволят перейти к написанию макросов? при этом содержательная часть статьи совершенно не мотивирует, в ней ничего сногсшибательного в сранвеии с с# нет. выходит, что она будет полезна только тем, кто уже твёрджо решил изучить немерле, но при этом отрезан от всех интернета и вынужден ждать пока ты все 40 статей этого цикла закончишь писать?
Люди, я люблю вас! Будьте бдительны!!!
Re[3]: Статья "Введение в Nemerle" - по критикуйте
От: BulatZiganshin  
Дата: 26.09.09 14:26
Оценка: :)
Здравствуйте, VladD2, Вы писали:

>>>>Это один из самых лучших и интересных языков программирование, созданных на сегодняшний день, который легко и приятно изучать.


0K>>Ого! А где доказательство? Чем он лучше C#? Только макросами? Из статьи я ничего этого не узнал Еще были какие-то конструкции (кроме макросов), в которые даже не стал вникать, т.к. полезность их не очевидна.


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


может, у тебя просто нет педагогического таланта?
Люди, я люблю вас! Будьте бдительны!!!
Re[4]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.09 15:24
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>на мой взгляд — абсолютно мимо


BZ>1. 16 или сколько у тебя там аргументо ЗА — это очень неубедительно выглядит, как психолог говорю. оставь 3. я бы написал о полноценном ФП расширении C#, включая полный вывод типов и макросах, позволяющих переделать синтаксис языка по своему желанию и избавиться от любого boilerplate кода. но я немерле не знаю, так что это так навскидку


Дык. Ты бы прочел и вопрос бы отпал. Там так и есть. 16 — это врезка, для тех кому не хватает трех "за".

BZ>2. такое впечатление что ты замахнулся на полноценный учебник по языку аналогичный кернигану. оно реально?


Что-то вроде. Но не сразу, а со временем.

BZ>я бы посоветовал сделать учебник для знающих C#, и делать в нём ставку на то что можно сделать проще. использовать ФП стиль, ввод типов и т.д. скажем


Для знающих C# достаточно прочесть те статьи которые есть на сайте.

BZ>3. насчёт макросов я бы посоветовал привести примеры полезных макросов, а не описывать их реализацию — это достаточно полезный материал, а сначала надо людей заинтересовать в ценности этой фичи


Дык что может быть полезнее чем скажем оператор логического "и"?

Собственно идея описывать что-то из стандартной библиотеки взятка как раз у Кернигана. Они с Ричи в частности описывают стандартную библиотеку C. Мне в свое время это очень понравилось. Как бы изучаешь язык и библиотеку одновременно. За одно заглядываешь "под капот".

BZ>сейчас получается, что статья после невнятной мотивационной части начинает описывать язык в непонятном порядке.


Ну, на счет невнятности давай по конкретнее. А то я склонен отнести это суждение на твою предвзятость.

BZ>похоже, ты просто на скорую руку сначала вводишь минимум механизмов, которые тебе позволят перейти к написанию макросов?


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

BZ>при этом содержательная часть статьи совершенно не мотивирует, в ней ничего сногсшибательного в сранвеии с с# нет.


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

BZ>выходит, что она будет полезна только тем, кто уже твёрджо решил изучить немерле, но при этом отрезан от всех интернета и вынужден ждать пока ты все 40 статей этого цикла закончишь писать?


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

В общем, в цели этой работы не входила агитация за советскую власть. В прочем, если качество этой агитации можно поднять, то я с удовольствием поработают над этим разделом. Но агитация должна быть направлена не на тех кто уже знаком с Шапром, так как эта статья точно не для них. А на тех кто или вообще не умеет программировать, или программировал до этого, скажем на Питоне.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.09 15:31
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

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


BZ>может, у тебя просто нет педагогического таланта?


Может. Только это вряд ли отностися к наличию доказательств которых просто не может быть, так как читатель просто не имеет достаточных знаний, чтобы сделать выбор.

Скажем почему я в свое время начал учить С, а не Паскаль или Бэйсик. Паскль просто не входил в круг интересов тех с кем я тогда общался. А выбор между бэйсиком и С был сделан на чем угодно, но только не на сравнении языков. Выбор был сделан исходя из того, что в свое время мой отец сказал, что С очень перспективный язык (ему тоже это кто-то скзал), и потому, что мои первые эксперементы с Бэйсиком не дали нужных результатов. Мне был нужен быстрый вывод на экран, а Бэйсик без приседаний выводил информацию только в графическом режиме, что было медленно на ХТ-ишках. Сегодня я понимаю, что проблемы с выводом на экран были от недостатка информации, а не от того, что были какие-то фатальные недостатки в бэйсике.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Статья "Введение в Nemerle" - по критикуйте
От: Кэр  
Дата: 26.09.09 16:34
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>На счет "в сочетании вот с этими декларациями" я согласен. Но что сложного в макросе?


Сложного ничего. Просто для новичков конструкция if ( a && b ) и дальнейшее использование намного понятнее этюда, как сделать оператор логического "и" через паттерн матчинг. Для новичков надо сказать, что есть такой оператор, среди базовых макросов и ехать дальше. Новички не должны создавать очевидную базу языка. Это не в их компетенции. Это не то, что им доверят делать на боевых проектах.
Re[4]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.09 16:43
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Сложного ничего. Просто для новичков конструкция if ( a && b ) и дальнейшее использование намного понятнее этюда, как сделать оператор логического "и" через паттерн матчинг. Для новичков надо сказать, что есть такой оператор, среди базовых макросов и ехать дальше. Новички не должны создавать очевидную базу языка. Это не в их компетенции. Это не то, что им доверят делать на боевых проектах.


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

Возможно я и перемудрил в данном случае. Тут нужно на "кошках" экспериментировать, т.е. смотреть на реакцию тех кто действительно не знаком с программированием. Уверен, что те кто знали хотя бы какой-нибудь язык до чтения этого дела и так разобрались.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Статья "Введение в Nemerle" - по критикуйте
От: BulatZiganshin  
Дата: 26.09.09 16:44
Оценка:
Здравствуйте, VladD2, Вы писали:

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


я не верю в то что такая аудитория заинтересуется немерле. попробуй найти хоть одного такого человека
Люди, я люблю вас! Будьте бдительны!!!
Re[6]: Статья "Введение в Nemerle" - по критикуйте
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.09 16:49
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>я не верю в то что такая аудитория заинтересуется немерле. попробуй найти хоть одного такого человека


Я видел таких людей в живую. Кроме того в обсуждении
Автор: VladD2
Дата: 30.07.09
проскакивали такие голоса. В прочем, убеждать не буду. Не веришь, ну и ладно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Статья "Введение в Nemerle" - по критикуйте
От: Mamut Швеция http://dmitriid.com
Дата: 28.09.09 14:41
Оценка: 3 (2) +1
VD> Большая просьба высказывать отклики и пожелания. При этом прошу быть конструктивными и не устраивать очередной холивар.

ИМХО, Немерле мешает то, что на нем killer-проекта. Чтобы можно было сказать, что, мол, например, на N было реализовано то-то и то-то, что нигде мире просто нет, и сделано это было всего 5-ю строками кода.

После этого можно хоть всю статью посвятить только написанию hellow-world'а, и все равно языком заинтересуются

А тут — не цепляет что-то. Да, язык класный. Да, прекрасно сочетает, казалось бы, несочетаемое... Но вот неинтересно его изучать

Это все ИМХО, естественно
avalon 1.0rc2 rev 295, zlib 1.2.3 (01.08.2009 02:47:12 EEST :z)(Qt 4.5.1)


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.