Я имел в виду, что ооп как парадигма очень редко когда превосходит функциональщину на хаскеле в эффективности. В хаскеле проблемы, решаемые ооп, решаются другими (более простыми и изящными) средствами. Так что ассемблер совсем не тот пример :-)
На мой взгляд, руби не дотягивает до настоящего производного. :-) В смаллталке есть еще много всего кроме того, что имееется из него в руби. Насчет скорости вы конечно правы, замечу лишь, что хаскель не имеет ооп просто потому что в большинстве случаев он совершенно излишен :-)
Руби не полностью ооп. Единственным полностью ооп языком является Smalltalk и его производные. Кстати, ооп реализуем на хаскеле иными средствами, и, как ни странно, ничего не затормаживает :-)
Ну да, компилируемый. А при этом выразительность и простота как у скриптового.
разница в том, что в руби в этом случае (gets) работает c сокетом, а хаскель (lines) со строкой. Т.е. сокеты в хаскеле фактически бессмысленны ;-), и "программировать сокеты" вобще не надо :-)
руби остановит исполнение, пока не прочтет строку. А хаскель "прочтет" весь ввод (на деле ничего не сделав), и можно сразу с ним работать, как будто у нас в памяти уже все что пришло.
очень просто делаешь hGetContents, и получаешь бесконечную строку. Дальше с ней работаешь как с обычной (за исключением того, что до конца докрутить не выйдет). Писать можно такую же строку: например, преобразованный ввод будет такой же ленивой бесконечной строкой.
Все эти подходы (и много других) в их первозданном виде есть в смоллтолке. Фреймворки а зачем их учить при обучении программированию? Фреймворк это всего лишь библиотеки. Намного полезнее знать, что существует иное программирование тогда все эти безумные фреймворки будут не самоцелью, а всего лишь полезным в некоторых случаях инструментом. И осваиваться они будут легче.
Яву, признаю, может и не так страшно давать но давать такое ооп в качестве единственного программирования мягко говоря некорректно.
Если человек будет заниматься "прочей ерундой", он получит несоизмеримый багаж знаний и свободный от предрассудков взгляд на мир программирования. Человек, знакомый со схемой / смоллтолком / хаскелем, например, элементарно сможет писать на яве, с++, python, ruby и т.д. для него это будет практически один язык. А вот обратное неверно. Впрочем, я могу быть не прав насчет обучения детей, я основываюсь не на собственном опыте ;-)
По пункту 2 надо начинать со схемы и постепенно переходить на хаскель. :-) Схему детям понять просто (посмотрите на "The little schemer"), хорошие практики ФП она привьет, а так же отучит от стандартного императивно-оопшного взгляда на мир.
А уж как изучишь хаскель сразу руби и прочие там питоны становятся ерундой :-)
Если очень хочется ооп советую Squeak. ООП там чистейшее, без костылей и специальная среда для детей есть, с виду как лого. На этой же самой среде сделаны некоторые весьма мощные веб-приложения (Seaside)
Про ассемблер я такого сказать не могу. Посмотрите подробнее http://haskell.org/haskellwiki/OOP_vs_ty…
Ну да, компилируемый. А при этом выразительность и простота как у скриптового.
если вас интересуют именно сетевые возможности, советую посмотреть:
http://haskell.org/haskellwiki/Roll_your… , а также:
http://sequence.complete.org/node/257 и
http://sequence.complete.org/node/258
руби остановит исполнение, пока не прочтет строку. А хаскель "прочтет" весь ввод (на деле ничего не сделав), и можно сразу с ним работать, как будто у нас в памяти уже все что пришло.
Насчет производительности хаскель раз в 5-10 быстрее руби (см. http://shootout.alioth.debian.org/gp4/be…)
s - hGetContents sock
hPutStr $ concatMap (\x -> if x == "PING" then "PONG\n" else "") $ lines s
разбиваем ввод на строки, если строка PING, добавляем в выводную строку PONG
(только там <-, а не '-', форматирование тут глючит по-страшному)
Вот в хаскеле, например, из сокета можно сделать ленивую строку настоящее отличие, облегчающее работу. А тут дело в чем не пойму.
Яву, признаю, может и не так страшно давать но давать такое ооп в качестве единственного программирования мягко говоря некорректно.
А уж как изучишь хаскель сразу руби и прочие там питоны становятся ерундой :-)
Если очень хочется ооп советую Squeak. ООП там чистейшее, без костылей и специальная среда для детей есть, с виду как лого. На этой же самой среде сделаны некоторые весьма мощные веб-приложения (Seaside)
Яву и пхп детям не давать ни в коем случае!