Re[14]: Синтаксический сахар или C++ vs. Nemerle :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.05.06 22:19
Оценка:
Здравствуйте, Demiurg, Вы писали:

WH>>И чего в дельфе круче чем в .НЕТ?


D> Прошу прощения, что не ответил, ответ в посте к Владу.


Откровенно говоря ответя я так и не заметил. То что ты сказал, что Дельфи по-твоему круче для меня аргументацией не является.

Дельфи и дотнет используют одинаковые компонентные принцпы для постоения ГУИ. Это их роднит. Одако дотнет продуман значительно лучше (что не странно, так как одиним из создателей Дельфи был автор C#-а) и позволяет создавать более чистые решения. Главная разница между Дельфи (причем старой) и дотнетом заключается в том, что компонентная модель дельфи довольно убока и догое время была не документирована. Дотнетные же технологии полностью открыты.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Синтаксический сахар или C++ vs. Nemerle :)
От: GlebZ Россия  
Дата: 27.05.06 22:31
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Так что причем тут приведенный тобой пример я не понял.

Ладно. Проехали, чтобы лишнего флейма не поднимать. В статье и соседних есть ответы на которые я хотел получить ответ.

VD>Да они и до С были. Причем тут этого? Я что где-то утверждал, что макросы — это единственныое средство метапрограммирования в С++?

VD>О чем речь то. Ты онял про что статья?
Да понял, понял. И главное, я понял что мне в ней не нравится.
Первое, ты назвал ее С++ vs Nemerle. Если бы ты ее назвал Nemerle vs Императивщина, то было бы проще. Взял за основу циклы, и стал рассуждать. В функциональный стиле, циклы повторимы через рекурсию и оптимизацию компилятора(кому-то наверно нравится это называть это side эффектом ). Там длинное эссе(и весьма полезное для незнающих функциональные стили программирования) которое я не буду повторять. И делается вывод что базовой вещью должен быть рекурсивный стиль, а циклы могут быть реализуемы. Как бы все правильно и верно. Но проблема в том, что ты это назвал C++ vs Nemerle. В C++ базовой вещью являются циклы. И самая проблема в том, что в нем и функциональный стиль повторим. И замыкания, и кортежи. Если бы ты показал ответ что это кривая реализация, то вопросов бы не было. Но в данном случае, вопрос:"Зачем вводить в язык то, что реализуется библиотекой?" остался открытым. И утверждение:

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

недоказанным.
Это по первой главе.
Вторая глава:
Далее объяснения почему так все круто в Nemerle, и как легко сделать Nemerle императивным. И пример программирования макросов С++ с утверждением о его негигиеничности. Негигиенечность можно обойти (вставить что-нибудь типа __LINE__ и уже хорошо). А вот заменить автоматически statement функторами в теле процедуры, IMHO уже сложней(если не невозможно). Но опять я в ней не нашел выводов по тому кому быть базовым механизмом.
В остальном, абсолютно согласен. Хотя может быть и занимаюсь буквоедством.

GZ>> Ты завел разговор именно о синтаксическом сахаре.

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

GZ>> И также написал:

GZ>>

Понял я то, что в C++, при верной, в общем-то, постановке задачи «Ввести в язык базовые вещи, а остальное реализовать на нем», его разработчики поступили в точности наоборот.

GZ>>Сейчас они думают о boost::lambda. Что это, не синтаксический сахар?
VD>Это идиотизм. Создать полноценную лямбду с возможностью синтаксического замыкания на внешний контест нвеозможно в приципе. Все это ужимки от бедности.
Там шарповская система автогенеренных функторов с сохранением локальных переменных. Только в С# есть GC который эти локальные переменные умеет счищать. Вобщем, на мой взгляд, кривизна. И вроде бы ее и сами сишники не очень балуют.

VD>Сравни это с примерами немерла, когда средствами метапрограммировния в язык вводятся констркции вроде for, while, foreach и даже средства типизированного доступа к SQL.

+1. Только я этого не увидел в статье.

GZ>> Не назвать это полноценным синтаксическим сахаром я не могу.

VD>Полноценный? Это попытка использовать умеющиеся синтаксические конструкции для эмуляции других.
VD>Ты вон послушай, что думают люди вроде eao197 о подобных попытках.
И я с ним согласен. Да и с тобой согласен. Токмо я буквоед.

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

+1

VD>Это разные статьи. И не нравится эта статья исключительно из религиозных чувств которые она затрагивает.

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

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

А я и есть начинающий. Правда сравнивать с C# мне было сложновато. Плохо клеится в мозгах. А вот сравнение с OCaml по тезисам этой статьи, мне далось легче.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[9]: Синтаксический сахар или C++ vs. Nemerle :)
От: GlebZ Россия  
Дата: 27.05.06 22:31
Оценка:
Здравствуйте, IT, Вы писали:

IT>Сколько уже можно повторять, основан он не на свойстве метапрограммирования шаблонов, а на сайд эффектах компилятора. Впрочем, возможно это теперь называется "Свойство Метапрограммирования".

Это вопрос относительности. Можно назвать side — эффект. Для других — свойство прекомпиляции заголовочных файлов. Каждому свое.

IT>Думаю, ключевых слова здесь два: делают и кривое. Всмысле, так долго делают и так криво.

Язвительность неконструктивна. По мне криво. Я испорчен языками где это одна из основ, и сделано с соответсвующим качеством.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[15]: Синтаксический сахар или C++ vs. Nemerle :)
От: Demiurg  
Дата: 27.05.06 22:32
Оценка:
Здравствуйте, VladD2, Вы писали:

