On 2009.03.19 at 16:36:52 +0200, Aleksey Cheusov wrote: > > Давай всё-таки не будем игнорировать разницу между утверждениями "99% > > алгоритмов -- императивные" и "1% алгоритмов -- функциональные". > Пардон, между этими утверждениями я разницы не вижу :-) [skip] > Абсолютное большинство проблемно-ориентированных языков, с которыми по > работе (Invention Machine corp.) приходится сталкиваться мне -- > декларативные. Но при этом к функциональщине ни один их них не имеет > никакого отношения. А вот реализация практически всегда проще делается с
И ты по прежнему не видишь разницы? > Учить нужно преимущественно не конкретным ЯП, и не только парадигмам, в > них заложенным. Но еще и правильному дизайну и общей культуре > программирования. И нет, правильный дизайн - это никакой не UML. И Вот-вот. Правильный дизайн - это всегда top down. Чему использование функциональной парадигмы для декомпозиции задачи крайне способствует. > делать это можно с помощью open source. Open Source - это Большая > Школа. И этим можно и нужно было бы воспользоваться, вовлекая студентов > во всякие программы типа SoC (туда и некоторых преподавателей засунуть > не мешало бы :-/). На мой взгляд, Школа - это одна из главных функций > open source, как социального явления. Есть такое дело. К сожалению, на программный код, как и на тексты на естественных языках, распространяется закон Старджона "90% написанного - дерьмо". И если в текстах, как правило, текст либо дерьмо целиком, либо целиком может использоваться в качестве примера если не "как надо", то "как можно", то в софтверных проектах, где, как правило, перемешан вклад многих людей, отделить мед от дегтя куда сложнее. Поэтому я бы не стал рекомендовать учиться путем чтения существующего кода НОВИЧКУ. Это необходимый этап для intermediate и advanced. > Основа основ программирования -- это алгоритм. Функциональная же Вот с этим утверждением - не соглашусь. Алгоритмы - это крайне узкий частный случай программирования. Для большинства real world задач сформулировать алгоритм непросто, да и не нужно. Ну, скажем, какой смысл в формулировке алгоритма интерактивного приложения, например текстового редактора. О да, внутри там, несомненно есть алгоритмические куски, например алгоритм поиска по тексту, алгоритмы вставки и удаления кусков буфера и т.д. Но это - ни разу не уровень новичка. Новичок воспользуется готовыми средствами, которые ему для этого предоставляет язык. Например, той же библиотекой регэкспов. Хитрость тут в том, что для эффективного обучения требуется, чтобы законченный кусок задачи, имеющий практическое применение, был завершен раньше, чем человек устанет и потеряет мотивацию. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

