Re[31]: Сложный язык для сложных срограмм.
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.02.07 05:56
Оценка: +1
Здравствуйте, BulatZiganshin, Вы писали:

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


Интересный вопрос. К сожалению, чем сожнее задача, тем более выскоуровневыми концепциями нужно оперировать чтьбы описать или понять задачу. Но всему есть предел и иногда количество концепция растет просто в силу сложности задач. Хотя возможно это есть недостаток инструмента и/или проектировщика.

Но однозначно, что чем меньшим объемом надо владеть, тем лучше. Но как говорил, Энштеин — ... но не меньше.

BZ>тогда получится, что функциональный подход выигрывает потому, что вместо нескольких переменных, описывающих обработку, можно ввести одну функцию, которая её осуществляет, к примеру вместо x*a+b ввести функцию f = (+b).(*a) и дальше думать только об "f x"


Это заблуждение. ФП иногда дает хорошие результаты, а иногда не очень. Иногда ООП позволяет описать концепции на очень высоком уровне и тем самым уменьшить количество сущностей которыми надо оперировать.

Мое мнение заключается в том, что ФП, ООП, МП (метапрограммирование), и ЛП (логическое программирование) — это сопособы решения задач которые лучше или хуже подходят в тех или иных случаях. А раз так, то хорошо бы иметь возможность применять их все в рамках одного языка. Да это резко увеличивает набор базовых концепций которыми надо владеть программисту, но это же одновременно позволяет ему выбрать лучшую абстракцию в конкретном случае и уменьшимть то самое количество сущностей в конретной задаче.

BZ>ООП подход выигрывает потому, что вместо набора отдельных процедур, которые осуществоляют обработку данных независимо друг от друга, мы имеем дело с более общей единицей — объектом, и думаём о его поведении в целом


+1

BZ>"обработка волной" в стиле unix и функциональных языков выигрывает потому, что мы каждый раз думаем только об одном промежуточном результате обработки, а не пытаемся рассматривать её глобально целиком. скажем, идиому "sort|uniq|sort" понять куда проще, чем императивную программу, выполняющую все эти действия за раз. юникс ведь потому и стал популярен, что позволил решать задачи обработки текста без создания сложных программ на С


Когда как. Опять же sort|uniq|sort можно записать как sort.()uniq.()sort.() и это будет просто применением процедурного подхода в ООП.

В общем, главное абстракция, а не то где или какими способами она достигается.

Кстати, мой опыт подсказывает мне, что ФП лучше подходит для реализации алгоритмов, а ООП для декомпозиции на уровне прилоежений. Причем объекты могут использоваться в функциональных вычислениях, и наоборот функциональные вычисления могут использоваться для реализации методов объектов. В общем, они взаимодополняют друг-друга, а никак не противоречат друг другу. Просто проблема С++ (C#, Java и т.п.) в том, что эти языки (и их поклонники) обделены фукнциональными средствами (кстати в C# ситуация меняется к лучшему). И проблема Хаскеля (МЛ, Миринды...) в том что эти языки обделены полноценным императивноым программированием и ООП-ом.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Сложный язык для сложных срограмм.
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.02.07 05:56
Оценка: :)
Здравствуйте, dr.Chaos, Вы писали:

DC>Короче, прекратим этот спор, т.к. я сомневаюсь что это прокатит в указанных мной случаях. Ты же не имея опыта работы с движками тоже не можешь утверждать. Но все таки я склоняюсь к мнению Cyberaxe здесь
Автор: Cyberax
Дата: 06.02.07
.


Я имею опыт написания быстрых программ на разных языках. В отличии от вас с Cyberax-ом.
Спор же действительно бессысленнен, так с верой спорить нельзя. А ваша вера в С++ носит чисто реалигиозный характер.

DC>Я не намерен дальше продолжать этот спор. В итоге хочу сказать, что не смотря на все преимущества (более мощную поддержку метапрограммирования) С++ все равно остается неплохим инструментом и не фиг его хаять.


Да, как каменный топор.

DC>"Где та молодая шпана, что сотрет нас с лица земли" © Чайф


Где тот Чайф?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Сложный язык для сложных срограмм.
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.02.07 05:56
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

VD>>А зачем интерпретирвемый?


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


Вообще-то речь шла о "скриптах" для игр. Они точно ничего похожего со скриптами исполняющимися один раз в сто лет не имеют.

VD>>У ОКамла проблемы с черезмерной строгостью и статиченостью


BZ>в хаскеле это становится проблемой только при динамичсеколй передаче управлени (exceptions) и наверно ещё при динамичсекой подгрузке кода.