WH>>>И чего в дельфе круче чем в .НЕТ?


D>> Прошу прощения, что не ответил, ответ в посте к Владу.


VD>Откровенно говоря ответя я так и не заметил. То что ты сказал, что Дельфи по-твоему круче для меня аргументацией не является.


А я не говорил ничего про развернутый ответ Сейчас отвечу.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: Синтаксический сахар или C++ vs. Nemerle :)
От: Demiurg  
Дата: 27.05.06 22:32
Оценка:
Здравствуйте, VladD2, Вы писали:

D>> Левому в смысле — левому от дотнета Я даже зарегился специально на годотнете, но вопрос — нормально, если я зарегюсь на встречу, но не приду (мало ли что там на работе случится)?


VD>Ничего страшного.


Ок, зарегился

VD>Реально одних версий Виндовс уже есть стук 20. Ведь разные ВыньЦЕ сюда тоже входят. Плюс Моно живет уже на немалом количестве платформ. Конечно для очень взыскательных этого может не хватить. Но реально 99% программистов пишут софт под Вынь и Лиь. Причем посленее явно случается реже.


D>> 20 мег это фигня. Дело не в размере


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


Ты серьезно ждешь ответ на этот вопрос сексуального характера?

D>> Ты же сказал про компонентную разработку гуи? В дельфи это круче реализовано.


VD>Серьезно? И можешь даже аргументировать?


Серьезно. Аргументировать не могу . Это вопрос вкусов вроде. В делфи (и билдере) довольно хороший интерефейс для создания гуи, возможность наследовать формы, офигенная поддержка разработки своих компонент с возможностью их отладки в design-тайме... В дотнете меня поразил своей убогостью дизайнер и редактор свойств. Да, похоже на то как в делфи (один чувак все же автор ), но не то... Собственно, я об этом. РАД среда никакая для меня.

VD>За одно расскажи как дельфи живет поверх того самого фрэймворка.


Не понял...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: Синтаксический сахар или C++ vs. Nemerle :)
От: Demiurg  
Дата: 27.05.06 22:41
Оценка: :)
VD>>Ничего страшного.

D> Ок, зарегился


Имелась ввиду улыбка, блин...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[16]: Синтаксический сахар или C++ vs. Nemerle :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.05.06 00:28
Оценка: +1
Здравствуйте, Demiurg, Вы писали:

D>>> 20 мег это фигня. Дело не в размере


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


D> Ты серьезно ждешь ответ на этот вопрос сексуального характера?


Да, так как одозреваю, что это очередная фобия.

VD>>Серьезно? И можешь даже аргументировать?


D> Серьезно. Аргументировать не могу . Это вопрос вкусов вроде.


