Здравствуйте, Курилка, Вы писали:
К>В заметке на Lambda the Ultimate пишут, что MIT переводит свои вводные курсы по программированию со схемы на Python , чтобы, среди прочего,
К>
К>to better prepare students for graduate school or real-world design challenges
Здравствуйте, Курилка, Вы писали:
К>В заметке на Lambda the Ultimate пишут, что MIT переводит свои вводные курсы по программированию со схемы на Python , чтобы, среди прочего,
К>
К>to better prepare students for graduate school or real-world design challenges
Проглесс! Еще 256 ведер и... Ну, думаю, что все и так все поняли.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VladD2 wrote: > К>to better prepare students for graduate school or real-world design > challenges > Проглесс! Еще 256 ведер и... Ну, думаю, что все и так все поняли.
Может добавить специальную функцию в этот форум — отметку "VladD2
прочел, вы сами все знаете."?
Здравствуйте, Cyberax, Вы писали:
C>VladD2 wrote: >> К>to better prepare students for graduate school or real-world design >> challenges >> Проглесс! Еще 256 ведер и... Ну, думаю, что все и так все поняли. C>Может добавить специальную функцию в этот форум — отметку "VladD2 C>прочел, вы сами все знаете."?
VladD2 в этом смысле вообще — 2002г. — знаток вёдер
И вообще в MIT же знают наверняка про Nemerle, а перешли на Пайтон, да. Это не спроста
Кстати насколько я помню(по книге SICP) программирование на вводных курсах в MIT читается не только программистам, а не для программистов ИМХО целесообразнее изучать Пайтон, хотя это только слова.
Здравствуйте, Didro, Вы писали:
D>И вообще в MIT же знают наверняка про Nemerle, а перешли на Пайтон, да. Это не спроста
Скорее всего не знают. Даже создатели самого близкого языка (Scala) не слишком в курсе: здесь.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Андрей Хропов, Вы писали:
АХ>>Это только на RSDN о нем много говорят.
E>Причем одни и те же люди. И их не много.
Для исследовательского проекта много и не нужно. Зато нужно рассказать о тех удачных идеях, которые встретились при реализации, как можно большему числу людей. Именно это мы и наблюдаем в случае с Немерле.
Андрей Хропов,
D>>И вообще в MIT же знают наверняка про Nemerle, а перешли на Пайтон, да. Это не спроста АХ>Скорее всего не знают. Даже создатели самого близкого языка (Scala) не слишком в курсе: АХ>здесь.
Да в общем-то тут дело не в количестве языков. Тот же Дэниел мгновенно разобрался с концепцией макросов в Немерле. Я больше чем уверен, если Мартину, (или Москалю, или Армстронгу, или Хейлсбергу, или может быть даже Страуструпу — то есть любому достаточно высококвалифицированному computer scientist'у) сказать "язык содержит textual macros", то у него сразу выстроятся в голове достаточно подробная картина того, что скорее всего будет в языке, чего скорее всего не будет, какие будут достоинства и какие недостатки.
Так что знакомство преподавателей с новым языком вряд ли чего изменит в учебном процессе. Данное изменение курса скорее всего (как я понял из прочитанного) стало реакцией на изменившиеся внешние условия. А Питон оказался более подходящим под новый формат курса.
На самом деле, мне очень интересно, как будет выглядеть 7я "магическая" лекция (про EVAL и APPLY).
Андрей Хропов,
LCR>>Так что знакомство преподавателей с новым языком вряд ли чего изменит в учебном процессе.
АХ>Зависит от языка. Но я и не утверждал что они, узнав о Немерле, должны были бы думать о переходе на него.
Я понял контекст как "преподаватели из МИТ перешли на Питон, а не на более мощный Немерле потому что скорее всего не знают о последнем". С тем, что они скорее всего не знают именно о Немерле — соглашусь. Но я ещё сделал маленький (напрашивающийся) шажок дальше, я утверждаю, что знание о Немерле ничего бы не дало ни преподавателям, ни курсу. Не тот случай.
Здравствуйте, Lazy Cjow Rhrr, Вы писали:
LCR>Но я ещё сделал маленький (напрашивающийся) шажок дальше, я утверждаю, что знание о Немерле ничего бы не дало ни преподавателям, ни курсу. Не тот случай.
Не знаю, по-моему неплохой язык для изучения, на примере которого можно сразу увидеть и Функциональщину, и Императивщину, и ООП.
Хотя макросами можно не грузить поначалу.
А как знать, может быть со временем, и по причине
to better prepare students for graduate school or real-world design challenges
.
Хотя с политической точки зрения может не подойти, т.к. все-таки платформа .NET слишком связана с MS. Для обучения желательно что-то более свободное.
Питон — неплохой выбор, но на мой взгляд возможно Руби был бы даже лучше, поскольку там ООП сделано ИМХО получше.
Андрей
АХ>Не знаю, по-моему неплохой язык для изучения, на примере которого можно сразу увидеть и Функциональщину, и Императивщину, и ООП. АХ>Хотя макросами можно не грузить поначалу.
Именно так и построен курс SICP: отталкиваясь от самых фундаментальных вещей — списка, символа, небольшого набора примитивных операций и evaluation rule товарищи постигают все аспекты: и ФП, и ИП и даже ЛП (немного). А макросы и продолжения просто не влазят по времени.
Если брать Питон (или Немерле), то операций и правил, которые мы вынуждены принять примитивными, там существенно больше, тот же EVAL уже одна из примитивных операций (поэтому я и заинтересовался тем, как будет выглядеть новая 7я лекция).
То есть с одной стороны мы имеем несколько максимально общих вещей, и выводим оттуда кучу частных случаев (как было). С другой стороны имеем существенно большую кучу менее общих вещей (как стало).
Я не люблю такие экстенсивные пути — мне больше импонирует как раз первый путь. Но, моё мнение очевидно не учитывалось, поэтому мы сию новость и наблюдаем.
Короче, поживём — увидим.
АХ>Питон — неплохой выбор, но на мой взгляд возможно Руби был бы даже лучше, поскольку там ООП сделано ИМХО получше.
Здравствуйте, Курилка, Вы писали:
К>В заметке на Lambda the Ultimate пишут, что MIT переводит свои вводные курсы по программированию со схемы на Python , чтобы, среди прочего,
К>
К>to better prepare students for graduate school or real-world design challenges
Зря. Судя по учебнику, курс был очень неплохой. А python всё-таки более похож на что-то обыденное.
E>>>Причем одни и те же люди. И их не много.
A>>Люди? Уместно ли тут множественное число?
E>На вскидку: VladD2, WolfHound, IT, ie, Vermicious Knid, Oyster.
не самые глупые люди, не так ли?
хочу у вас (в особенности, считающих себя умнее) спросить — а как вот сделать, чтобы у немерле больше приверженцев было?
PhantomIvan wrote: > A>>Люди? Уместно ли тут множественное число? > E>На вскидку: VladD2, WolfHound, IT, ie, Vermicious Knid, Oyster. > не самые глупые люди, не так ли? > хочу у вас (в особенности, считающих себя умнее) спросить — а как вот > сделать, чтобы у немерле больше приверженцев было?
Заразить VladD2 чем-нибудь новым и сделать для Nemerle фронтенд к GCC.
Здравствуйте, PhantomIvan, Вы писали:
E>>На вскидку: VladD2, WolfHound, IT, ie, Vermicious Knid, Oyster.
PI>не самые глупые люди, не так ли?
Уж не знаю, лично не знаком.
А вот вежливости, тактичности и уважения к собеседникам многим здесь еще учиться нужно. Явно.
PI>а как вот сделать, чтобы у немерле больше приверженцев было?
Перейти от лозунгов о неоспоримом преимуществе Nemerle над всем остальным миром к спокойным рассказам о выполненных на Nemerle проектах, о полученных при этом уроках, реальных достоинствах и, в первую очередь, о выявленных недостатках. Недостатки есть везде и если о них не говорят, значит либо замалчивают, либо не настолько серьезно знакомы с языком и просто их еще не знают.
По мне, так самый большой вклад в популяризацию Nemerle здесь сделал Oyster еще в прошлом году. Его спокойная позиция, полученные с помощью Vermicious Knid примеры создали (лично у меня) вполне приятное впечатлени о Nemerle. Которое до сих пор еще не испорчено оголтелой пропагандой со стороны VladD2 и WolfHound-а.
У ДеМарко и Листера в Peopleware говорилось приблизительно следующее (по памяти, книги нет под рукой):
Не нужно расчитывать, что есть язык программирования или технология, которая способна поднять вашу производительность на порядок. Ведь вы живете не в изоляции и вы не настолько глупы, чтобы пропустить такой замечательный язык.
И, что не удивительно, они до сих пор правы. В истории развития языков программирования не было случая, когда бы новый ЯП или технология создавали такой выдающийся прорыв в производительности. Причем не при первом применении, а при длительном. Об этом ДеМарко и Листер так же пишут:
что при рекламе большинства новых продуктов приводятся показатели повышения эффективности при первом использовании, когда сам факт смены инструмента и интерес к новой технологии являются дополнительным катализатором. Но в реальности затем показатели эффективности весьма серьезно снижаются, как только использование нового инструмента становится рутиной.
Так вот навязчивая реклама Nemerle со стороны VladD2 и, например, WolfHound-а, как раз и напоминает что-то среднее между пропагандой очередной серебряной пули и рекламными отчетами о повышении эффективности при первом применении нового инструмента. Хотя у многих читателей форума есть большой собственный опыт, в котором есть воспоминания о переходе на разные чудо-инструменты в прошлом и об их не всегда удачных итогах. Поэтому, например, для меня, чем больше хвалебных од поют Nemerle, тем больше растет подозрение, что о многом просто не говорят. Какой-то скелет в шкафу должен быть, обязательно, и чем раньше его найдут, тем лучше. Напрягает то, что вместо откровенного рассказа о проблемах Nemerle его пропагандисты предпочитают обзывать своих собеседников закостенелыми старперами и обвинять в том, что через N лет, когда бал править будут Nemerle-подобные языки, у нас-де не будет смелости признаться в собственной недальновидности. Надо сказать, что такой подход ну очень способствует положительному восприятию Nemerle
Вообще же, появление Scala и Nemerle, которые:
a) сочетают в себе объектно-ориентированное и функциональное программирование;
b) работают на основе очень сильно развитых и широко распростаненных промышленных платформах JVM и .NET;
c) позволяют легко интегрироваться с унаследованным кодом на Java и C#
означает, что широкому кругу программистов становится доступна новая парадигма -- функциональное программирование (поскольку предшествовавшие им языки, т.к. ML, Haskell, OCaml и др. в массы так и не смогли выйти). Лично мне это напоминает ситуацию с ООП в СНГ годах эдак в 92-93. Многие программисты про ООП вообще не знали, но кто-то уже начал узнавать и приобщаться с помощью таких инструментов, как C++ и Object Pascal. В тот момент эти языки как раз сочетали уже признаный структурный и модульный подход с объектно-ориентированным. И хотя до того уже был Smalltalk и ряд других ОО языков (о которых сейчас смогут вспомнить только историки) реальная популяризация ООП в бывшем СССР началась именно с C++ и Object Pascal. А до этого, AFAIK, аналогичный процесс был на Западе, только несколькими годами раньше.
Но самое интересное, что проще всего было пользоваться ООП именно тогда, когда оно еще не было столь популярным. Когда им владели только те, кто действительно интересовался программированием и кто дошел до понимания ООП своим собственным умом. Это впоследствии каждый стал знатоком ООП, слова "инкапсуляция" и "полиморфизм" начали вставляться в разговорах через слово. Затем появились "паттерны" и все стало еще интереснее Только, имхо, качество ОО программ постепенно ухудшается с ростом количества пользователей ОО языков.
Сейчас аналогичный процесс пошел и для функционального программирования. Получив доступ к новому инструменту наиболее восприимчивые и пытливые умы осознали, какие преимущества им может дать ФП. О чем они и начали трубить, вызывая ироническую усмешку тех, кто использовал ФП в течении многих лет до этого. Но суть в другом, в том, что сейчас для сторонников Scala/Nemerle "золотой век" -- их окружают не только единомышленники, но люди с аналогичными способностями и желанием изучать, и применять что-то новое. Поэтому и кажется, что все вокруг так замечательно и решения сложных задач совместными усилиями находится элементарно. Но на подходе мы, скептики и консерваторы. Для которых новый язык это всего лишь лишние заморочки по переходу на новый инструмент. И которым преимущества хвостовой рекурсии придется объяснять так же долго и муторно (и не один раз), как когда-то приходилось доказывать преимущества наследования и полиморфизма (а потом много бить по рукам за их доведенное до маразма использование). Так что готовтесь, господа, легкой жизни не будет.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.