>Я в истории не силен, но судя по всему, все-таки фортран старее. Возможно, я не был уверен)
>Во! Я кажется начинаю понимать суть проблемы :) Вы пытаетесь применить ФОП
>ко всему подряд. Это и вызывает утверждение, что ФЯ потребляет больше
>ресурсов.
Нет, пока не пытаюсь, а утверждение что ФЯ потребляет больше ресурсов было почерпнуто из литературы и принято, каюсь, на веру.
>Алгоритмы? Хм.. Ну что-нибудь алгебраическое...
Алгебраическое - это формулы) Для них ФЯ - естественный выбор.
>Просто на ФЯ каждое дополнительное "хочу" прибавляет расход памяти, не сопоставимый с
>решаемой задачей. Кроме того, потребуется несопоставимо больше переделывать с каждым "хочу"
>(хотя здесь могу ошибаться, не силен).
И то и другие - непонятно, почему.
>И уж точно последнее "хочу
>график динамики продаж в реальном времени" убивает всю идею использования ФЯ,
>ибо циклы не предусмотренны парадигмой. А бесконечный цикл, реализованный рекурсией, как
>не сложно догадаться убивает машину, на которой запускается.
Так рекурсия разворачивается в цикл, см. ниже..
>А STL -- плод весьма больного воображения наших соотечественников. Причем, не первый,
>который оказался весьма удачным. Вообще, идеалогия шаблонов в принципе это попытка
>уйти от строгой типизации данных, сохранив ее. Мне кажется, удачная попытка
>для первого раза.
Я не понял, Вы STL тут похвалили или нет? Что касается строгой типизации данных, то модель типизации Хиндли-Милнера, безусловно, удачнее. Да и старее)
>Они компил-тайм в текущей реализации.
Так а мы о потреблении памяти в какой реализации говорили, будущей? Впрочем, это несущественный момент.
>Ну и раз уж зашла речь о кривизне, можно поинтересоваться, а что
>Вы посоветуете использовать вместо шаблонов?
Ну нет, так далеко я в своем нигилизме не зашел) Я конечно признаю, что это, зачастую, необходимый инструмент для программиста на С++. Потому что другой простой возможности "уйти от строгой типизации сохранив ее" для программиста С++ нет. Тем не менее протез протезом и останется.
>И вообще, для начала давайте определимся,
>понимаете ли Вы всю широту решаемых с помощью шаблонов задач? Вы
>знаете, что шаблоны могут быть рекурсивными? Вы знаете, что с помощью
>шаблонов можно вычислить факториал, например (это из книжки про шаблоны)?
Да, да, читал я Ваши "книжки про шаблоны", честно. Я помню каким культурным шоком было для меня чтение Мейерса, Александреску, копание в исходниках boost и loki. Я действительно считал С++ великим языком. А потом было просветление, когда оказалось, что на свете есть языки программирования, которые могут то же самое, но без этих evil mind tricks. Более того, оказалось что теперь, с новым знанием, эти трюки оказались возможны да почти на любом языке программирования, я для тренировки даже реализовал синтаксически-естественные лямбда-функции, list comprehensions и определения функций через сопоставления с образцом на, прошу прощения, Delphi, без всяких шаблонов (правда, признаю, и без сохранения компайл-тайм типизации). Я не призываю Вас следовать за мной по этому пути, но давайте не будем считать шаблонные извращения чем-то эзотерическим и массовому пониманию недоступным.
>но когда привык
>к мышлению в стиле ООП стало легко и просто. И многих
>вещей из С++ мне сейчас нехватает, ибо занимаюсь другими вещами.
Я не оспариваю мощь ООП, но причем тут С++? кроме множественного наследования, все остальное реализовано в каждом втором языке, а каких-то вещей в С++ не хватает (сходу вспоминаются метаклассы и виртуальные конструкторы, может если подумать еще что-то можно вспомнить, но не суть). Ну а что нравится язык - так и хорошо, всегда приятней писать на языке который по душе.
>Будем считать, что как защитник ФОП Вы сморозили глупость :) Ибо как
>защитник Вы должны отстаивать идеалы ФОП, а не перекладывать на компилятор
>более оптимальную реализацию на процедурном языке.
Почему это я должен? На низком уровне мы все равно имеем дело с конечным автоматом, так что к императивности все равно придется переходить. То что рекурсия переводится в цикл, это совершенно естественно. Нет, я как раз двумя руками за то чтобы переложить заботу об оптимизации с программиста на компилятор.
И никакой я не защитник ФЯ, я скорее вступился за идеи высказанные в комментируемой статье.
>Если все-таки это нетак, так чего бы сразу не написать цикл и
>не ломать голову?
Да вспомните классический пример - реализацию быстрой сортировки в одну-две строки на любом ФЯ.. Разве это не убедительный аргумент в пользу того чтоб не ломать голову циклами?)
>Я вот не пойму, это сарказм? Если да, то напрасно. Вы не
>поверите, но во многих библиотеках (больших и толстых) определены классы для
>всех типов данных, включая примитивные. Но это не для строгого соблюдения,
>а для удобства.
Сарказм, да. И, кстати, С++ в этом не одинок. Таких больших библиотек куча для большинства императивных нединамических языков, которые думают, что они ООП. По каждому поводу и без повода - пытаются все обобщить, будь то сериализация, RPC, RTTI, etc.. С разной степенью успешности. И каждый язык использует для этого свои козыри, свою мощь.. С++ - шаблоны, Delphi - RTTI..
>:) Можно я вместо ответа на эту часть личный вопрос задам? Можете
>не отвечать, но мне просто интересно. Вы ведь не участвовали в
>крупных коммерческих проектах на С++.
В коммерческих на С++ - да, в относительно крупных - да, в крупных коммерческих на С++ - нет.
По поводу кривой реализации шаблонов - ну во-первых пристойная поддержка компиляторами появилась относительно недавно, до этого чуть что - сразу айс, во-вторых я все-таки даже не это имел в виду, а то о чем уже выше было сказано, что шаблоны - это костыли, впрочем по Вашему выражению "удачные" (относительно чего? относительно их отсутствия? тогда да.)
Что до множественного наследования, то его и без меня немало критикуют, не буду распространяться.
>либо Вы научный
>работник (аспирант, например), либо инженер AutoCAD. Я прав?
Не прав.. Да и в ФЯ не особо хорошо ориентируюсь, вон jtootf написал комментарии - видно что ориентируется, а я так, учусь.
Предлагаю заканчивать, было очень интересно, спасибо, но мы явно уже сказали друг другу все что хотели, я так уже точно начал повторяться)