Тогда не забывай делая такие заявления добавлять строчку вроде "мне кажется" или "для меня...".
А то вдруг ты носитель тайного знания которое я пропустил.

D> В делфи (и билдере) довольно хороший интерефейс для создания гуи,


Извини, ты VS2005 то видел?

D> возможность наследовать формы,


Есть и в VS 2002.

D> офигенная поддержка разработки своих компонент с возможностью их отладки в design-тайме...


Ну, про отлаку в дизайнтайм ты загнул. Для компонента это уже рантайм. Но в общем и целом разницы в отдадке и разработке компонентов я вилчно не вижу. Или вижу, но точно не в пользу дельфи. К тому же надо понимать, что разработка на безопасном языке с ЖЦ всегда надежнее чем на небезопасном и без ЖЦ. Так что не дотнетная Дельфи отдыхает по любому. А дотнетная мало чем отличается от Шарпа.

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


Это от незнания. На самом деле он значительно лучше расширяется. Ну, а то что он не похож на павлина... дык на то есть C# Builder от Борланда или та же Delphi .NET. Крастоты не писанной как в прочем и глючности редкостной.

D> Да, похоже на то как в делфи (один чувак все же автор ), но не то... Собственно, я об этом. РАД среда никакая для меня.


Извини, но это проявление поверности знаний в данной области. Я как бы был знаком собоими системами. Реально дизайн-тайм в WinForms продуман значительно лучше. Единственная проблема тема эта огромна. По ней можно книги писать.
Для разгона:
.Net – классы, компоненты и контролы
Автор(ы): Владислав Чистяков
Дата: 09.05.2003
Создание ПО из компонентов подразумевает, что компоненты будут добавляться к проекту во время разработки. При этом будет производиться их начальная настройка. Компоненты как таковые не подразумевают (вернее сказать, не обязаны иметь) пользовательского интерфейса (ни для программиста, ни для конечного пользователя). В этом качестве выступают части IDE и дополнительные программные дизайнеры. Первой компонентной средой был продукт, купленный Microsoft на заре своего существования. Впоследствии на его базе родился VB. Далее была Delphi… в общем, к концу двадцатого века компоненты стали поддерживаться почти везде (даже в Visual C++, хотя он и по сей день не очень-то визуальный).

Статьи по Windows Forms

VD>>За одно расскажи как дельфи живет поверх того самого фрэймворка.


D> Не понял...


Ты не в курсе что начиная с Delphi.NET основной платформой для Дельфи является дотнет? Ну, ты что-то очень уж сильно отстал.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Синтаксический сахар или C++ vs. Nemerle :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.05.06 00:28
Оценка:
Здравствуйте, GlebZ, Вы писали:

Долго писал ответ, но у ноутбука кончилась батарейка и он выключился (думл, что он в сети, а шнур был вынут).
В общем, повторять подвиг в лом. Так что твечу только на часть.

В статье в общем-то все сказано. Но при некоторой степени предвзятости в ней всегда можно найти "не то".

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


Вот вот. Остается только выключить предпочтения и поглядеть на факты и выводы.

GZ>

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

GZ>недоказанным.

Это явная не правда. Все как раз доказано выше крыши. Причем еще не мной, а тем кто придумал лямбда-исчисления .
Функция более общая вещь нежели нежели циклы. С++ все равно содержит функции. Лябда же более универсальная вещь чем функция. По сути фунция — это дямбда с которой ассоциировано некоторое имя. Так почему в С++ нет лямбды и ее унжно пытаться сэмулировать, но есть циклы и глобальные функции? Ответ очевиден — недальновидный дизайн и совместимось с еще более убогим дизайном С.

GZ>Это по первой главе.

GZ>Вторая глава:
GZ>Далее объяснения почему так все круто в Nemerle, и как легко сделать Nemerle императивным. И пример программирования макросов С++ с утверждением о его негигиеничности. Негигиенечность можно обойти (вставить что-нибудь типа __LINE__ и уже хорошо).

Закат солнца в ручную?

GZ> А вот заменить автоматически statement функторами в теле процедуры, IMHO уже сложней(если не невозможно). Но опять я в ней не нашел выводов по тому кому быть базовым механизмом.


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

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

