Skip to content

Instantly share code, notes, and snippets.

@niquola
Last active May 20, 2018 04:52
Show Gist options
  • Star 37 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save niquola/8112267 to your computer and use it in GitHub Desktop.
Save niquola/8112267 to your computer and use it in GitHub Desktop.
Must Read from Ravil Bayramgalin (https://github.com/brainopia) + my small adds :)

Books

Concepts-Techniques-Models-Computer-Programming CMT это известная книжка CMT, за которой слава закрепилась не хуже чем у SICP

это из этой книжки классификация различных парадигм Если присмотришься, то увидишь, что Oz поддерживает большинство вариаций (с этой целью его и конструировали, чтобы можно было наглядно продемонстрировать различные подходы в одном языке)

https://www.edx.org/course/louvainx/louvainx-louv1-01x-paradigms-computer-1203 - это курс по CTM книге от автора

Practical Foundatins for Programming Languages - судя по оглавлению и отзывам эта книга шедевральна, покрывает в глубине внутренности и подходы к реализации многих составляющих языков программирования, но для понимания такого раскрытия темы (которое часто представляется в математической форме) требуется подготовленность или сильное желание

Structure and Interpretation of Computer Programs - известный МИТовский курс есть вариация на clojure http://sicpinclojure.com/ есть рускоязычный курс - https://hexlet.org/course/sicp/#.Url7e4tS2pg

The Metaobject Protocol - тоже крутая по отзывам книга, которая раскрывает прелести и как устроет CLOS (common lisp object system), а также разные подходы к объектной модели и как их реализовать

An Introduction to Functional Programming Through Lambda Calculus - автор у вас на глазах из чистого лямбда исчисления выводит вполне рабочий функциональный язык

Курс Мартина Одерски - https://www.coursera.org/course/progfun можно посоветовать тем, кто хочет начать изучение начальных основ ФП в удобном формате на примере скалы

Articles & videos

http://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf - новая ревизия известной публикации On understanding types, data abstraction and polymorphism, которая более простым языком рассказывает в каких ситуациях объектный и функциональный подходы к полиморфизму актуальны

http://www.stanford.edu/class/cs242/readings/backus.pdf - эссе Бакуса (автор фортрана первого высокоуровневого языка и популярной БНФ нотации для описания синтаксиса программного языка) приурученное к вручению ему награды Тьюринга, где он призывает отказаться от архитектуры фон неймана (императивного подхода) в пользу функционального подхода (наверное первый манифест подобного рода). Часть его видения распространилась практически повсеместно, сбудется ли остальное.

Out of the Tar Pit (2006) - http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.93.8928 - статья о Существенной и Случайной сложности программ и как с этим быть (Functional Relational Programming)

http://www.dreamsongs.com/ObjectsHaveNotFailedNarr.html - это публикация от Guy Steele, так что стоит прочитать, хоть и факты в ней устарели, но сами мысли интересны :) здесь мельком упоминается extension problem (более подробно будет в следующих видяшках которые я скину), но что интересно то, что он пишет о том, что схема была рождена (им и Gerry Sussman), как попытка выразить ООП в стиле актеров, для чего оказалось достаточно просто closure (в других вариациях лиспа до этого не было лексического скопинга - про историю очень интересно написано у Пола Грэхема http://www.paulgraham.com/thist.html) про дуальность объектов и closure часто говорили, например,

здесь http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html есть хорошая притча в конце (да и ссылки все крутые там)

http://c2.com/cgi/wiki?ClosuresAndObjectsAreEquivalent - здесь (аналог hackernews из 90-х) можно почитать различные мысли на эту тему, но уровень шума довольно высок раз уж заговорили о схеме, в ней были десятки различных библиотек которые упрощали ООП - http://www.faqs.org/faqs/scheme-faq/part1/section-6.html

http://www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf - статья с провокационным названием "why objects are inevitable", по сути более академический подход и рассуждения на тему того, что объекты хорошо подходят для ограничения мира с которым работаешь

http://michaelfeathers.typepad.com/michael_feathers_blog/2012/03/tell-above-and-ask-below-hybridizing-oo-and-functional-design.html - здесь одна из эвристик, как решить какой подход использовать Ravil Bayramgalin • 54 mins

http://rubyrogues.com/065-rr-functional-vs-object-oriented-programming-with-michael-feathers/ - потом на рубирогс обсуждали подробно это, было несколько интересных мыслей тоже :)

http://www.daimi.au.dk/~madst/tool/papers/expression.txt - вот кстати оригинал expression problem

http://michaelrbernste.in/2013/12/10/why-we-need-explicit-state.html - вот кстати пережеванная выдержка из CTM и SICP на эту тему :)

http://www.infoq.com/presentations/functional-pros-cons?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row3

довольно веселое видео, про монады он стебно прошелся :) видео начинается бодро очень, но к концу его главная мысль так и не появилась, явно готовился впопыхах, хотя ему что угодно можно позволить :)

Целый репозиторий статей на эту и смежные темы - https://github.com/arc90/papers-we-love от ребят из http://arc90.com/

у меня много статей в списке To Read стоит...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment