Re[10]: Вопрос к Vlad2: Nemerle & R#
От: bigger longer and uncut  
Дата: 23.03.06 18:57
Оценка: 13 (2) -2
Здравствуйте, eao197, Вы писали:


BLA>>Тоже мнение. Вы, наверное, очень не любите американскую [контр]культуру?

E>Я даже не знаю, что это такое.

Мой ник — это название мультфильма.


BLA>>А как по вашему я должен был себя повести?

BLA>>Ну то есть как Это здесь принято.

E>Не берусь утверждать, как здесь принято, но я бы поступил так: проигнорировал бы выпады в адрес личности и постарался бы обсудить только предмет спора. Меня, например, смущает, что все цитаты VladD2 приводил из описания Nemerle -- т.е. высказывал только одну точку зрения -- точку зрения разработчиков Nemerle.


Вот именно это и забило окончательный гвоздь в мое терпение. Как можно беседовать с человеком, когда он говорит агитками?
Разве можно апеллировать к агитке? По-моему, нельзя.

E>С одной стороны, они хотели взять лучшее из разных языков (OCaml, MathML, Haskell и разных пристроек к ним). Однако, совсем не факт, что сборная солянка из "лучших возможностей" действительно окажется вкусным блюдом под названием Nemerle. Поскольку я сам не знаю функциональных языков, то мне было бы интересно услышать мнение знающего человека (мнение по существу).


Ну здесь как — вообще термин "функциональный язык" достаточно условная вещь, конечно, но одно видимо можно сказать — это языки, которые в основе своей имеют лямбда-исчисление.
То есть лямбда-функции являются основным и единственным строительным блоком и все конструкции в языке(ну как минимум все функции) состоят из лямбд. лямбда — это анонимная функция, которая так же является замыканием — то есть помнит родительский контекст.
Смысл в том, чтобы получить язык с формальной семантикой — чтобы программы были предсказуемыми, доказуемыми и как можно проще.
Это конечно все очень упрощенно, но примерно так.

Так вот — Nemerle никакого отношения к этому описанию не имеет. В нем даже лямбд нет — то, что там называется таковой, на самом деле макрос, который генерирует делегат.
Причем макросы в немерле — это вообще говоря антифункциональная вещь. То есть они не first-class values, их нельзя передавать куда-то или возвращать, хотя со стороны они выглядят как функции. Удачи маленьким любителям функциональных языков.
То есть немерль не более функциональный, чем, скажем, С++. Javascript к слову гораздо более функциональный, если на то пошло.
Если же мы идем дальше и пытаемся сравнить с Хаскелем и Окамлом, то все еще хуже.
То есть достаточно было бы упомянуть отсутствие карринга в немерле, чтобы выкинуть гигантский кусок выразительной мощи из окамла с хаскелем, но еще ведь есть типы. Которые в немерле — это просто дотнетовские классы на самом деле, со всеми их проблемами.
То есть кроме всего прочего понятно, что они еще динамические и т.п.
Ну и как вишенка на тортике — Null_pointer_exception.
Конечно после этого пытаться искать в немерле следы функторов, полиморфных вариантов, классов типов, экзистенциальных типов, функциональных зависимостей и полиморфизм второго ранга — не стоит.
Вот такие у нас нынче пошли типобезопасные функциональные языки.

Еще принято считать, что ленивые языки как минимум в два раза выразительнее, чем энергичные (небезосновательно).

Вот теперь вы можете отличать функциональные языки.
Конечно немерль — это лучший язык за сто лет и сто лет еще лучше не появится.

E>Переход же на личностные разборки просто убивает интерес к первоначальной теме.


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