Это и есть главная их проблема. Но у ОКамла они еще более явные. Там просто приведение типов или передача ссылок уже проблема.

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


Ага. Но современный софт не мыслим без динамики. Лично я не буду использовать язык не позволяющий мне создать плагин или исползовать дизайнер форм.

VD>>Компонентность он поддерживает хуже чем С++.


BZ>почему это? в нём даже функторы есть, говорят мощнейшая штука


Фанкторы из другой оперы. Из оперы компонентности CreaeceInstance(строковоеИмяТипа) и приведение типов, скажем к интерфейсам.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[28]: Сложный язык для сложных срограмм.
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.02.07 05:56
Оценка:
Здравствуйте, cl-user, Вы писали:

CU>Хм, а на этом "убийце скриптов" можно не перезапускать основную программу после изменения отдельного маленького компонента, а просто указать, что если "скриптик" Х изменился после последней его загрузки — загрузить его заново?


Можно.

CU> И что для этого понадобится включить в эту программу — весь framework языка или маленькую dll-ку интерпретатора?


Можно маленький фрэймвор языка, а не большую длл-ку интерпретатора.
В общем, не надо демагогии. Игры занимают целые ДВД. Многие из них ставят дотент просто ради мелких утилит (вспоминаем хафлайф). Никаких проблем включить в его состав 20 метров рантайма (да хоть сто) нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: Сложный язык для сложных срограмм.
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.02.07 06:10
Оценка:
Здравствуйте, eugene0, Вы писали:

E>Самообразование — это правильно. Вот только дочитаю вон тот томик по теории алгоритмов, и непременно возьмусь за Немерле. Или за Хаскель. Или еще за что-нибудь


Ясно. С этого надо было и начинать. А то я то его дочитал еще 7 лет назад. И вот пристаю к занятым людям.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[30]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 07:14
Оценка: 9 (1)
VD>>>У ОКамла проблемы с черезмерной строгостью и статиченостью

BZ>>в хаскеле это становится проблемой только при динамичсеколй передаче управлени (exceptions) и наверно ещё при динамичсекой подгрузке кода.


VD>Это и есть главная их проблема. Но у ОКамла они еще более явные. Там просто приведение типов или передача ссылок уже проблема.


ну если динамическая типизация в обработчиках прерываний — главная проблема языка, то он вообще идеален

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


hsplugin есть, есть даже ghc-as-a-library. как это устроено — я не в курсе

кстати, и строки-как-массивы есть и даже включены в состав ghc 6.6: http://www.cse.unsw.edu.au/~dons/papers/fusion.pdf

при этом они ленивы, но поблочно — каждый блок в 4к символов вычисляется отдельно. так что получается дёшево и сердито плюс они обещают loop fusion, т.е. развёртывание операций типа тех, что я написал, в эффективный императивный код, но я не уверен, что это уже реально работает

ну и ещё одна статья насчёт оптимизации, на этот раз вычислений над массивами:
http://www.cse.unsw.edu.au/~chak/papers/afp-arrays.ps.gz
Люди, я люблю вас! Будьте бдительны!!!
Re[32]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 07:18
Оценка:
BZ>>интересная мысль. что если ясность можно измерить кол-вом концепций, которые человек должен помнить одномоментно?

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


ключевое слово здесмь — одномоментно. к примеру, почему советуют разьбивать функции на меньшие? общее кол-во концепций от этого не умеьшится, но в каждой подфункции их остаётся меньше. я специально брал функции с многими обрабатываемыми данными, разюбивал их на части, которым приходилось передавать много аргументов, и программа от этого становилась понятней

ну а дальше в дело вступает системный подход — т.е. ты аккуратно дробишь на каждом уровне концепцию на 7+-2 подконцепций

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


VD>Кстати, мой опыт подсказывает мне, что ФП лучше подходит для реализации алгоритмов, а ООП для декомпозиции на уровне прилоежений.


ну тогда получается ООД+ФП, верно? надо срочно писать книгу о паттернах ООД+ФП, пока другие место не застолюбили
Люди, я люблю вас! Будьте бдительны!!!
Re[32]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 07:53
Оценка:
BZ>>я например вполне поддерживаю Влада в том, что Немерле быстрее хаскела, и в свою очередь языки с нативной компиляцией вероятно быстрее байткодовых

VD>Вобще-то Хаскель как раз компилируется в нэйтив-код. Я ошибаюсь?

