Podcast 9 - Выпуск N15

Play Podcast 9 - Выпуск N15
Sign in to queue

Description

В пятнадцатом выпуске Петр Диденко и Михаил Черномордиков обсуждают Windows XP, с момента начала продаж которой прошло 8 лет, а также рассказывают про последние новости мира ИТ.

Ссылки:

Windows 7 Ferrari Theme - http://bit.ly/v00tG
Медиапортал Мариинского театра - http://media.mariinsky.ru
Человек на Silverlight - http://bit.ly/lYLup
Центр для начинающих разработчиков - http://bit.ly/34850B
FTH в Windows 7 - http://bit.ly/Wtjvu
Наше сообщество на ВсеВТеме - http://kip.ru/p9vv

Наши Твиттеры - http://twitter.com/mixen, http://twitter.com/pdidenko


Адрес нашего подкаста - http://podcast9.ru/  
RSS нашего подкаста - http://feeds2.feedburner.com/podcast9ru  
RSS блога Петра Диденко - http://feeds2.feedburner.com/pdidenko  
RSS блога Михаила Черномордикова - https://blogs.msdn.com/mikcher/rss.xml

Embed

Download

Download this episode

The Discussion

  • User profile image
    hacker

    Дешевое и некачественное железо плохо! Новые интерфейсы это хорошо!

  • User profile image
    Vitaly S

    Слушал я подкаст 9 наскоками. Сначала первых выпусков пять за раз, ну и за последнюю неделю оставшиеся.

     

    Уж очень вы хвалили ИЕ 8. До прослушивания подкастов я использовал хром, а там где он не работал, а я встречал ТОЛЬКО сайты так или иначе связанные с майкрософтом, юзал фф. Были коментаоры, несолидарны с вами в мнении, что ИЕ8 производителен как ничто, но вы здраво, мысляще отбивали такие нападения. Собсно, я и сам не люблю предвзятых отношений, мол все версии ИЕ - га%но.

    Ну это все лирика. Решился я заменить фф, на ие в своем повседневном использовании.  Прошла неделя, возвращаюсь на фф. Да, конкретный урл я вам не дам, мол вот на этом сайте ие работает медленно, но имея параллельно запущенный хром и ие с дофига окнами, в конце рабочего дня хром все так же летает, а ие педалит жестко. Скролит рывками, таб открыть с контентом - так вооще молчу (да, в режиме с выключенными плагинами). Общее впечатление, ну медленней хрома в разы, не на 50%, а именно в разы.

     

    Видно, что вы верите в то что говорите, что ие - офигенно производительный. Но поюзайте же хром недельку, потом говорить, что ИЕ быстрый язык не повернется Smiley

     

    Полный игнор хрома майкрософтом даже коментировать не хочется.

     

    П.С. если захотите прокоментировать в духе: "фигня, где цифры или урл? Ах нету, ну тогда мы создали акселераторы и это производительно", то лучше не надо. И так уже смешно.

  • User profile image
    Eugeny N.dot

    Здравствуйте. С большим интересом прослушал пять подкастов, на днях планирую прослушать остальные и после этого уже "оперативно" следить за новыми. У меня такой вопрос, возможно у вас получится ответить на него в 16-ом или 17-ом выпуске.

     

    Сейчас есть некоторая активизация среди разработчиков по поводу функциональных языков программирования. Вот и в MS Visual Studio 2010 войдет F#. Эта тема меня заинтересовала и я попробовал разобраться. Оказывается, пользы от функционального программирования нет вообще. Разве что не совсем опытных программистов это может заинтересовать, из-за относительно низкого порога вхождения в функциональное программирование. Я обосновал свое мнение в своем блоге и уже участвовал в нескольких, подчас весьма жарких дискуссиях, в Интернете, по этому поводу. Свое мнение мне удалось отстоять, многих, возможно, убедить.

     

    Сами понимаете, с кем-то поспорить в Интернете - это одно (пускай это и наверняка, часть, из них - топовые разработчики). А вот получить оценки архитекторов Microsoft или других, не менее известных компаний - несколько иное.

     

    Можете вы посмотреть мое мнение по этому поводу, показать (перевести его на английский) для ваших ведущих архитекторов и рассказать в подкасте?

     

    Почему любопытны мнения именно ваших ведущих архитекторов. Во-первых вот некоторые из вас, сейчас специалисты по связью с общественностью, или евангелисты - некоторые из вас были, например, раньше, проект-менеджерами, но за несколько лет квалификациия именно по программированию и проектированию - несколько теряется. А люди, которые каждый день пишут код, и обдумывают проектные решения - для них это основная работа, с каждым днем они не теряют квалификацию по этой части, а улучшают ее (знаю, что вы хотите сказать - вы немного пишите код, и все такое. - Извините, это не то. Посмотрите правде в глаза - вы - дисквалифицируетесь как программисты. С годами забывается и синтаксис, с годами ум начинает думать только в контексте презентаций - это немного другая специфика).

     

    Мне бы хотелось - отдельно услышать мнения ваших ведущих архитекторов, и, совершенно отдельно - тех, кто "причастен" к популяризации функционального программирования у вас (понятно, что последние, как "авторы идей" и "вдохновители их" - будут защищать СВОЕ, и их мнение, можно сказать заранее - будет крайне ангажированным).

     

    Если вам удобно - то может быть вы спросите по приватной переписке у ваших специалистов, и когда они пришлют мнения - обобщите (например компании Microsoft так просто удобнее, по каким-то соображениям)? Можно и с явным "обозначением" - какой именно специалист у вас - сказал такое-то мнение (очень желательно бы узнать и его должность - на сколько прислушиваться или нет к его мнению), и как он его обосновал.

     

    Спасибо. Обещаю со временем еще придумать интересные вопросы для ваших обсуждений.

     

    P.S. Да, а вот две части моей статьи по этому поводу - Часть 1 и Часть 2.

  • User profile image
    ivan_

    Video to ne sobiraetes' zovodit' ?

  • User profile image
    old_shwars

    Пардон, случайно ответил не на то сообщение, теперь придётся тут что-то сказать... Да, да, мы тоже хотим видео!

  • User profile image
    old_shwars

    Евгений, приветствую!

     

    Я причастен к популяризации функционального программирования (читал соответствующий курс на ФИВТ МФТИ) и языка F# в частности. Хотел бы в корне не согласиться с Вашим мнением, что от функционального программирования нет пользы. Практика - использование того же языка F# во внутренне-майкрософтовских проектах - показывает обратное. Да и вне Майкрософт - на функциональных языках написаны такие крупные проекты, как AutoCAD, emacs, значительная часть Matlab/Mathematica и др.

     

    Почему сейчас обращают повышенное внимание на функц.прогр. - потому что есть одна существенная проблема, которую непонятно, как решать. Непонятно, как научить подавляющее большинство программистов писать параллельный код. И тут одно из основных решений - функциональный подход. Элементы которого, кстати, появились в C# начиная c 3.0. LINQ - также пример функционального подмножества языка.

     

    Кратко посмотрев Ваши заметки хотел бы отметить, что Вы зря сравниваете ФП и ООП. В функциональном подходе также есть объектная ориентированность, например CLOS (Common Lisp Object System), воистину объектная надстройка над ЛИСПом. Идеи ООП стали появлятся в функциональных языках раньше того времени, когда они дошли до промышленного программирования. Вообще говоря, многие идеи ООП пришли из функциональных языков! И уж совсем нельзя сравнивать ФП с ассемблером - ведь в ФП вообще нет понятия присваивания, и низкоуровневая модель выполнения там совсем другая.

     

    Проблема ФП в том, что для его эффективного освоения требуется значительные усилия и развитое абстрактное мышление. Как первый язык программирования, в университетской программе, функциональный язык идёт хорошо (и в некоторых американских университетах так и преподаётся), но зачастую научить привыкшего к императивности "классического" программиста функциональному подходу нелегко. Поэтому и пытаются "незаметно" внедрить функциональный подход в существующие императивные языки. А понять и действительно оценить преимущества функциональных языков могут немногие.

     

    В качестве саморекламы могу рекомендовать посмотреть мои заметки в блоге по функциональному программированию (https://blogs.msdn.com/sos/archive/tags/Functional+Programming/default.aspx), в частности, рассуждения о том, зачем нужен F# (https://blogs.msdn.com/sos/archive/2009/01/16/fsharp-lesson-0-why-another-programming-language.aspx), а также интервью с создателем языка Haskell Саймоном Пейтон-Джонсом (https://blogs.msdn.com/sos/archive/2009/07/23/Dmitri-Soshnikov-Interviews-Simon-Peyton-Jones-on-Functional-Programming-and-Haskell.aspx), который популярно рассказывает о том, зачем нужно функциональное программирование и как лучше его "почуствовать".

     

    С уважением,

     

    Дмитрий Сошников

    координатор академических программ

    департамента стратегических технологий Майкрософт Россия

    к.ф.-м.н., доцент

  • User profile image
    mykolad

    Здравствуйте. Вы тут рассказывали про Snipping Tool - я согласен, что это замечательная утилита. Она даже позволяет выделять или отмечать интересующие фрагменты картинки с помошью "карандаша".

    Вот только не хватает одной простой, но очень важной возможности - нет Undo/Redo. Т.е. если дернется мышка или линия будет проведена не так, как хочется, то скриншот будет безнадежно испорчен и придется делать новый. Намекните, пожалуйста, кому надо, чтобы приделали туда Undo/Redo.

     

    P.S. Если не хватает ресурсов у Microsoft, я бы с удовольствием безвозмездно помог с написанием этой маленькой, но очень полезной фичи.

     

     

    С уважением,

     

    Николай Денисюк

    Team Leader команды разработчиков

    Materialise Dental Ukraine

  • User profile image
    Eugeny N.dot

    Здравствуйте. Спасибо за комментарий.

    По поводу параллельного программирования - в Викизнания вчера внес описание своей архитектуры Parallel-Ax (BSD Public Documentation License), там как раз рассказывается в чем плюсы, в этом плане, функционального программирования. За счет того, что нет переменных, сохраняющих состояние. Таким путем если пойти, что "урезанность" ФП позволяет это делать, так можно отказаться от компьютеров - тогда тоже не будет никаких проблем с параллельным программированием. Wink Урезать так (помимо классов, оставляя только функции-методы) - давайте идти дальше, зачем останавливаться! Smiley
     Лично я придумал способ - как без урезания функциональности языка - распараллеливать и не иметь никаких проблем.

    Про объектную ориентированность (CLOS  - Common Lisp Object System). Я конечно не знаю всего-всего на свете, и, например, этого, но в попытке угадать - речь может идти про использование указателей на саму функцию, и такой шаблон проектирования  как Functor (это не GoF, в GoF есть паттерн проектирования Command, - именно эти два шаблона часто отождествляют вместе).

    Другими словами - это всего лишь имтиация объектов. В "обычном" объекте есть:

    1) Переменные (данные).
    2) Методы манипулирования (изменения) этих данных.

    - если в ФП ввести такие полноценные объекты, с переменными в них, и методами - то это уже не будет ФП, да и с "многопоточностью" сразу все обрубится. Wink Нет, ну правда же?

    Тогда вывод - в ФП не может быть полноценных объектов. А все имитации - это имитации и есть. И, следом не менее главное следствие - нет объектов, значит нет ООП. Значит можно использовать только процедурный подход. Или, второй подход - вообще отказаться от каких-либо подпрограмм, программировать "постоянным присваиванием", не использовать многократно код.

    И какие бы не приводили абревиатуры из мира ФП и его библиотек - мы упираемся в фундаментальные принципы.

    Еще одна альтернатива - в одном языке программирования - совмещать и ФП, и императивное. Но зачем хвостовые рекурсии в императивном программировании? Когда есть ООП, и его ВПОЛНЕ хватает. Smiley

    Про Ассемблер я упомянул, потому что для него очень характерны операции присваивания, чуть ли не половина программы может состоять из операций присваивания. Такое характереное "свойство" программирования на Ассемблере - я и привел, выделил. Потому что у ФП есть всего две возможности - или программировать в процедурном стиле, или программировать в основном операциями присваиваниями. ООП там может быть только в небольшом виде имитировано.

    > Проблема ФП в том, что для его эффективного освоения требуется значительные усилия и развитое абстрактное мышление.

    - Как бы немного и нет. Для ООП тоже аналогичное требуется. Разница здесь только в том, что ФП - это чаще всего "write once", а ООП - позволяет создавать отличные фреймворки. Которые очень отличаются от библиотек, написанных в процедурном стиле.

    > ведь в ФП вообще нет понятия присваивания, и низкоуровневая модель выполнения там совсем другая.

    Как же нет? Идет "поток выполнение", в котором постоянно идут операции присваивания, а чтобы использовать циклы - используют хвостовую рекурсию.

    У меня просто многолетний опыт программирования на ActionScript 1, в котором практически все программировали в процедурном стиле (классы там нужно было регистрировать, в общем мало удобно). И мы, флеш-программисты - активно использовали тогда рекурсии и прочее. Отличие только в том, ActionScript 1 - что там многомерность программирования - давало размещение кода в совершенно разных местах (в таймлайнах кнопок, клипов, на разных уровнях) - в этом программирование на нем было немного в плюсе, в отличии от чисто функциональных языков программирования.
    Но потом появился ActionScript 2, где уже были нормальные классы и интерфейсы (с маленькими нюансами) - и программировать уже можно было "чисто" в Java-стиле. И использовать ООП.
     Сейчас Actioncript 1 - мертвая версия языка, в вакансиях пишут про знания 2-ой и 3-ей версии.
     Я не хочу дискутировать на счет флеша, лично мне SL 3 более симпатичне, но все это - была история, как все развивалось в этом языке программирования.

    И за последние несколько лет, когда я уже программирую JEE - я ни разу, кажется, не использовал рекурсию, и никто из тех моих колег, код у которых я видел. - О чем это говорит? - Что хвостовые рекурсии - здесь уже не нужны. Они - именно, именно - для замены обычных циклов в ФП.

  • User profile image
    outcoldman

    mykolad для этого там есть стирашка Smiley Она стирает как раз надписи, что ты сделал. Так что ничего писать не нужно Wink

  • User profile image
    ad1

    Здравствуйте, я конечно не работник MS и далеко не професиональный кодер и не понимаю, в чем "урезанность" ФП. На таком фундоментальном уровне про урезанность языков, можно говорить только тогда, когда они(языки) не решают какой-то класс задач, которые решают другие языки. На сколько мне извесно, любой язык программирования (базис языка) сводится к машинам Тьюринга, которые описывают класс алгоритмически разрешимых задач. Т.е. все языки программирования решают одни и те же задачи, и с этой точки зрения равнозначны. Если я где-то ошибся подскажите.

    Но в этом случае, весь вопрос о преимуществах языка уходит из области точных наук в Социально-Филосовские дебри, где преимущества и недостатки понятия субективные. А с субъективной точки зрения, задачи имеющие под собой математическое основание, я бы решал на функциональном языке, потому что математические функции и определения проще переводить на функциональный язык. Если же я буду решать задачи для естественных областей знаний, то там обычно оперируют объектами и писать на ООП святое дело.

    Адодин Дима

    MSP НГУ

  • User profile image
    Eugeny N.dot

    Здравствуйте.

     

    > и не понимаю, в чем "урезанность" ФП

     

    Если из класса удалить все его внутренние переменные (к слову - сохраняющие состояние объекта данного класса) и оставить только методы этого класса, после этого удалить сам класс и оставить одни "голые" методы его (в которых могут содержаться локальные переменные, имеющие жизненный цикл от начала вхождения потока выполнения в такую функцию - до выхода потока из такой функции) - то, по моему, это и есть существенное урезание всей конструкции. Поэтому я даже сравниваю этого как урезание 3D до 2D.

     

    Если к этому 2D добавить переменные глобальной области видимости, добавим различные обходные-эмулирующие пути замены объектов - получается ФП, по моему.

     

    Математика... Читал, неделю-две назад, что там вроде уже все "освоено"... чуть ли не "стопорение" в развитии... Может я не совсем "то" прочел, может есть и другие точки зрения, как бы то ни было - вспоминается один фантастический рассказ, когда из глубин Космоса выныривает нечто, проглатывает космический спутник с адмиралами всего флота, на борту его, и исчезает в неизвестном направлении (по моему произведение написал Г. Гаррисон, один из рассказов про "Стальную крысу").

     

    Один из героев "замечает" на счет этого "проглатывания" (спутника, с адмиралами на его борту) -- Думаете, кто-нибудь будет по ним горевать? - Как бы не так, их места с радостью займут их заместители...

     

    Так может произойти и в математике - как только станет "понятно", что методы расчета функциями - это всего-лишь частный случай из "3D"-расчетов - мигом появятся 20-50 математиков, которые придумают новые теории расчетов. Так как некоторые одаренные люди занимают руководящие посты в программировании, в математике - уже в 16 лет, вероятность, прогноз такого развития событий - может "иметь место быть".

     

    Другой пример. Языки программирования сначала учат на уровне функций (2D), и даже не функций, а, пишут что-то вроде - "у нас есть метод main(), более подробно мы коснемся его позже" и показывают какие-то базовые конструкции языка, его синтаксиса, на уровне "присваивания", например int a = 3 +5; - т.е. в начале учат "на уровне 1D".

     

    Потом уже описывают - зачем тут функция и чему она служит, потом - классы, ну а нюансы по классам (паттерны проектирования) - могут вообще описывать в другой книге.

     

    В этом нет "ничего такого".

     

    Но обычно в таком учебнике "контекст изложения" обычно идет "несколько в перемешку" - где-то в самом начале говорят, что "будут класс. Но пока мы рассмотрим синтаксис, типы переменных". Т.е. сразу указывают, что "рассматриваем какой-то частный случай".

     

    Возможно, возможно (!) - математика вовсе не застыла на месте, как говорят о ней кто-то там... посмотрим... Wink

  • User profile image
    ad1

    По моему вы мыслите языковыми конструкциями. Тут же важны не сами конструкции а результат, который они приносят. В идеале, вы сначала решаете задачу, а потом уже исходя из ресурсов выбираете платформу и я зык программирования. И если вы одинакого хорошо владеете обоими подходами (как ФП так и ООП) то вы будите использовать их одинаково часто, по-моему так.

    А на счет "урезанности", как вы ее подразумеваете, то присмотритесь к F# повнимательнее, это полноценный .Net язык, что подразумевает под собой то, что там можно создавать .Net классы. Правдо для эффиктивного использования такого подхода надо четко осозновать все плюсы и минусы каждого из подходов, и уметь их грамотно сочетать.

     

    Кстати по поводу математики, как житель Новосибирского Академгородка, могу с уверенностью заявить: "математика растет и развивается" Wink

  • User profile image
    Eugeny N.dot

    > вы сначала решаете задачу, а потом уже исходя из ресурсов выбираете платформу и я зык программирования.

     

    Порядок тут точно верный? Wink (тем более что нюансы по задаче очень часто, кроме самых примитивных задач - проясняются только в процессе разработки, см. объектно-ориентированный анализ, объектную модель из него).

     

    > А на счет "урезанности", как вы ее подразумеваете, то присмотритесь к F# повнимательнее, это полноценный .Net язык, что подразумевает под собой то, что там можно создавать .Net классы.

     

    Нет. Можно придумать любой язык, компилятор котого будет производить нужный байт-код и этим будет достигаться полная или частичная совместимость. Можно вообще в таком языке иметь только например инкремент и декремент и больше вообще ничего, компилятор (этого нового языка) - на все остальное будет ругаться.

     

    > Кстати по поводу математики, как житель Новосибирского Академгородка, могу с уверенностью заявить: "математика растет и развивается"

     

    Очень интересует вопрос на счет... вот что мне как программисту, разработчику (в том числе и, например, 3D-игр) - стоит изучить в математических дисциплинах в первую очередь, и что, допустим, во вторую (другими словами - что тоже не было бы лишним). - Т.е. если кто сможет ответить, то желательно бы разделить, на 2, по первоочередности, части.

     

    И, отдельный вопрос (назовем это - 3-ий пункт) - что изучить в математических дисциплинах, что бы сразу "включиться" в самое передовое в этой области, быть "на острие математического прогресса"? Очень любопытствую. Smiley

     

    Да, и 4-ый вопрос - в каком порядке лучше изучать (в каком порядке и почему - обоснуйте свое мнение, пожалуйста)?

  • User profile image
    ad1

    >Порядок тут точно верный?

     Порядок тут точно верный, сначала пишется ТЗ на Человеко графическом языке, а перед этим сторятся всякие ч\я и так далее. Идет оценка задачи.И один из этапов, это выбор платформы, языка, и команды разработчиков(если у компании их насколько).

    >Очень интересует вопрос на счет... вот что мне как программисту, разработчику (в том числе и, например, 3D-игр) - стоит изучить в математических дисциплинах в первую очередь

     Вот тут мне достаточно трудно ответить. 1. Я не знаю чем занимаетесь вы, 2. я не занимаюсь научно дейтельностью. Что я могу заявить с уверенностью, то знание линейной алгебры и выч. геометрии(частный случай линейки) вым должно пригодиться. Если вы пишите на готовом движке (а скорее всего вы так и делаете), то и знать вам больше нечего. В вашем наравлении матиматика ищен например новые алгоритмы расчета коллизий, для различных сложных объектов(многогранников например), алгоритмы создания реалистичных ландшафтов, различныеалгоритмы анализа изображений, видио, и мого чтего другого. Но все это интереснолишь тем кто такие движки разрабатывает. У чебников по этим нововведениям просто не существует, вы можете лишь читать соответствующие научные журналы.

    Да пробуксовка по различным направлениям есть всегда, но в целом математики не дремлют.

    Есть много задач которые матиматики активно решают, вы постоянно пользуйтесь их трудами

  • User profile image
    Eugeny N.dot

    > По моему вы мыслите языковыми конструкциями. Тут же важны не сами конструкции а результат, который они приносят. В идеале, вы сначала решаете задачу, а потом уже исходя из ресурсов выбираете платформу и я зык программирования.

    > Порядок тут точно верный, сначала пишется ТЗ на Человеко графическом языке, а перед этим сторятся всякие ч\я и так далее. Идет оценка задачи.И один из этапов, это выбор платформы, языка, и команды разработчиков(если у компании их насколько).

     

    Не совсем Вас понимаю. Как сначала "решают задачу", "а потом уже исходя из ресурсов выбираете платформу и я зык программирования". Предлагаю оставить тему.

     

    > Вот тут мне достаточно трудно ответить. 1. Я не знаю чем занимаетесь вы


    Программирование + (именно плюс к этому, дополнительно) меня интересует все в математическичх дисциплинах, что пригодится для 3D-игр.

     

    > В вашем наравлении матиматика ищен например новые алгоритмы расчета коллизий

     

    Спасибо, это уже скорее применение математики. Я просто имел в виду, что бывает алгебра, бывает геометрия, у них есть свои "виды", что-то является частным случаем другого, бывает нечеткая логика/математика, бывает дискретная математика - все это крайне любопытно, но организовать все эти названия в виде структуры, чтобы четко понимать что есть что - этого не знаю...

     

    > Если вы пишите на готовом движке (а скорее всего вы так и делаете), то и знать вам больше нечего.

     

    Писать движки не менее интересно, чем игры на них. Это мне требуется, не отсекайте, пожалуйста. Smiley

  • User profile image
    ad1

    >Спасибо, это уже скорее применение математики

    А как вы себе представляете развитее математики? Ищется задача которая не решена, либо оно по каким-то соображениям не эффиктивно, может быть вообще неизвестно а существует ли оно. Ищутся похожие задачи, они объеденяются в один класс задач. И для них ищется решение, проверяется его существование и единственность. Сначала ищется какое-нибудь частное решение, затем его пытаются обобщить. Вот в этом процессе и рождаются новые теоремы, новые определения, новые области знаний. Простой пример Теория вероятности, она вся вышла из азартных игр, математики хотели составить модель наиболее выгодного способа игры, а теперь это целый раздел математики. Четкую иерархию из разделов математики создать едвали можно. Матанализ например существует везде где есть функции. Наиболее близкими к информатике являются вычислительная математика, линейная алгебра и аналитическая геометрия(посуте все 3D стоит на них), теория графов, теория управления, теория операций и многое другое.  А что касается дискретной математики, то это всего лишь название предмета, научным направлением она не является. Под этим названием подают различные части(дискретные) математики. Тут теорию множеств, там теорию графов, здесь еще и булевы функции. Вобщем все, что не наскреблось на отдельный курс. Поэтому сказать четко, что надо изучать сначала это, а потом то нельзя. Но, как я сказал матан пригодиться везде, да и линейка в придачу.

  • User profile image
    Eugeny N.dot

    Спасибо за подробный ответ.

     

    Все же, как мне кажется, структурировать информацию тем или иным способом можно. Возможно рассматривая все - в каком-то "срезе", контексте применения/использования.

     

    Мне структутированность нужна, чтобы четко понимать - что изучать, где скорее горизонтальные связи, где - скорее частные случаи, что, исторически, произошло-развилось из чего.

     

    Приведу пример. Вроде как советуют изучать английский - изучив сначала латынь, в том понимании что "от латыни происходят многие современные языки". Даже если это только лишь от части верно, но хорошо дает понимание и, главное - пользу в изучении, то такая информация является на редкость ценной.

     

    Давайте возьмем другой пример - как лучше всего изучать C#. На сколько я понимаю - хорошо если знаешь при этом С++ (и "исошный", и CLI). Идем еще "глубже" - чтобы хорошо знать С++ - хорошо если еще знаешь Ассемблер.

     

    Таким путем хорошо понятна структура. Если не находится противоречий, значит это в самом деле - идеальный случай, если специалист все это выучит (ну и будет иметь практический опыт, естественно).

     

    А вот с математикой у меня нет понимания такой же структуры.

  • User profile image
    StormFiber

    I would like to fundamentally disagree with your opinion that there is no use for functional programming. Practice - using the same F # language in internally-Microsoft projects - shows the opposite. And outside of Microsoft - such large projects as AutoCAD, emacs, a significant part of Matlab / Mathematica, etc. are written in functional languages.

    Why now pay attention to the func. Progr. - because there is one significant problem that is not clear how to solve. It is not clear how to teach the vast majority of programmers to write parallel code. And here one of the main decisions is a functional approach. Elements of which, by the way, appeared in C # starting from 3.0. LINQ is also an example of a functional subset of a language.

    After a brief look at your notes I would like to note that you are in vain comparing the OP and OOP. The functional approach non veg jokes also has an object orientation, for example CLOS (Common Lisp Object System), a truly object superstructure above LISP. The ideas of OOP began to appear in functional languages ​​before the time when they reached industrial programming. Generally speaking, many OOP ideas come from functional languages! And it is absolutely impossible to compare the OP with the assembler - after all, there is no concept of assignment in the OP, and the low-level execution model is completely different there.

    The problem with the FP is that its effective development requires considerable effort and advanced abstract thinking. As the first programming language in a university program, a functional language goes well (and is taught in some American universities), but it is often not easy to teach the "classical" programmer who is used to imperativeness of the "classical" programmer. Therefore, they are trying "imperceptibly" to introduce a functional approach into existing imperative languages. A few can understand and truly appreciate the benefits of functional languages.

Add Your 2 Cents