SlideShare a Scribd company logo
Современные тенденции в
разработке ПО
Александр Чистяков
Git in Sky
Несколько слов о себе
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 2 / 53
• Главный инженер в Git in Sky
• Преподаватель в avalon.ru
• Researcher @ ISST Lab, ITMO
• Координатор встреч
DevOps-инженеров в Петербурге
• Пишу код
Слово «современные»
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 3 / 53
Что изображено на картинке?
(Мы будем говорить о вещах, придуманных 30 и более лет назад)
Немного истории
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 4 / 53
Носитель информации 30 лет назад
(Емкость примерно 200 килобайт)
ALGOL-60 и далее
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 5 / 53
Структурное и
процедурное
программирование
Корень всех зол (нет, не goto)
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 6 / 53
Как C-программист
под DSP пишет на C#?
В C# нет goto, но это не беда!
Зачем нужно OOP?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 7 / 53
• Инкапсуляция, наследование,
полиморфизм!
• Пенсия Гради Буча
Зачем на самом деле OOP?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 8 / 53
• Инкапсуляция, наследование,
полиморфизм!
• Пенсия Гради Буча
• Кошелек Миллера (спасибо Григорию
Петрову)
• Закон Деметры
• SOLID
SOLID
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 9 / 53
• Single responsibility principle
SOLID
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 10 / 53
• Single responsibility principle
• Open/closed principle
SOLID
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 11 / 53
• Single responsibility principle
• Open/closed principle
• Liskov substitution principle
SOLID
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 12 / 53
• Single responsibility principle
• Open/closed principle
• Liskov substitution principle
• Interface segregation principle
SOLID
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 13 / 53
• Single responsibility principle
• Open/closed principle
• Liskov substitution principle
• Interface segregation principle
• Dependency inversion principle
Что-то пошло не так
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 14 / 53
Objects have failed* (OOPSLA 2002)
* на самом деле нет
2002+15
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 15 / 53
Python - lingua franca индустрии
В Python есть всё
В Python есть всё
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 16 / 53
Зачем тогда что-то еще?
Отнять и поделить
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 17 / 53
Почему не декриминализуют легкие
наркотики?
Хороший Язык Будущего
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 18 / 53
• Строгая типизация (PHP и JS - плохие)
Хороший Язык Будущего
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 19 / 53
• Строгая типизация (PHP и JS - плохие)
• (Опциональная) статическая
типизация
Опциональная типизация
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 20 / 53
• PHP: type declarations, 5.0 => 7.0
• Python: type hints, PEP-484
• Python: mypy
Статические анализаторы
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 21 / 53
• mypy - статический анализатор кода
Статические анализаторы
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 22 / 53
• mypy - статический анализатор кода
• статический анализатор работает до
запуска программы
Статические анализаторы
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 23 / 53
• mypy - статический анализатор кода
• статический анализатор работает до
запуска программы
• статический анализатор обобщает
идею статической типизации
Анализаторы разных языков
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 24 / 53
• Ruby: RuboCop
• Perl: Perl::Critic
• Python: Coala, Pylama, mypy
• PHP: PHPLint, PHP Mess Detector
Static Analysis Symposium
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 25 / 53
• Научная конференция
• Проходила уже 23 раза
• 23 сборника статей примерно по 400
страниц
Хороший Язык Будущего
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 26 / 53
• Строгая типизация (PHP и JS - плохие)
• (Опциональная) статическая
типизация
• Package/vendoring manager
Package managers
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 27 / 53
• PHP: Composer
• Python: pip
• Perl: cpanminus
• Ruby: bundler
Хороший Язык Будущего
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 28 / 53
• Строгая типизация (PHP и JS - плохие)
• (Опциональная) статическая
типизация
• Package/vendoring manager
Хороший Язык Будущего
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 29 / 53
• Строгая типизация (PHP и JS - плохие)
• (Опциональная) статическая
типизация
• Package/vendoring manager
• Метапрограммирование
Хороший Язык Будущего
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 30 / 53
• Строгая типизация (PHP и JS - плохие)
• (Опциональная) статическая
типизация
• Package/vendoring manager
• Метапрограммирование
• Иммутабельность
Хороший Язык Будущего
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 31 / 53
• Строгая типизация (PHP и JS - плохие)
• (Опциональная) статическая
типизация
• Package/vendoring manager
• Метапрограммирование
• Иммутабельность
• Null-safety
Метапрограммирование
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 32 / 53
• Было в C - #ifdef
Метапрограммирование
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 33 / 53
• Было в C - #ifdef
• Было в Java - аннотации
Метапрограммирование
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 34 / 53
• Было в C - #ifdef
• Было в Java - аннотации
• Было в LISP - макросы
Сферический в вакууме
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 35 / 53
• Языку нужна среда исполнения
Сферический в вакууме
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 36 / 53
• Языку нужна среда исполнения
• JVM
Сферический в вакууме
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 37 / 53
• Языку нужна среда исполнения
• JVM
• V8
Сферический в вакууме
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 38 / 53
• Языку нужна среда исполнения
• JVM
• V8
• BEAM
Сферический в вакууме
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 39 / 53
• Языку нужна среда исполнения
• JVM
• V8
• BEAM
• Golang runtime (not a VM, but...)
A quest for my next PL
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 40 / 53
https://goo.gl/MS1UfB
Не надо всматриваться в скриншот сейчас!
Буду гиперполиглотом
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 41 / 53
http://hyperpolyglot.org
Почему не Golang?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 42 / 53
• Очень простой: 25 ключевых слов
Почему не Golang?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 43 / 53
• Очень простой: 25 ключевых слов
• Нет метапрограммирования
Почему не Golang?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 44 / 53
• Очень простой: 25 ключевых слов
• Нет метапрограммирования
• Нет иммутабельности
Почему не Golang?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 45 / 53
• Очень простой: 25 ключевых слов
• Нет метапрограммирования
• Нет иммутабельности
• Нет null-safety
Почему не Golang?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 46 / 53
• Очень простой: 25 ключевых слов
• Нет метапрограммирования
• Нет иммутабельности
• Нет null-safety
• Из Golang легко сделать Python
Почему не Golang?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 47 / 53
• Очень простой: 25 ключевых слов
• Нет метапрограммирования
• Нет иммутабельности
• Нет null-safety
• Из Golang легко сделать Python
• С вендорингом какая-то боль
Что реально успел?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 48 / 53
• Clojure: dynamic, strong
• Elixir: dynamic, strong
• Nim: static, strong, null-unsafe
• Rust: static, strong, null-safe
Как ощущения?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 49 / 53
Use libraries, not frameworks!
• Clojure: dynamic, strong
• Elixir: dynamic, strong
• Nim: static, strong, null-unsafe
• Rust: static, strong, null-safe
Haskell
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 50 / 53
Как открыть ВАЗ 2101 без ключа?
(Гораздо легче, чем пройти курс по Haskell*)
Выводы
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 51 / 53
• Я не знаю, что будет дальше
• Я не знаю, какой язык лучший
• Поэтому писать надо на всем
• Но, если можете, не пишите на COBOL
• BTW, death can be by TEX too!
Вопросы, пожалуйста?
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 52 / 53
• ...?
• ...?
• ...?
That’s all, folks!
Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 53 / 53
• alex@gitinsky.com
• https://telegram.me/lhommequipleure

More Related Content

PDF
My talk on programming languages at SPbLUG Mar 2017
PDF
My talk on DevOps :) at Stachka 2017
PPTX
Xp в brown field разработке
PDF
Введение в реактивный .NET
PDF
Релизимся чаще, или тернистый путь к continuous delivery
PDF
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
PPT
Собрать нельзя клонировать. Как выбрать подход к созданию кроссплатформенных ...
PDF
Egor Fedorov "Behavior-driven development in Python"
My talk on programming languages at SPbLUG Mar 2017
My talk on DevOps :) at Stachka 2017
Xp в brown field разработке
Введение в реактивный .NET
Релизимся чаще, или тернистый путь к continuous delivery
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Собрать нельзя клонировать. Как выбрать подход к созданию кроссплатформенных ...
Egor Fedorov "Behavior-driven development in Python"

What's hot (13)

PDF
Когда код «убивает», или зачем нам тестировать наши продукты
PDF
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
PPTX
Вебинар о конференции HighLoad++
PDF
Применение языка Go в инфраструктурных проектах
PDF
Профессиональная разработка в суровом Enterprise
PPTX
Учебный день конференции HighLoad++ 2013
PDF
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
PPTX
Python dependencies
PPTX
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп Дельгядо
PPTX
Aspect-Oriented Programming in PHP
PPTX
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
PDF
Alexandr Grytsenko "Typical Mistakes - Expensive Outcomes"
PDF
Кодогенерация в .NET: теория, практика и шаблоны T4
Когда код «убивает», или зачем нам тестировать наши продукты
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
Вебинар о конференции HighLoad++
Применение языка Go в инфраструктурных проектах
Профессиональная разработка в суровом Enterprise
Учебный день конференции HighLoad++ 2013
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Python dependencies
Сложный проект с нуля: сквозь воду, огонь и медные трубы / Филипп Дельгядо
Aspect-Oriented Programming in PHP
Как потратить 4 года и мешок денег на рефакторинг и ничего не запустить / М.Ч...
Alexandr Grytsenko "Typical Mistakes - Expensive Outcomes"
Кодогенерация в .NET: теория, практика и шаблоны T4
Ad