VD>Байтод же дотнета никогда не исполняется в режиме интерпретации. Он всегда компилируется.
VD>Так что если разница есть, то она определяется не байткодом, а другими вещами.

ghc компилируется в натив, однако ленивые вычисления и ужаснейший кодогенератор не дают ему сколь-либо развернуться. а вот если взять ocaml (и даже clean с императивным кодом), то они близки к gcc. что касается байт-кода, то во-первых трудно противостоять таким монстрам, как gcc/icl, а уж тем более трудно это сделать, когда компиляция идёт через промежуточный этап, на котором теряется большая часть семантической информации. далее — языки типа c#/немерле/явы имеют более высокоуровневую модель, которая закономерно выливается в более медленный код. ну к примеру, данные всегда boxed. если же использовать unmanaged расширения этих языков, то никакого выигрыша в лёгкости программирования ты не получаешь


BZ>>вопрос "если наш язык так крут, почему же его никто не использует?" в сообществах small языков возникают куда чаще, чем здесь есть даже статья об этом профессора Вадлера, одного из авторов Haskell и generic Java. если кратко, то дело (помимо объективных свойств самого языка) в *инфораструктуре*: библиотеках, средствах разработки, книгах, обучении и в конечном счёте подготовленных специалистах


VD>Все это действительно влияет на популярность языка. Но разные Вадлеры, на мой взгляд, очень глубого заблуждаютя если считают эти факторы определяющими. Намного важнее интуитивность, привычность и применимость на практике. Так вот языки типа Хаскеля неинтуитивны, непривычны и очень плохохо применимы на практике. А перечисленное тобой — это всего лишь объяснение того почему они не применимы на парктике. Но неинтуитивность и непонятность куда важнее. Но тут уже Валдеры становятся Блаб-ами. Они смотрят на других со своей точки зрения и не хотят принять в рассчет точку зрения других.


VD>С обучением вообще "труба". Все что я пробовал читать по ФП никода не годится. Это писанина сумашедших ученых погрязщих в теоритическом булшите. Их труды скорее способны отбить желание изучать предмет.


VD>Тут нужна литература столь же доступная как труд Кхернигана. Уверен, что успех С во многом определяется его книгой.


мне нечего добавить, кроме того, что "Вадлеров" (это вообще-то самый известный человек в FP) ты обидел незаслуженно я (и не один я, конечно) пишу потихоньку статьи, объясняющие тонкости хаскела, которые я сам успел понять и вообще, весь сайт haskell.org (а он сплощь wikified) — это набор таких статей. сейчас многие мечтают о двух книгах — "advanced haskell" и "haskell in real world" (да, и ещё haskell cookbook), но пока что реальных подвижек в эту сторону не видно. ну а для начинающих литературы достаточно, им не обязательно читать научные статьи. загляни на http://www.haskell.org/haskellwiki/Learning_Haskell


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


VD>Вопрос отладчиков, библиотек и IDE очень важен. И его надо решать. Это один из фаторо останавливающих программистов в изучении и применении новых языков. После Дельфи, ИДЕИ и VS 2005 мало кто захочет писать код в нотпэдах или даже в Вимах и Емаксах.


кстати, хорошо что напомнил. Visual Haskell (надстройка над VS) есть. она использует для компиляции ghc, т.е. интеграции во фреймворк нет. но по крайней мере intellisense работает. интерактивный отладчик в ghci уже появился, может через год-два он будет и в VH представлен

кстати, если здесь есть студенты — в google SoC на хаскеле можно заработать также, как и на других языках/проектах
Люди, я люблю вас! Будьте бдительны!!!
Re[33]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 08:00
Оценка:
BZ>>меня как-то на C# приглашали только потому, что я хаскел знаю. в history of haskell самая понравившшаяся мне фраза — представителя одной из коммереских фирм: "мы обнаружили, что поиск специалистов по хаскелу — это просто способ найти наиболее грамотных и талантливых программистов".

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


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


разумеется вообще, я бы с удовольствием сам написал введение в хаскел, но не потяну по времени но и в тех книгах, которые есть, за исключением попыток мимоходом объяснить сложные концепции, типа cps и монад, ничего сложного нету. почитай yaht или gentle
Люди, я люблю вас! Будьте бдительны!!!
Re[28]: Сложный язык для сложных срограмм.
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.02.07 10:21
Оценка:
Здравствуйте, Alexmoon, Вы писали:

Удивительное дело — написал кучу текста, в котором 0 слов относится к предмету разговора. Знаешь как это называется? Врочем, этого и следовало ожидать.
... << RSDN@Home 1.2.0 alpha rev. 673 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[34]: Сложный язык для сложных срограмм.
От: Denis2005 Россия  
Дата: 10.02.07 10:58
Оценка: :))) :)
Здравствуйте, eao197, Вы писали:

