Здравствуйте, eao197, Вы писали:
E>Какие $10? Ты бредишь? На цены посмотри
$10 M, естественно, т.е. 10 000 000. Это отнюдь не много для 20 лет. Это просто мизер.
VD>>Я сужу о распространенности продукта по спросу на него. Покажи мне хотя бы один вопрос по этому замечательному языку у нас на форуме. Нет? А на другом не принадлежащем ему?
E>Блин, Влад, раскрой глаза! Ты серьезно думаешь, что RSDN является объективным отражением того, что творится в мире?
Я серьезно считаю, что если бы язык был реально популярен, то из 100 000 посетителей этого сайта хотя бы один его использовал бы.
E> Актись. Я прекрасно помню, как два года назад ты спрашивал "Какой-такой Ruby?" А сейчас вы статьи о нем публикуете.
Пользователей руби я знаю. Вот ты, например. Их не много, но они есть. А вот Эфиля. Ну, не видел ни одного. Ни в жувую, ни на сайтах. Точнее одно видел в живую. Автра.
E>Eiffel же стоит столько, что в бывшем Союзе мало кто может себе его позволить использовать в разработках. Так что же ты хотел на русскоязычном форуме?
Ага. За Студию по $10 000 на одно раб.место платят, а Эйфиль позволить не моут. Слишком крут видмо он.
E>Я задавал вопросы по Eiffel здесь: eiffel_software -- отвечали достаточно грамотно и оперативно. Хотя и фанатики типа тебя, там так же встречались.
Ты меня путашь с кем-то. Я реалист. А вот ты сказочник. Даже не сказочник, а сказочный герой. Придумал себе мир и недоволен, что другие в него не верят.
... << RSDN@Home 1.2.0 alpha rev. 672>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, eao197, Вы писали:
E>А вот пользователям языка это побарабану. Об этом уже много раз говорили. Язык должен предоставлять базовый набор средств пользователям. И без разницы, как этот базовый набор реализуется -- макросами или изменением грамматики.
Ну, вот именно по этому пользователи Ди боятся на нем что-то писать, так как даже сам автор не может обеспечить обратной совместимости. А у того же Немерла работают исходники двух-летней давности. Все потому, что одни меняет синтаксис и семантику, а другие пользуются продуманным средством расширения. Полный аналог этого если бы в языке нельзя было использовать библиотек, а приходилось все в язык хардкодить.
... << RSDN@Home 1.2.0 alpha rev. 672>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
L>>Это такие конструкторы, отвязанные от типа. Они есть, например, в OCaml.
VD>Тогда давай свое определение. А то похоже спор снова о терминх.
Здравствуйте, VladD2, Вы писали:
FR>>Тот же call/cc интересен тем что через него легко реализуются такие вещи которые в языках не подерживающих продолжения можно только хардкорно сделать.
VD>Ну, хотя бы один пример можно привести чтобы он на файберах при этом не воспроизводился и за одно нес хотя бы что-то полезное, а не был бы самоцелью?
Здравствуйте, VladD2, Вы писали:
VD>Ну, начнем с того, в общем-то можно. Смысл нет, но можно. А зкончим тем, что если что-то нельзя, то это что-то просто должно отнаситься к тому самому микроядру. Ну, вот нельзя в микроядерной ОС организовать передачу информации в обход микроядра, ну, так это зе не значит, что сам подход не приемлем. Правда?
В общем-то да можно, пока реально не начнешь делать.
VD>Наши заслуженные демогоги FR & eao197 в очередной раз сделали логический подлог, а вы поддержали их почин.
А наши не менее заслуженые демагоги Вольфхаудн и Влад, ведут себя хуже маленьких детей, даже при самом малейшем сомнении о всемогущести Немерли.
Какой подлог все начлось с маленького невиного и вполне справедливого замечания.
VD>По-моему, они вообще не говорят, а защищают позиции. FR отстаивает све болото. Он не приемлет тот же Немерле по причинам к дизайнерским решениям принятым в языке не относящимся, а Вольфхаунд начав спорить с ним ушел в нервану, забыл о предмете разговора и начал говорить не самые разумные вещи.
Мое болото тут совсем не упоминалось, рассматривали только ваше.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, VoidEx, Вы писали:
VE>>Не смеши, текущими макросами LINQ не сделаешь, хоть убейся, я в курсе почему. Либо другой синтаксис, либо <# #> (что тоже другой синтаксис) или еще какие костыли. Надо систему макросов менять.
VD>Надо будет, поменяем. А ты можещь продолжать жевать, что жевать и заниматься демагогий.
Безкультурья надо стыдиться, а не показывать его то безграмотностью, то хамством.
Я точно так же, как и lomeo прибыл к середине спора и сложилось впечатление, что "на макросах можно все". Стоило уточнить, что не все так гладко в датском королевстве, и что даже LINQ в полном соответствии синтаксиса на текущий момент не реализуется, так такие ответы пошли, как будто я святыню попрал какую. Ну уж извините, ни коим разом не хотел.
Вряд ли это Вас успокоит, но языки с микроядром и метапрограммированием мне тоже нравятся больше, хотя я не могу с уверенностью сказать, что за ними будущее, ибо не Нострадамус, в отличие от пророков Nemerle.
За сим откланяюсь и прошу в таком тоне мне не отвечать.
Советую также перед отправкой сообщения его перечитывать. И ошибки исправляются, и пыл свой можно поубавить по ходу ревизии.
Здравствуйте, WolfHound, Вы писали:
E>>Речь о другом -- по-моему, сопровождать и развивать библиотеку проще, чем язык (пусть даже и DSL). И если язык не предоставляет своим пользователям возможности для своего расширения (а только за счет библиотек функций и классов), то в долгосрочной перспективе это окупается простотой сопровождения, переработки и перехода на другие библиотеки. WH> WH>Я плакал.
Я работаю на проектах, которые были запущены в эксплуатацию раньше, чем появился Nemerle.
Когда кто-то из вас пройдет такой же путь в реальном проекте на Nemerle, тогда и наступит время плакать или смеятся.
WH>3)А можно таки посмотреть на этот самый шаблон memoize?
Я уже давно не программировал на D. Так что не могу удовлетворить твоего любопытства.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
WH>3)А можно таки посмотреть на этот самый шаблон memoize?
Насчет Memoize, его можно сделать вручную и не переписывая исходной функции и на D и на C++ и на шарпе, просто на виртуальных функциях, вот набросок на D:
import std.stdio;
class M0
{
public long fib(long n)
{
if(n < 2) return 1;
return fib(n -1) + fib(n - 2);
}
}
class M1 : M0
{
long m[long];
public long fib(long n)
{
if(n in m) return m[n];
//writefln(n); long r = super.fib(n);
m[n] = r;
return r;
}
}
void main()
{
auto m = new M1;
writefln(m.fib(50));
}
Завернуть это в шаблон или текстовый миксин не сложно.
Здравствуйте, VladD2, Вы писали:
L>>Насколько ленивый код в Немерле быстрее, чем аналогичный ленивый код в Хаскель?
VD>Думаю, что завист от ситуации. Может и не на сколько. Вот то что сам Хаскель порой в 10, 100, а то и в 1000 раз медленнее это факт. А пользователя его не трогает мегакрутость ззыка. Ему ехать надо.
Ну, ты говорил, что сравнивал. Теперь вот даже конкретные цифры привёл.
Вопросы
1. Для каких задач (если можно исходники) Хаскель медленнее в 10, 100 и в 1000 раз? Я так понимаю, что медленнее, чем Немерле, да?
2. Хотелось бы всё таки до конца разобраться с ленивостью в Немерле. Есть ли там strictness analysis наример?
Здравствуйте, VladD2, Вы писали:
L>>Если говорить откровенно, то я этого момента не помню. Напомни, плз, что за конкретные места и что за анализ, для которых нужна генерация кода? Или ссылку дай на сообщение.
VD>Код доступен http://nemerle.org/svn/nemerle/trunk/macros/compiler.n изучай.
Я не знаю ни языка, ни предметной области, мне тяжело читать код.
Можно в двух словах, для каких мест нужна кодогенерация?
L>>А так — да, если обязательно нужна кодогенерация (т.е. язык не может предложить лучшее решение), то макросы рулят. С этим никто не спорит.
VD>Ну, может в некотором проценте случае тот или иной язык предложить не то что бы лучшее, но хоть какое-то решение. И что это основание пользователям других языков говорить о ненужности макросов?
Нет, конечно. Но есть мнение, что в этих языках наличие макроса сигнализирует о том, что в языке нет решения без макросов. Естественного и элегантного, разумеется, иначе его бы не применяли и так.
Здравствуйте, eao197, Вы писали:
AF>>Вероятно, придется делать неуправляемый класс-наследник и обертки для управляемых функций.
E>И после этого вы еще предъявляете какие-то претензии к D?
Честное слово — удивляюсь, как человек с такими проблемами с логикой вообще может работать программистом.
Это один-единственный сценарий интеропа, в котором C++/CLI предлагает примерно такое же плохое решение, как и D. Что может доказать одно исключение? Ничего.
Если ты хочешь реально что-то доказать — приведи список наиболее типичных задач, которые решаются интеропом, и сравни решение для них на D и C++/CLI.
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, eao197, Вы писали:
AF>>>Вероятно, придется делать неуправляемый класс-наследник и обертки для управляемых функций.
E>>И после этого вы еще предъявляете какие-то претензии к D?
AF>Честное слово — удивляюсь, как человек с такими проблемами с логикой вообще может работать программистом.
Одна из самых сложных вещей в программировании -- делать именно то, что нужно заказчику. А логика в этом деле далеко не помошник.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Одна из самых сложных вещей в программировании -- делать именно то, что нужно заказчику. А логика в этом деле далеко не помошник.
Логика — отличный помощник, чтобы подумать и за себя, и за тупого заказчика. Главное, не забыть взять за это деньги.