GZ>В остальном, абсолютно согласен. Хотя может быть и занимаюсь буквоедством.


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

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

VD>>Сравни это с примерами немерла, когда средствами метапрограммировния в язык вводятся констркции вроде for, while, foreach и даже средства типизированного доступа к SQL.

GZ>+1. Только я этого не увидел в статье.

Зашибись! А о чем тогда говорит раздел "Расширение синтаксиса"?
Снова пристум нежелания видеть?

В Nemerle выбран именно второй путь. В него введены синтаксические макросы, позволяющие реально расширять синтаксис языка.
Вот как выглядит реализация цикла while на Nemerle:

macro @while (cond, body)
syntax ("while", "(", cond, ")", body) 
{
  def loop = Nemerle.Macros.Symbol(Util.tmpname("while_"));

  <[ 
    $(PT.Name.Global("_N_break") : name) :
    {
      def $(loop : name)() : void
      {
        when ($cond)
        {
          $(PT.Name.Global("_N_continue") : name) :
          {
            $body 
          }

          $(loop : name)()
        }
      }

      $(loop : name)(); 
    }
  ]>
}

Этот простой макрос позволяет использовать в коде цикл while, полностью аналогичный таковому в C# и C++.
Интересно, что в Nemerle с помощью макросов реализованы return, break, continue, unchecked, checked, yield, if/else, while, repeat (вид цикла), when (замена if без else), for, unless (по сути, when(!...)), оператор using, lock, do/while, foreach, lambda (укороченный синтаксис для анонимных функций), а также операторы &&, ||, %|| (битовое «или» с проверкой на != 0), %&& (битовое «и» с проверкой на != 0), %^^ (XOR с проверкой на != 0), ++, --, +=, -=, *=, /=, <<=, >>=, %=, |=, &=, ^=, <-> (обмен значений переменных), ::= (модифицирующее добавление элемента в начало связанного списка).


В обещем, очереданая неправда.

VD>>Это разные статьи. И не нравится эта статья исключительно из религиозных чувств которые она затрагивает.

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

А чем вызвано буквоедство?

GZ>А я и есть начинающий. Правда сравнивать с C# мне было сложновато. Плохо клеится в мозгах. А вот сравнение с OCaml по тезисам этой статьи, мне далось легче.


Я не знаю ОКамл настолько чтобы делать качественное сравнение с этим языком. Хотя такое сравнение действительно было бы полезно и интересно. В прициипе кое что сравнивается в статье по макросам (сравнивается ОКамловский препроцессор). Сравнение с Шарпом же находится в первой статье (введении в язык). Она практически вся построена на отличиях от Шарпа. Так как основа языка действительно очень близкая. ОКамл тоже во многом близок. Но... в прочем я повторяюсь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Синтаксический сахар или C++ vs. Nemerle :)
От: Demiurg  
Дата: 28.05.06 01:29
Оценка:
Здравствуйте, VladD2, Вы писали:

D>> Ты серьезно ждешь ответ на этот вопрос сексуального характера?


VD>Да, так как одозреваю, что это очередная фобия.


Да ладно тебе — во всем фобии видеть Ну не нравится мне байт-код и все. Хоть убей. Вопрос религии. Так что, думаю, не стоит джихады устраивать — у каждого же свой вкус, не так ли?

VD>>>Серьезно? И можешь даже аргументировать?


D>> Серьезно. Аргументировать не могу . Это вопрос вкусов вроде.


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


В нетикете есть негласное правило — любое сообщение подразумевает, что это "мне кажется", "для меня", "имхо" и так далее..

VD>А то вдруг ты носитель тайного знания которое я пропустил.


Так оно и есть Но не в этой области.

D>> В делфи (и билдере) довольно хороший интерефейс для создания гуи,


VD>Извини, ты VS2005 то видел?


Нет.

D>> возможность наследовать формы,


VD>Есть и в VS 2002.


D>> офигенная поддержка разработки своих компонент с возможностью их отладки в design-тайме...


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


Все понятно. Если в студии все стало так хорошо, то ок. Но неважно. Мне все равно дельфи не нравится Особенно ее компонентная модель. Просто я сравнил реализацию там и в дотнете. В дельфи показалась более прямой.

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