E> Даже переход от процедурного к объектно-ориентированному стилю не требует такого сдвига в способе мышления.


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

Раньше такой эффект можно было наблюдать столкнувшись
с индивидом находящимся в процессе изучении LISP, Forth ...
Теперь это сплошь и рядом, особенно после появления Nemerle
(как ни крути, ФП его корневая парадигма).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[40]: Сложный язык для сложных срограмм.
От: WolfHound  
Дата: 10.02.07 11:00
Оценка:
Здравствуйте, Alexmoon, Вы писали:

A>1. Если он мне нужен для перемещения по памяти занимаемой объектом с более глобальной областью видимости, то о каком освобождении идет речь. Ежели я выделяю под него память и при этом я не имею 100% уверенности что после выделения, до достижения точки присвоения не возникнет исключения, я ставлю перехватчик обязательно в области видимости указателя и как минимум ставлю фильтр на выброс всех описанных спецификацией исключений, алгоритмами выделения. И в зависимости от того где было перехвачено исключение я делаю соответствующие выводы. Все остальное — ошибка программиста, may be. Мог конечно что то и упустить при беглом описании. Не статья, чтобы над ней работать, но суть реализации такова. Я думаю всегда, даже когда знаю что делаю. Это помогает мне не напрягаться отсутствием элементарного внимания в некоторых случаях.

А я в таких случаях использую умные указатели с разрушающим копированием. Типа std::auto_ptr.
Те я просто выделяю память и передаю ее на сохранение такому смартпоинтеру. При помещение в контейнер или возврате из функции владение просто передается. А если будет исключение или что-то другое то память будет освобождена.
ИМХО это гораздо лучше чем постоянно следить за исключениями которые могут появится при будущих рефакторингах.
Обработчики исключений я ставлю только там где могу эти исключения обработать, а не там где выделяю ресурсы. Ибо с ресурсами и смартпоинтеры прекрасно справятся.
Спецификации исключений не использую вобще. Ибо толку никакого, а под ногами путуются.

И вобще если что-то может сделать компилятор то это должен делать компилятор.
Ибо мне нужно задачу решать, а не обработчики исключений для освобождения памяти прописывать.
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[35]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 11:05
Оценка:
D>Следует отменить, что переход ООП -> ФП у некоторых индивидов способен
D>спровоцировать легкий (обратимый) сдвиг по фазе.
D>а). Отмечаются навязчивые состояния с хаотичными всплесками агрессии.
D>б). Существенно возрастает мания величия. Индивиду кажется, что он наконец
D>"прозрел" и очень близко подобрался к "истине".

... и тут он кричит "эврика!" и голым выбегает на улицу. способностью делать открытия человек и отличается от животных, isn't?
Люди, я люблю вас! Будьте бдительны!!!
Re[36]: Сложный язык для сложных срограмм.
От: Denis2005 Россия  
Дата: 10.02.07 11:12
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

D>>Следует отменить, что переход ООП -> ФП у некоторых индивидов способен

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

BZ>... и тут он кричит "эврика!" и голым выбегает на улицу. способностью делать открытия человек и отличается от животных, isn't?


Вы заметили в моем сообщении выделенное слово?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[37]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 11:21
Оценка:
Здравствуйте, Denis2005, Вы писали:

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


D>>>Следует отменить, что переход ООП -> ФП у некоторых индивидов способен

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

BZ>>... и тут он кричит "эврика!" и голым выбегает на улицу. способностью делать открытия человек и отличается от животных, isn't?


D>Вы заметили в моем сообщении выделенное слово?


а вы не задумывались, что всё что вы знаете, когда-то было открыто такими "некоторыми" индивидами?
Люди, я люблю вас! Будьте бдительны!!!
Re[38]: Сложный язык для сложных срограмм.
От: Denis2005 Россия  
Дата: 10.02.07 11:35
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

D>>Вы заметили в моем сообщении выделенное слово?


BZ>а вы не задумывались, что всё что вы знаете, когда-то было открыто такими "некоторыми" индивидами?


Это не столь частый случай (оставим историю в покое).
У многих людей процесс познавания чего-то нового протекает спокойно и естественно.
Например, когда я изучал (открывал для себя) ФП посредством языка LISP
(хотя через этот язык я еще много чего познал помимо ФП), то не занимался
его агитацией на каждом углу и регулярными постингами на форумах формата A4,
которые по своей сути содержат смысловую нагрузку не более чем “ФП — это реально круто!”.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[39]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 11:38
Оценка: :)))
BZ>>а вы не задумывались, что всё что вы знаете, когда-то было открыто такими "некоторыми" индивидами?