Viewers also liked (14)

PDF
Игорь Цупко, Notamedia — Документация? Не слышал
PDF
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
PPTX
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
PDF
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
PDF
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
PDF
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
PDF
Владимир Варнавский, интернет-студия «33 Кита» — Идеальный программист
PDF
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностей
PDF
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
PDF
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
PDF
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
PDF
Игорь Иванов, Playrix — Статистические предсказания игровой активности
PDF
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
PPTX
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Игорь Цупко, Notamedia — Документация? Не слышал
Сергей Яркин, Тензор — RabbitMQ. Насколько ценен мех и вкусно мясо?
Елена Никитина, Аналитический центр при Правительстве РФ — Путь питониста, ил...
Андрей Валдуев, Playrix — Основы тестирования и примеры использования базовых...
Александр Сербул, 1С-Битрикс — Облачный сервис персональных рекомендаций для ...
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
Владимир Варнавский, интернет-студия «33 Кита» — Идеальный программист
Денис Противенский, Percona — Percona Server for MongoDB: обзор возможностей
Анастасия Распопина, Percona — Feel at Home в на 90% распределённой компании:...
Денис Каленбет, АО «Эр-Стайл Софтлаб» — Самокапитализация программиста. Как п...
Анна Крижановская, Playrix — Продвижение мобильных приложений: Deep Dive
Игорь Иванов, Playrix — Статистические предсказания игровой активности
Дмитрий Ивакин, ООО «Пайлабс» — Node.js: realtime приложение на примере систе...
Роман Приходько, Владимир Беспрозванных, «Сбербанк-Технологии» — Платформа ЕФС
Ad

Similar to Александр Чистяков, Git in Sky — Современные тенденции в разработке программного обеспечения (20)