VD>Это от незнания. На самом деле он значительно лучше расширяется. Ну, а то что он не похож на павлина... дык на то есть C# Builder от Борланда или та же Delphi .NET. Крастоты не писанной как в прочем и глючности редкостной.


Глюки, они на каждом шаге от борладна


D>> Да, похоже на то как в делфи (один чувак все же автор ), но не то... Собственно, я об этом. РАД среда никакая для меня.


VD>Извини, но это проявление поверности знаний в данной области.


Погоди, какие могут быть поверхностные знания в этой области? Дизайнер просто неудобен. Выполнен в стиле микрософт, как редактор ресурса типа "диалог". Всегда плевался от него. Для меня это неприемлемо. Может быть в 2005 студии он уже обрел человеский вид?

VD>>>За одно расскажи как дельфи живет поверх того самого фрэймворка.


D>> Не понял...


VD>Ты не в курсе что начиная с Delphi.NET основной платформой для Дельфи является дотнет? Ну, ты что-то очень уж сильно отстал.


Не, в курсе. Просто я не использовал и, думаю, не буду Дельфи.Нет.
Так может не стоит высказывать такие вещи, что я отстал
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Синтаксический сахар или C++ vs. Nemerle :)
От: GlebZ Россия  
Дата: 28.05.06 01:41
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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

Передай ему мои соболезнования.

VD>Это явная не правда. Все как раз доказано выше крыши. Причем еще не мной, а тем кто придумал лямбда-исчисления .

VD>Функция более общая вещь нежели нежели циклы. С++ все равно содержит функции. Лябда же более универсальная вещь чем функция. По сути фунция — это дямбда с которой ассоциировано некоторое имя. Так почему в С++ нет лямбды и ее унжно пытаться сэмулировать, но есть циклы и глобальные функции? Ответ очевиден — недальновидный дизайн и совместимось с еще более убогим дизайном С.
+1 Кстати, также камень в Microsoft. В С++, благодаря хреновенькому метапрограммингу и перегрузке скобок, хоть хреновенько но можно сделать. В C# 1.0 — никак. Пользуем только то, что дают. А нормальные лямбды еще не дали.

GZ>>Далее объяснения почему так все круто в Nemerle, и как легко сделать Nemerle императивным. И пример программирования макросов С++ с утверждением о его негигиеничности. Негигиенечность можно обойти (вставить что-нибудь типа __LINE__ и уже хорошо).

VD>Закат солнца в ручную?
Ага. Зато работает.

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

Мне это понятно. Но вот программисту С++, который всю жизнь прогорел на императивном языке, не помнит что такое функциональные языки, и который только слышал о boost::lambda — этот вывод может быть непонятен. А таких большинство.

GZ>>В остальном, абсолютно согласен. Хотя может быть и занимаюсь буквоедством.

VD>Даже не буквоедством, а докапыванием.
Maybe. От перемены слов смысл не меняется.

VD>>>Сравни это с примерами немерла, когда средствами метапрограммировния в язык вводятся констркции вроде for, while, foreach и даже средства типизированного доступа к SQL.

GZ>>+1. Только я этого не увидел в статье.
VD>Зашибись! А о чем тогда говорит раздел "Расширение синтаксиса"?
VD>В обещем, очереданая неправда.
Я как раз имел ввиду предыдущий пункт. Три раза каюсь. Неправильно отформатировал. Имелось вот это:

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

Сравнение систем метапрограммирования boost::lambda (для повторения функционального стиля). То бишь если одно умеет повторять другое, почему другое не может повторить первого. И насколько оно шизофренично.

VD>А чем вызвано буквоедство?

Наверно той двухсмысленностью "ошибок C++-ников". На всякий случай довернул по почкам. И вообще у них не было ошибки. Они не делали идеальный язык (иначе нужно было бы забыть о С). Они делали популярный язык. И это им удалось на пять с плюсом.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[12]: Синтаксический сахар или C++ vs. Nemerle :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.05.06 15:38
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>+1 Кстати, также камень в Microsoft. В С++, благодаря хреновенькому метапрограммингу и перегрузке скобок, хоть хреновенько но можно сделать. В C# 1.0 — никак. Пользуем только то, что дают. А нормальные лямбды еще не дали.


