Здравствуйте, BulatZiganshin, Вы писали:
BZ>все возможности *яызка* Смоллток в руби есть.
+1 Даже больше. Но действитльно языки одного направления, хотя Руби вроде дрался с Перла.
BZ> правда, изменилась терминоллогия, и главное — нет той замечательной среды. ведь это же была первая IDE в мире! и до сих пор, как я понимаю, нет ни одной среды, где было бы так легко работать со структурой классов и проверять, что возвратят те или иные методы
Сполток конечно обладал первой IDE, но на сегодня IDE Явы и Шрпа намного мощьнее. Тут ты не прав. И причина тут в том, что для этих языков доступна полная информация о типах. Кстати, для Хаскеля хорошую IDE сделать можно, хотя язык имеет плохие особенности вроде уникальных идентификаторов (из-за выбранной системы типов и уращения клгоритма вывода типов), что весма странно будет выглядить в современном мире. А у Руби и Смолтока их динамическая типизация приводитк к серьезным ограничениям.
BZ>C# же, как и Delphi — язык чисто практический, я лично в нём ничего концептуального не вижу.
В них выражены все концепции ООП. Причем используется система типов основанная на классах, то есть так что родилась в Симуле. Смоток и Риби пошли своим путем. Лично мне он не нравится. Но в любом случае достаточно одного представителя этого направления — Руби. Теболее что Руби на мой взгляд более интересный язык.
BZ> и вообще, на мой взгляд, изучать ФП надо с...
А причем тут ФП? У тебя случае мунктика на нем нет? В списке били и Хаскель, и Схема. Вот на них пусть ФП и изучается.
BZ> наиболее теоретичсеких, удобных в программировании, но неэффективных (пролог, хаскел),
С каких пор Пролог стал ФЯ?
BZ> и далее спускать к более практичным, но сложным в использовании языкам. и заканчивать на C#, яве или чём-то ещё, что будет реально использоваться. языки более низкого уровня, типа C++, изучать необязательно — разве что чтобы понять, как функционирует процессор, да и это начинающему ни к чему
А я так не считаю. Как раз я бы сначала познакомил людей с выражениями, потом с основами процедурного программировнаи, а потом бы уже давал бы ФП и ООП как его расширения (заужение). На мой взгляд так будет проще донести до людей эти идеии. Возможно даже вначале показывать сам подход в виде паттернов, а потом показывать соотвествующие языковые конструкции.
Что касается языка, то я бы как раз выделил на роль первого языка Немерле или Руби. Руби я бы посоветовал тем учетилям которые считают, что вначале людям не надо морочить голову с типизацией, а Немерле тем кто считает, что типизация важнеший аспект. Ну, и по той причине, что на немерле можно показать практически все приемы кроме разве что ЛП.
BZ>такой подход научит человека мыслить на наиболее высоком возможном уровне — ведь здесь важно, с чего ты начнёшь.
Твой подход привьет человеку конкретный образ мышления и осложнит восприятие других парадигм. Точно так же плохо давать в начале ООП, а потом пытаться обучить ФП. В обоих случаях будет отторжение второй парадигмы и ломка. Особенно это актуально для ФП, так как литература по нему полное дерьмо. Вообще удивительно как казалось бы стольк умные люди придумавшие все это так бездарны в писательстве! Ну, да это отдельная тема.
В общем, я виду к тому, что ООП и ФП надо давать параллельно и обязательно как развите стурктурного программирования.
BZ> если первым яхзыком будет бейсик, то он для человека станет "родным", и дальше все новые концепции будут перекладываться на его "архитектуру"
Забавно, что ты заметил, что первый язык привязывает к образу мышления. Стало быть твое предложение сделать ФП первым в изучении ни что иное как попытка привязать программирование к нему. На мой взгляд это ошибка.
Бэйсик же бывает разным. Бывает 70-ых годов с жудчащими goto вместо функций. А бывает VB.NET почти не отличающийся от C#. В прочем VB.NET — это ООЯ, что опять же привяжет к ООП. Что плохо.
А вот как средство изучения структурного программирования Васик довольно хорош. Так чта... а пуркуа бы собственно не па?
Я вот первым языком учил С. И особых проблем не вознкло. ФП крышу рвал по началу, но только от того что писатели пытающиеся его объснить были бездарностями.
Кстати, ООП я освоил на раз. И уверен, что это произошло так легко потому, что я сначала испытал в нем потребность, а затем прочел о нем. Я в 93-ем писал программу выводящую окна на экран и после первого лобового опыта стал задумываться как бы это дело реализовать. Патом я стал читать книжку про Виндвс и восхищался идеями сообщений и окон. Далее я изобразил что-то подобное на структурах и указателях на фукнции. Ну, а потом я уже читалш про С++ и мне все казалось логичным и стройным.
Уверен, что именно так надо преподносить знания в учебных заведениях. То есть:
1. Базовые знания.
2. Постановка задачи хорошо решающеся с помощью некого подхода.
3. Решение в лоб.
4. Анализ проблем.
5. Теоритический рассказ о подходе.
6. Решение задачи с помощью паттерна.
7. Демонстрация встроенных средств языка.
8. Анализ приемуществ встронных средств языка над использованием паттерна.
Уверен, что при таком подходе крышу сносить не будет.
Так что продаю идею.

... << RSDN@Home 1.2.0 alpha rev. 637>>