75
Выбор языка программирования Александр Чистяков Clear Technology Group

Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Выбор языка программирования

Александр Чистяков

Clear Technology Group

Page 2: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Несколько слов о себе

Александр Чистяков, ClearTech Выбор языка программирования 2 / 75

• C{E,T}O @ Clear Technology Group

• Преподаватель @ avalon.ru

• Researcher @ ISST Lab, ITMO

• Координатор встречDevOps-инженеров в Петербурге

• Пишу код

Page 3: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

О чем это доклад?

Александр Чистяков, ClearTech Выбор языка программирования 3 / 75

• Я отвечу в самом конце

Page 4: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что такое «DevOps»?

Александр Чистяков, ClearTech Выбор языка программирования 4 / 75

• Отличный вопрос для собеседования!

Page 5: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что такое «DevOps»?

Александр Чистяков, ClearTech Выбор языка программирования 5 / 75

• Отличный вопрос для собеседования!

• Термин из прошлого десятилетия

Page 6: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что такое «DevOps»?

Александр Чистяков, ClearTech Выбор языка программирования 6 / 75

• Отличный вопрос для собеседования!

• Термин из прошлого десятилетия

• Набор практик

Page 7: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что такое «DevOps»?

Александр Чистяков, ClearTech Выбор языка программирования 7 / 75

• Отличный вопрос для собеседования!

• Термин из прошлого десятилетия

• Набор практик

• CAMS

Page 8: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

CAMS

Александр Чистяков, ClearTech Выбор языка программирования 8 / 75

C - CultureРаз-раз и высший класс!

Page 9: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

CAMS

Александр Чистяков, ClearTech Выбор языка программирования 9 / 75

A - AutomationHumans need not apply

Page 10: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

CAMS

Александр Чистяков, ClearTech Выбор языка программирования 10 / 75

M - MeasurementЗапомните этот прибор!

Page 11: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

CAMS

Александр Чистяков, ClearTech Выбор языка программирования 11 / 75

S - SharingInformation must be free!

Page 12: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

CAMS(R)

Александр Чистяков, ClearTech Выбор языка программирования 12 / 75

R - Repeatability (плачет в углу)https://www.opennet.ru/opennews/art.shtml?num=46338

Page 13: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Repeatability

Александр Чистяков, ClearTech Выбор языка программирования 13 / 75

Docker(на самом деле - нет)

Page 14: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Repeatability

Александр Чистяков, ClearTech Выбор языка программирования 14 / 75

Nixpkgs(Nixpkgs + Docker)!

• Два варианта

• https://goo.gl/6uxL0M

• https://goo.gl/wkduPv

• Типичный случай аксиомы Эскобара

Page 15: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Немного истории

Александр Чистяков, ClearTech Выбор языка программирования 15 / 75

Что изображено на картинке?(Поговорим о реальном старье)

Page 16: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Немного истории

Александр Чистяков, ClearTech Выбор языка программирования 16 / 75

Носитель информации 30 лет назад(Емкость примерно 200 килобайт)

Page 17: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

ALGOL-60 и далее

Александр Чистяков, ClearTech Выбор языка программирования 17 / 75

Структурное ипроцедурноепрограммирование

Page 18: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Корень всех зол (нет, не goto)

Александр Чистяков, ClearTech Выбор языка программирования 18 / 75

Как C-программистпод DSP пишет на C#?В C# нет goto, но это не беда!

Page 19: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Зачем нужно OOP?

Александр Чистяков, ClearTech Выбор языка программирования 19 / 75

• Инкапсуляция, наследование,полиморфизм!

• Пенсия Гради Буча

Page 20: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Зачем на самом деле OOP?

Александр Чистяков, ClearTech Выбор языка программирования 20 / 75

• Инкапсуляция, наследование,полиморфизм!

• Пенсия Гради Буча

• Кошелек Миллера (спасибо ГригориюПетрову)

• Закон Деметры

• SOLID

Page 21: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

SOLID

Александр Чистяков, ClearTech Выбор языка программирования 21 / 75

• Single responsibility principle

Page 22: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

SOLID

Александр Чистяков, ClearTech Выбор языка программирования 22 / 75

• Single responsibility principle

• Open/closed principle

Page 23: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

SOLID

Александр Чистяков, ClearTech Выбор языка программирования 23 / 75

• Single responsibility principle

• Open/closed principle

• Liskov substitution principle

Page 24: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

SOLID

Александр Чистяков, ClearTech Выбор языка программирования 24 / 75

• Single responsibility principle

• Open/closed principle

• Liskov substitution principle

• Interface segregation principle

Page 25: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

SOLID

Александр Чистяков, ClearTech Выбор языка программирования 25 / 75

• Single responsibility principle

• Open/closed principle

• Liskov substitution principle

• Interface segregation principle

• Dependency inversion principle

Page 26: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что-то пошло не так

Александр Чистяков, ClearTech Выбор языка программирования 26 / 75

Objects have failed* (OOPSLA 2002)* на самом деле нет

Page 27: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

2002+15

Александр Чистяков, ClearTech Выбор языка программирования 27 / 75

Python - lingua franca индустрииВ Python есть всё

Page 28: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

В Python есть всё

Александр Чистяков, ClearTech Выбор языка программирования 28 / 75

Зачем тогда что-то еще?

Page 29: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Отнять и поделить

Александр Чистяков, ClearTech Выбор языка программирования 29 / 75

Почему не декриминализуют легкиенаркотики?

Page 30: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Хороший Язык Будущего

Александр Чистяков, ClearTech Выбор языка программирования 30 / 75

• Строгая типизация (PHP и JS - плохие)

Page 31: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Хороший Язык Будущего

Александр Чистяков, ClearTech Выбор языка программирования 31 / 75

• Строгая типизация (PHP и JS - плохие)

• (Опциональная) статическаятипизация

Page 32: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Опциональная типизация

Александр Чистяков, ClearTech Выбор языка программирования 32 / 75

• PHP: type declarations, 5.0 => 7.0

• Python: type hints, PEP-484

• Python: mypy

Page 33: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Статические анализаторы

Александр Чистяков, ClearTech Выбор языка программирования 33 / 75

• mypy - статический анализатор кода

Page 34: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Статические анализаторы

Александр Чистяков, ClearTech Выбор языка программирования 34 / 75

• mypy - статический анализатор кода

• статический анализатор работает дозапуска программы

Page 35: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Статические анализаторы

Александр Чистяков, ClearTech Выбор языка программирования 35 / 75

• mypy - статический анализатор кода

• статический анализатор работает дозапуска программы

• статический анализатор обобщаетидею статической типизации

Page 36: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Анализаторы разных языков

Александр Чистяков, ClearTech Выбор языка программирования 36 / 75

• Ruby: RuboCop

• Perl: Perl::Critic

• Python: Coala, Pylama, mypy

• PHP: PHPLint, PHP Mess Detector

Page 37: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Static Analysis Symposium

Александр Чистяков, ClearTech Выбор языка программирования 37 / 75

• Научная конференция

• Проходила уже 23 раза

• 23 сборника статей примерно по 400страниц

Page 38: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Хороший Язык Будущего

Александр Чистяков, ClearTech Выбор языка программирования 38 / 75

• Строгая типизация (PHP и JS - плохие)

• (Опциональная) статическаятипизация

• Package/vendoring manager

Page 39: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Package managers

Александр Чистяков, ClearTech Выбор языка программирования 39 / 75

• PHP: Composer

• Python: pip

• Perl: cpanminus

• Ruby: bundler

Page 40: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Хороший Язык Будущего

Александр Чистяков, ClearTech Выбор языка программирования 40 / 75

• Строгая типизация (PHP и JS - плохие)

• (Опциональная) статическаятипизация

• Package/vendoring manager

Page 41: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Хороший Язык Будущего

Александр Чистяков, ClearTech Выбор языка программирования 41 / 75

• Строгая типизация (PHP и JS - плохие)

• (Опциональная) статическаятипизация

• Package/vendoring manager

• Метапрограммирование

Page 42: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Хороший Язык Будущего

Александр Чистяков, ClearTech Выбор языка программирования 42 / 75

• Строгая типизация (PHP и JS - плохие)

• (Опциональная) статическаятипизация

• Package/vendoring manager

• Метапрограммирование

• Иммутабельность

Page 43: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Иммутабельность

Александр Чистяков, ClearTech Выбор языка программирования 43 / 75

Доклад Боба Ипполито в 2014-мверен и в 2017-м

Page 44: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Хороший Язык Будущего

Александр Чистяков, ClearTech Выбор языка программирования 44 / 75

• Строгая типизация (PHP и JS - плохие)

• (Опциональная) статическаятипизация

• Package/vendoring manager

• Метапрограммирование

• Иммутабельность

• Null-safety

Page 45: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Метапрограммирование

Александр Чистяков, ClearTech Выбор языка программирования 45 / 75

• Было в C - #ifdef

Page 46: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Метапрограммирование

Александр Чистяков, ClearTech Выбор языка программирования 46 / 75

• Было в C - #ifdef

• Было в Java - аннотации

Page 47: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Метапрограммирование

Александр Чистяков, ClearTech Выбор языка программирования 47 / 75

• Было в C - #ifdef

• Было в Java - аннотации

• Было в LISP - макросы

Page 48: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Сферический в вакууме

Александр Чистяков, ClearTech Выбор языка программирования 48 / 75

• Языку нужна среда исполнения

Page 49: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Сферический в вакууме

Александр Чистяков, ClearTech Выбор языка программирования 49 / 75

• Языку нужна среда исполнения

• JVM

Page 50: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Сферический в вакууме

Александр Чистяков, ClearTech Выбор языка программирования 50 / 75

• Языку нужна среда исполнения

• JVM

• V8

Page 51: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Сферический в вакууме

Александр Чистяков, ClearTech Выбор языка программирования 51 / 75

• Языку нужна среда исполнения

• JVM

• V8

• BEAM

Page 52: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Сферический в вакууме

Александр Чистяков, ClearTech Выбор языка программирования 52 / 75

• Языку нужна среда исполнения

• JVM

• V8

• BEAM

• Golang runtime (not a VM, but...)

Page 53: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

A quest for my next PL

Александр Чистяков, ClearTech Выбор языка программирования 53 / 75

https://goo.gl/MS1UfB

Page 54: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Буду гиперполиглотом

Александр Чистяков, ClearTech Выбор языка программирования 54 / 75

http://hyperpolyglot.org

Page 55: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Почему не Golang?

Александр Чистяков, ClearTech Выбор языка программирования 55 / 75

• Очень простой: 25 ключевых слов

Page 56: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Почему не Golang?

Александр Чистяков, ClearTech Выбор языка программирования 56 / 75

• Очень простой: 25 ключевых слов

• Нет метапрограммирования

Page 57: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Почему не Golang?

Александр Чистяков, ClearTech Выбор языка программирования 57 / 75

• Очень простой: 25 ключевых слов

• Нет метапрограммирования

• Нет иммутабельности

Page 58: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Почему не Golang?

Александр Чистяков, ClearTech Выбор языка программирования 58 / 75

• Очень простой: 25 ключевых слов

• Нет метапрограммирования

• Нет иммутабельности

• Нет null-safety

Page 59: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Почему не Golang?

Александр Чистяков, ClearTech Выбор языка программирования 59 / 75

• Очень простой: 25 ключевых слов

• Нет метапрограммирования

• Нет иммутабельности

• Нет null-safety

• Из Golang легко сделать Python

Page 60: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Почему не Golang?

Александр Чистяков, ClearTech Выбор языка программирования 60 / 75

• Очень простой: 25 ключевых слов

• Нет метапрограммирования

• Нет иммутабельности

• Нет null-safety

• Из Golang легко сделать Python

• С вендорингом какая-то боль

Page 61: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что реально успел?

Александр Чистяков, ClearTech Выбор языка программирования 61 / 75

• Clojure: dynamic, strong

• Elixir: dynamic, strong

• Nim: static, strong, null-unsafe

• Rust: static, strong, null-safe

Page 62: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Как ощущения?

Александр Чистяков, ClearTech Выбор языка программирования 62 / 75

Use libraries, not frameworks!

• Clojure: dynamic, strong

• Elixir: dynamic, strong

• Nim: static, strong, null-unsafe

• Rust: static, strong, null-safe

Page 63: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Use libraries, not frameworks!

Александр Чистяков, ClearTech Выбор языка программирования 63 / 75

• Везде генерируется scaffolding

• Везде есть порт Sinatra

• Везде есть ORM tool

Page 64: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Use libraries, not frameworks!

Александр Чистяков, ClearTech Выбор языка программирования 64 / 75

Есть опасность написать свой фреймворк

Page 65: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Чего еще нет в Python?

Александр Чистяков, ClearTech Выбор языка программирования 65 / 75

Скорости!

Page 66: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что насчет скорости?

Александр Чистяков, ClearTech Выбор языка программирования 66 / 75

Динамические языки

• JIT compilers

Page 67: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что насчет скорости?

Александр Чистяков, ClearTech Выбор языка программирования 67 / 75

Динамические языки

• JIT compilers

• GraalVM

Page 68: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что насчет скорости?

Александр Чистяков, ClearTech Выбор языка программирования 68 / 75

Динамические языки

• JIT compilers

• GraalVM

• Truffle framework

Page 69: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Что насчет скорости?

Александр Чистяков, ClearTech Выбор языка программирования 69 / 75

Статически типизированные языки

• Zero-cost abstractions

Page 70: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Haskell

Александр Чистяков, ClearTech Выбор языка программирования 70 / 75

Как открыть ВАЗ 2101 без ключа?(Гораздо легче, чем пройти курс по Haskell*)

Page 71: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Героическое фэнтези

Александр Чистяков, ClearTech Выбор языка программирования 71 / 75

Типичный состав команды

• Лоховатый главный герой (спотенциалом)

• Дева в беде (муза героя)

• Болтливый друг героя (безпотенциала)

• Воительница

Page 72: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Мужские роли играю я

Александр Чистяков, ClearTech Выбор языка программирования 72 / 75

Page 73: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Выводы

Александр Чистяков, ClearTech Выбор языка программирования 73 / 75

• DevOps - из прошлого десятилетия

• LISP - из 1958-го года

• Я не знаю, что будет дальше

• Я не знаю, какой язык лучший

• Поэтому писать надо на всем

• «Hо не пиши на Коболе, если можешьэтого избежать»

Page 74: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

Вопросы, пожалуйста?

Александр Чистяков, ClearTech Выбор языка программирования 74 / 75

• ...?

• ...?

• ...?

Page 75: Выборязыкапрограммирования · 2017. 6. 17. · Несколькословосебе АлександрЧистяков,ClearTech Выборязыкапрограммирования

That’s all, folks!

Александр Чистяков, ClearTech Выбор языка программирования 75 / 75

[email protected]

• https://telegram.me/lhommequipleure