Тут оно как... Ты считашь, что это камень. А я ь(и видимо создатели Шарпа) считаю, что это как раз достоинство. Язык позволят только то, что запланировано. И позволяет это на 5 балов. Метапрограммирования в нем просто нет. Если добавят — будет, но пока нет. И прекрасно, что нет страшных побочных эффектов позволяющих эмулировать отсуствующую функциональность. Иначе когда авторы соберутся ввести ее, то она будет конфликтовать с непродуманной гибкостью.

GZ>>>Далее объяснения почему так все круто в Nemerle, и как легко сделать Nemerle императивным. И пример программирования макросов С++ с утверждением о его негигиеничности. Негигиенечность можно обойти (вставить что-нибудь типа __LINE__ и уже хорошо).

VD>>Закат солнца в ручную?
GZ>Ага. Зато работает.

Не, не работает. Разумный человек просто плюнет чем связаываться с такими извратами.

GZ>Я как раз имел ввиду предыдущий пункт.


Странный ход... Рачленить статью и сетовать на то, что в части "а" чего-то нехватает при том, что в части "б" это есть.

VD>>А чем вызвано буквоедство?

GZ>Наверно той двухсмысленностью "ошибок C++-ников". На всякий случай довернул по почкам. И вообще у них не было ошибки. Они не делали идеальный язык (иначе нужно было бы забыть о С). Они делали популярный язык. И это им удалось на пять с плюсом.

Значит, так. Или надо признать ошибочными (для С++) те лозунги которые были приведены мной в начале статьи, или прийдется признать, что реализация этих лозунгов в С++ весьма посредственна и неполноценна.

ЗЫ

Я и раньше не пог понять почему в С++ нет делегатов. Все доказательства того, что они не нужны в зяке явно выглядили натянуто. Увидив подход Немерловцев я понял, что моя ошибка была в том, что я говорил именно о делегатах. Функции высшего порядка более общая обстракция. Делегаты только один из вариантов ее реализации. Именно их не хватало в С++ (полноценных, а не тех потух в виде С-указателей на функции и весьма странных извращений С++ в вдие указатели на члены).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Синтаксический сахар или C++ vs. Nemerle :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.05.06 15:38
Оценка:
Здравствуйте, Demiurg, Вы писали:

D> Да ладно тебе — во всем фобии видеть Ну не нравится мне байт-код и все. Хоть убей. Вопрос религии.


Вот именно, религии.

D> Так что, думаю, не стоит джихады устраивать — у каждого же свой вкус, не так ли?


Не так. Религия фиговый спутник для IT.

D> В нетикете есть негласное правило — любое сообщение подразумевает, что это "мне кажется", "для меня", "имхо" и так далее..


Ссылку плиз на такое правило.

VD>>Извини, ты VS2005 то видел?


D> Нет.


Тогда что ты сравнивашь? VS6 и Delphi 6?

D> Погоди, какие могут быть поверхностные знания в этой области? Дизайнер просто неудобен. Выполнен в стиле микрософт, как редактор ресурса типа "диалог". Всегда плевался от него. Для меня это неприемлемо. Может быть в 2005 студии он уже обрел человеский вид?


У меня ощущение, что я разговариваю со спящей красавицей которая застула в 1998-ом и проснулась только сейчас. Уже в VS 2002 был очень неплохой дизайнер форм для C# и VB.NET. А в VS 2005 он стал еще лучше.

VD>>Ты не в курсе что начиная с Delphi.NET основной платформой для Дельфи является дотнет? Ну, ты что-то очень уж сильно отстал.


D> Не, в курсе. Просто я не использовал и, думаю, не буду Дельфи.Нет.

D> Так может не стоит высказывать такие вещи, что я отстал