PDF
static - defcon russia 20
PPTX
Язык Ада в современной программной индустрии.
PDF
PPTX
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
PDF
Аудит безопасности программного кода: Подходы, стандарты, технологии выявлени...
ODP
GetDev.NET: Снова Эрланг
PPTX
Mva stf module 1 - rus
PPTX
Безопасность на максималках: как писать надёжный C/C++ код для встраиваемых с...
PPTX
Modern IT- technologies
PPTX
метод организации репозитория исходного кода
PDF
ОПК № 1 – Вводная
PDF
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
PDF
Обработка ошибок — общие соображения и грязные подробности
PPTX
Статические анализаторы кода как DevSecOps решение
PPTX
Compilable specifications by Dmytro Mindra
PDF
Как разраба
PDF
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
PDF
Сергей Крыжановский - Языки программирования
PPT
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
PPTX
DevSecOps против восстания машин
static - defcon russia 20
Язык Ада в современной программной индустрии.
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
Аудит безопасности программного кода: Подходы, стандарты, технологии выявлени...
GetDev.NET: Снова Эрланг
Mva stf module 1 - rus
Безопасность на максималках: как писать надёжный C/C++ код для встраиваемых с...
Modern IT- technologies
метод организации репозитория исходного кода
ОПК № 1 – Вводная
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...
Обработка ошибок — общие соображения и грязные подробности
Статические анализаторы кода как DevSecOps решение
Compilable specifications by Dmytro Mindra
Как разраба
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Сергей Крыжановский - Языки программирования
Никита Вельмаскин - Интерпретатор или думаем над скриптовым движком для Ваше...
DevSecOps против восстания машин

