Podlodka #47 – Protocol-Oriented Programming

Podlodka #47 – Protocol-Oriented Programming

Егор Толстой, Стас Цыганов, Глеб Новик

Выпуск-разоблачение парадигмы protocol-oriented programming. Андрей Мишанин, инженер из Facebook, рассказывает, как Apple популяризовала гораздо более старую концепцию обобщенного программирования под не самым удачным новым именем. Много экскурсов в историю с разбором процедурного и объектно-ориентированного программирования, практических примеров работы с POP, сравнения Swift и C++ и обсуждений полиморфизма. Ну и, конечно, очень глубоко закопали наследование.


SoundCloud: http://bit.ly/2Ff1vof

iTunes: https://apple.co/2Cyj7IY


Поддержи лучший подкаст про мобильную разработку:

www.patreon.com/podlodka


Также ждем вас, ваши лайки, репосты и комменты в мессенджерах и соцсетях!

Telegram-чат: https://t.me/podlodka  

Telegram-канал: https://t.me/podlodkanews

Страница в Facebook: www.facebook.com/podlodkacast/

Twitter-аккаунт: https://twitter.com/PodlodkaPodcast  


Содержание:

- 00:00:40 - Знакомство с гостем

- 00:01:47 - Актуальность темы

- 00:03:08 - Процедурное программирование

- 00:07:30 - Объектно-ориентированное программирование

- 00:11:55 - Схожесть функционального и объектно-ориентированного программирования

- 00:14:38 - Полиморфизм

- 00:20:40 - Принцип единственной ответственности

- 00:28:46 - Наследование

- 00:35:50 - Недостатки ООП

- 00:50:00 - Откуда пошел Protocol-Oriented Programming

- 00:57:20 - Swift vs C++

- 01:02:00 - Суть обобщенного программирования

- 01:08:00 - Zero-cost abstraction

- 01:14:02 - Протоколы в Swift

- 01:19:20 - Protocol extensions

- 01:25:25 - Разбираемся с обобщенным программированием

- 01:41:15 - Парсинг JSON

- 02:04:15 - Книги и статьи по теме

- 02:08:50 - Подведение черты


Полезные ссылки:

- Сессия про Protocol-Oriented Programming на WWDC

 https://developer.apple.com/videos/play/wwdc2015/408/

- Comparing POP to OOP

 https://forums.swift.org/t/comparing-pop-to-oop/1438/12

- swift-users Digest, Vol 3, Issue 15

 https://forums.swift.org/t/swift-users-digest-vol-3-issue-15/1442

- Better Code: Runtime Polymorphism

 https://www.youtube.com/watch?v=QGcVXgEVMJg

- An Extended Comparative Study of Language Support for Generic Programming

 http://www.osl.iu.edu/publications/prints/2005/garcia05:_extended_comparing05.pdf

- Stepanov Interview

 http://stlport.org/resources/StepanovUSA.html

- Lazy MapReduce

 https://godbolt.org/g/iCRhES

- Sorting Nibbles in Swift

 https://airspeedvelocity.net/2015/03/08/sorting-nibbles-in-swift/comment-page-1/

- From Mathematics to Generic Programming

 http://www.informit.com/store/from-mathematics-to-generic-programming-9780321942043

- Elements of Programming

 https://www.amazon.com/Elements-Programming-Alexander-Stepanov/dp/032163537X

- C++ Templates - The Complete Guide

 https://www.amazon.co.uk/Templates-Complete-Guide-David-Vandevoorde/dp/0321714121/ref=sr_1_1?ie=UTF8&qid=1518904677&sr=8-1&keywords=C%2B%2B+Templates+-+The+Complete+Guide

- Advanced Swift

 https://www.objc.io/books/advanced-swift/

- Optimizing Collections

 https://www.objc.io/books/optimizing-collections/