Ты сам это даешь понять. Твои завяления весьма странны. И вообще это уход от темы. Мы говорили о С++ и подпорках которые ему нужны чтобы сделать хотя бы дизайнеры ГУИ. Дельфи и дотнет в таких подпорках не нуждаются, и нет смысла в этом их противопоставлять. Оба продукта исповедуют компонентный подход который отлично ложится на всякого рода дизайнеры.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Синтаксический сахар или C++ vs. Nemerle :)
От: GlebZ Россия  
Дата: 29.05.06 08:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Тут оно как... Ты считашь, что это камень. А я ь(и видимо создатели Шарпа) считаю, что это как раз достоинство. Язык позволят только то, что запланировано. И позволяет это на 5 балов.

Это ты про C#3.0?
VD>Метапрограммирования в нем просто нет. Если добавят — будет, но пока нет. И прекрасно, что нет страшных побочных эффектов позволяющих эмулировать отсуствующую функциональность. Иначе когда авторы соберутся ввести ее, то она будет конфликтовать с непродуманной гибкостью.
В С++ такой проблемы не стоит. А вот нормальную перегрузку операторов сделать, стоило бы.

GZ>>Ага. Зато работает.

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

VD>>>А чем вызвано буквоедство?

GZ>>Наверно той двухсмысленностью "ошибок C++-ников". На всякий случай довернул по почкам. И вообще у них не было ошибки. Они не делали идеальный язык (иначе нужно было бы забыть о С). Они делали популярный язык. И это им удалось на пять с плюсом.
VD>Значит, так. Или надо признать ошибочными (для С++) те лозунги которые были приведены мной в начале статьи, или прийдется признать, что реализация этих лозунгов в С++ весьма посредственна и неполноценна.
Второе.

VD>Я и раньше не пог понять почему в С++ нет делегатов. Все доказательства того, что они не нужны в зяке явно выглядили натянуто. Увидив подход Немерловцев я понял, что моя ошибка была в том, что я говорил именно о делегатах. Функции высшего порядка более общая обстракция. Делегаты только один из вариантов ее реализации. Именно их не хватало в С++ (полноценных, а не тех потух в виде С-указателей на функции и весьма странных извращений С++ в вдие указатели на члены).

Во первых, я бы назвал аналогом функторы. Ну а во вторых, есть идеологическая пропасть между функциональным и императивным программированием. Безусловно, любой функциональный язык должен уметь оптимизировать рекурсию. Процессоры вкупе с OS успешнее работают с последовательными программами. Но для императива такая оптимизация значительно сложней. Трудно раскрутить рекурсию, если у тебя изменяются глобальные данные. Функциональные программы — не поощряют изменения глобальных данных(взять тот же mutable в Nemerle). Для императива это одна из основных особенностей. Поэтому, IMHO, полностью универсального, и функционального и императивного, эффективного компилятора не может быть. И функции высшего порядка, в основном, в императивных языках так и останутся по сложности на уровне Fold.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[6]: Синтаксический сахар или C++ vs. Nemerle :)
От: fionbio  
Дата: 29.05.06 14:40
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Андрей Хропов, Вы писали:


VD>>> Так что это задача для кого-то другого.

АХ>>Ну вот тут
Автор: fionbio
Дата: 12.07.05
человек интересующийся писал, может поможет ?


VD>Проблема в том, что у Личпарей обычно нулевой скил в области Немерла и нулевое же влечение к дотнету и всем что с ним связано.


Что-то я не вник, кого с кем надо сравнивать. Если C++ с CL, то пожалуйста.

По поводу дотнета — я профессиональный дотнетчик, и чем больше с годами набираюсь опыта по работе
с этой платформой, тем с большим презрением к ней отношусь Такое чувство, что изначально
было задумано сравнительно не плохо (хотя лучше бы не задумывалось вообще), а потом посадили толпу
обезьян, дали им нереальные сроки и вперёд... (кто не верит, больше юзайте Рефлектор )
Re[14]: Синтаксический сахар или C++ vs. Nemerle :)
От: Tom Россия http://www.RSDN.ru
Дата: 29.05.06 16:31
Оценка:
VD>Яд который я пью — грузинский коньяк и грузинское вино у нас сегодня отобрали. Так что до тех пор пока он к нам не вернется прийдется влачить существование трезвиника.

Могу привезти, у нас тут ентого добра — полно
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Народная мудрось
всем все никому ничего(с).
Re[7]: Синтаксический сахар или C++ vs. Nemerle :)
От: IT Россия linq2db.com
Дата: 30.05.06 02:05
Оценка: +1 :)
Здравствуйте, fionbio, Вы писали:

F>По поводу дотнета — я профессиональный дотнетчик, и чем больше с годами набираюсь опыта по работе с этой платформой, тем с большим презрением к ней отношусь Такое чувство, что изначально было задумано сравнительно не плохо (хотя лучше бы не задумывалось вообще), а потом посадили толпу обезьян, дали им нереальные сроки и вперёд... (кто не верит, больше юзайте Рефлектор )


Есть такое дело. Но, надо признать, платформа держит пока даже толпы обезъян и пока живёт. В любом случае, будущее за управляющими средами.

А по поводу рефлектора... Не надо туда смотреть без нужны. Не для слабонервных это
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Синтаксический сахар или C++ vs. Nemerle :)
От: McSeem2 США http://www.antigrain.com
Дата: 30.05.06 04:21
Оценка: 62 (4) +5 -1
Здравствуйте, GlebZ, Вы писали:

IT>>Сколько уже можно повторять, основан он не на свойстве метапрограммирования шаблонов, а на сайд эффектах компилятора. Впрочем, возможно это теперь называется "Свойство Метапрограммирования".

GZ>Это вопрос относительности. Можно назвать side — эффект.

Ты знаешь, здесь я встану на сторону VladD2, IT и прочих апологетов дот-нетщины. Шаблоны — это замечательно и я их вполне успешно использую. Но вот буст — не понимаю. Не имеет он для меня ни малейшей пректической ценности. В качестве головоломных упражнений — замечательно, но не более того. Когда ради какой-то приблуды типа boost::tuple написано пару тыщ строк кода, которые со скрипом компилируются, значит что-то здесь не то. Это явный признак того, что язык используется не по назначению. Буст давно превратился в помойку, в которй многократно превышен разумный предел терпимости. Более-менее сложные проекты с бустом собираются часами — и это уже ни в какие ворота не лезет.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[8]: Синтаксический сахар или C++ vs. Nemerle :)
От: McSeem2 США http://www.antigrain.com
Дата: 30.05.06 04:46
Оценка: 12 (1) :)
Здравствуйте, IT, Вы писали:

IT>Есть такое дело. Но, надо признать, платформа держит пока даже толпы обезъян и пока живёт. В любом случае, будущее за управляющими средами.


"... а идея, брошеная в массы,
это девка, брошеная в полк..."
И. Губерман
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[11]: Синтаксический сахар или C++ vs. Nemerle :)
От: alexeiz  
Дата: 30.05.06 05:18
Оценка: +2 -2 :)
Здравствуйте, McSeem2, Вы писали:

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


Высокоуровневые абстракции == головоломные упражнения. Отличное сравнение! Мне на работе тоже один маньяк выговорил за использование ScopeGuard вместо ручного управления ресурсами. Подавай ему "if (FAILED(hr)) goto error; error: LocalFree(...)" и всё тут! Не будем фигурять!

> Когда ради какой-то приблуды типа boost::tuple написано пару тыщ строк кода, которые со скрипом компилируются, значит что-то здесь не то. Это явный признак того, что язык используется не по назначению. Буст давно превратился в помойку, в которй многократно превышен разумный предел терпимости. Более-менее сложные проекты с бустом собираются часами — и это уже ни в какие ворота не лезет.


Tuple включён в TR1, а от туда и в C++0x Standard Library. Пугаться нужно было раньше, где-то с момента появления на свет STL. Если по ночам снятся кошмары, может стоит сменить язык программирования?
Re[12]: Синтаксический сахар или C++ vs. Nemerle :)
От: Kluev  
Дата: 30.05.06 11:58
Оценка:
Здравствуйте, alexeiz, Вы писали:

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


A>Tuple включён в TR1, а от туда и в C++0x Standard Library. Пугаться нужно было раньше, где-то с момента появления на свет STL. Если по ночам снятся кошмары, может стоит сменить язык программирования?


Ну, здесь мы имеем и sex и sucks в одном флаконе. sucks в смысле того что STL — sucks, а sex в том смысле что stl можно и не использовать, а кататся на собственных велосипедах.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.