Александр Чистяков, Git in Sky — Современные тенденции в разработке программного обеспечения

  • 1. Современные тенденции в разработке ПО Александр Чистяков Git in Sky
  • 2. Несколько слов о себе Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 2 / 53 • Главный инженер в Git in Sky • Преподаватель в avalon.ru • Researcher @ ISST Lab, ITMO • Координатор встреч DevOps-инженеров в Петербурге • Пишу код
  • 3. Слово «современные» Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 3 / 53 Что изображено на картинке? (Мы будем говорить о вещах, придуманных 30 и более лет назад)
  • 4. Немного истории Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 4 / 53 Носитель информации 30 лет назад (Емкость примерно 200 килобайт)
  • 5. ALGOL-60 и далее Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 5 / 53 Структурное и процедурное программирование
  • 6. Корень всех зол (нет, не goto) Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 6 / 53 Как C-программист под DSP пишет на C#? В C# нет goto, но это не беда!
  • 7. Зачем нужно OOP? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 7 / 53 • Инкапсуляция, наследование, полиморфизм! • Пенсия Гради Буча
  • 8. Зачем на самом деле OOP? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 8 / 53 • Инкапсуляция, наследование, полиморфизм! • Пенсия Гради Буча • Кошелек Миллера (спасибо Григорию Петрову) • Закон Деметры • SOLID
  • 9. SOLID Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 9 / 53 • Single responsibility principle
  • 10. SOLID Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 10 / 53 • Single responsibility principle • Open/closed principle
  • 11. SOLID Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 11 / 53 • Single responsibility principle • Open/closed principle • Liskov substitution principle
  • 12. SOLID Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 12 / 53 • Single responsibility principle • Open/closed principle • Liskov substitution principle • Interface segregation principle
  • 13. SOLID Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 13 / 53 • Single responsibility principle • Open/closed principle • Liskov substitution principle • Interface segregation principle • Dependency inversion principle
  • 14. Что-то пошло не так Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 14 / 53 Objects have failed* (OOPSLA 2002) * на самом деле нет
  • 15. 2002+15 Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 15 / 53 Python - lingua franca индустрии В Python есть всё
  • 16. В Python есть всё Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 16 / 53 Зачем тогда что-то еще?
  • 17. Отнять и поделить Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 17 / 53 Почему не декриминализуют легкие наркотики?
  • 18. Хороший Язык Будущего Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 18 / 53 • Строгая типизация (PHP и JS - плохие)
  • 19. Хороший Язык Будущего Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 19 / 53 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация
  • 20. Опциональная типизация Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 20 / 53 • PHP: type declarations, 5.0 => 7.0 • Python: type hints, PEP-484 • Python: mypy
  • 21. Статические анализаторы Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 21 / 53 • mypy - статический анализатор кода
  • 22. Статические анализаторы Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 22 / 53 • mypy - статический анализатор кода • статический анализатор работает до запуска программы
  • 23. Статические анализаторы Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 23 / 53 • mypy - статический анализатор кода • статический анализатор работает до запуска программы • статический анализатор обобщает идею статической типизации
  • 24. Анализаторы разных языков Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 24 / 53 • Ruby: RuboCop • Perl: Perl::Critic • Python: Coala, Pylama, mypy • PHP: PHPLint, PHP Mess Detector
  • 25. Static Analysis Symposium Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 25 / 53 • Научная конференция • Проходила уже 23 раза • 23 сборника статей примерно по 400 страниц
  • 26. Хороший Язык Будущего Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 26 / 53 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager
  • 27. Package managers Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 27 / 53 • PHP: Composer • Python: pip • Perl: cpanminus • Ruby: bundler
  • 28. Хороший Язык Будущего Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 28 / 53 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager
  • 29. Хороший Язык Будущего Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 29 / 53 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager • Метапрограммирование
  • 30. Хороший Язык Будущего Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 30 / 53 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager • Метапрограммирование • Иммутабельность
  • 31. Хороший Язык Будущего Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 31 / 53 • Строгая типизация (PHP и JS - плохие) • (Опциональная) статическая типизация • Package/vendoring manager • Метапрограммирование • Иммутабельность • Null-safety
  • 32. Метапрограммирование Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 32 / 53 • Было в C - #ifdef
  • 33. Метапрограммирование Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 33 / 53 • Было в C - #ifdef • Было в Java - аннотации
  • 34. Метапрограммирование Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 34 / 53 • Было в C - #ifdef • Было в Java - аннотации • Было в LISP - макросы
  • 35. Сферический в вакууме Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 35 / 53 • Языку нужна среда исполнения
  • 36. Сферический в вакууме Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 36 / 53 • Языку нужна среда исполнения • JVM
  • 37. Сферический в вакууме Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 37 / 53 • Языку нужна среда исполнения • JVM • V8
  • 38. Сферический в вакууме Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 38 / 53 • Языку нужна среда исполнения • JVM • V8 • BEAM
  • 39. Сферический в вакууме Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 39 / 53 • Языку нужна среда исполнения • JVM • V8 • BEAM • Golang runtime (not a VM, but...)
  • 40. A quest for my next PL Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 40 / 53 https://goo.gl/MS1UfB Не надо всматриваться в скриншот сейчас!
  • 41. Буду гиперполиглотом Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 41 / 53 http://hyperpolyglot.org
  • 42. Почему не Golang? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 42 / 53 • Очень простой: 25 ключевых слов
  • 43. Почему не Golang? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 43 / 53 • Очень простой: 25 ключевых слов • Нет метапрограммирования
  • 44. Почему не Golang? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 44 / 53 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности
  • 45. Почему не Golang? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 45 / 53 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности • Нет null-safety
  • 46. Почему не Golang? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 46 / 53 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности • Нет null-safety • Из Golang легко сделать Python
  • 47. Почему не Golang? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 47 / 53 • Очень простой: 25 ключевых слов • Нет метапрограммирования • Нет иммутабельности • Нет null-safety • Из Golang легко сделать Python • С вендорингом какая-то боль
  • 48. Что реально успел? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 48 / 53 • Clojure: dynamic, strong • Elixir: dynamic, strong • Nim: static, strong, null-unsafe • Rust: static, strong, null-safe
  • 49. Как ощущения? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 49 / 53 Use libraries, not frameworks! • Clojure: dynamic, strong • Elixir: dynamic, strong • Nim: static, strong, null-unsafe • Rust: static, strong, null-safe
  • 50. Haskell Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 50 / 53 Как открыть ВАЗ 2101 без ключа? (Гораздо легче, чем пройти курс по Haskell*)
  • 51. Выводы Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 51 / 53 • Я не знаю, что будет дальше • Я не знаю, какой язык лучший • Поэтому писать надо на всем • Но, если можете, не пишите на COBOL • BTW, death can be by TEX too!
  • 52. Вопросы, пожалуйста? Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 52 / 53 • ...? • ...? • ...?
  • 53. That’s all, folks! Александр Чистяков, Git in Sky Современные тенденции в разработке ПО 53 / 53 • alex@gitinsky.com • https://telegram.me/lhommequipleure