D>Это не столь частый случай (оставим историю в покое).

D>У многих людей процесс познавания чего-то нового протекает спокойно и естественно.

я это привёл для того, чтобы вы *поняли* состояние Влада. ведь понять — значит простить
Люди, я люблю вас! Будьте бдительны!!!
Re[33]: Сложный язык для сложных срограмм.
От: Turtle.BAZON.Group  
Дата: 10.02.07 11:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Сохраняешь в файл Janus.exe.manifest и кладешь рядом с экзешником. Только он и так должен быть по идее.


Он и есть. Может, он не совсем под win2k? А то глюки при отрисовке...
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[21]: Сложный язык для сложных срограмм.
От: Андрей Хропов Россия  
Дата: 10.02.07 12:08
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Такие языки как C# или Nemerle с такой задачей справятся великолпно.

Если в своп глубокий не уйдут

VD>Да что там они. Вот погляди:

VD>http://www.haskell.org/haskellwiki/Frag
VD>это Ку3 написанный на Хаскеле!

VD>А Хаскель — это очень медленно.

Кто тебе это сказал?

Haskell vs C++
Haskell vs Java

То есть конечно помедленее чем C++ раза в 2-3, но в целом нормально (лучше чем любой скрипт).

DC>>MC там представлен я не сомневаюсь, только MC не производитель движков.


VD>Да? А кто по твоему MS Flight Simulator делает?

VD>А Эдж Оф Эмпаир под чьим крылом? К тому же они делают главную штуковину DirectX, XNA и драверы для видео. Так что они точно знают что нужно разработчикам игр.

Они точно знают что нужно им для того чтобы побольше заработать на разработчиках игр .

P.S. Меня уже давно раздражает что MS пытается быть всем для всех (и ОС, и игры, и офис, и ERP, и КПК, и средства разработки). Куда антимонопольный комитет США смотрит ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[22]: Сложный язык для сложных срограмм.
От: BulatZiganshin  
Дата: 10.02.07 12:53
Оценка: +2 :)
VD>>А Хаскель — это очень медленно.
АХ> Кто тебе это сказал?

АХ>Haskell vs C++

АХ>Haskell vs Java

АХ>То есть конечно помедленее чем C++ раза в 2-3, но в целом нормально (лучше чем любой скрипт).


бывает ложь маленькая, ложь большая и бенчмарки

первое — большая часть этих тестов порверяет скорость библиотек, а не генерируемого кода. и при этом стоит ограничение — использовать можно только бибилиотеки, идущие в комплекте с компилятором. BOOST например с gcc не идёт, так что сравниваем мы ежа с ужом

второе — среди этих тестов есть всё же 2-3, проверяющих кодогенерацию. но если посмотреть на реализацию этих задач на хаскеле, то можно увидеть, что они используют императивный никзоуровневый подход, а не ленивые вычисления. или ещё лучше — в библиотеку ghc внесены функции, которые необходимы только для этих тестов. вот более реальные данные:

http://www.cse.unsw.edu.au/~chak/papers/afp-arrays.ps.gz
http://www.cse.unsw.edu.au/~dons/papers/fusion.pdf

правда, из них тоже не надо делать вывод, что всё ровно в 700 раз медленней. по моему опыту, на прикладнине можно рассчитывать на падение скорости в 3-10 раз, за счёт того, что используются сишные бибилиотеки, сишные OS calls, и при желании критичную часть кода можно переписать в императивном стиле или на С

ps: и даже тесты, проверяюбщие кодогенерацию, сделаны дубово, поскольку многие из них ограничены скоростью работы памяти! что за бардак...


АХ>P.S. Меня уже давно раздражает что MS пытается быть всем для всех (и ОС, и игры, и офис, и ERP, и КПК, и средства разработки). Куда антимонопольный комитет США смотрит ?


меня лчино это не раздражает, но экономику жалко. монополизм MS имхо тормозит развитие отрасли. например, главная причина выпуска NET, на мой взгляд — стремление привязать разработчиков к одной платформе и отучить их писать переносимый софт, что уже было начало получаться с явой. если бы существовала реальная конкуренция, то уже давно появились бы две-три фирмы с нормальными IDE под яву. а в нынешней ситуации их делать смысла нет
Люди, я люблю вас! Будьте бдительны!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.