SlideShare a Scribd company logo
Kotlin в продакшн.
Как и зачем?
Кирилл Бубочкин
11-я конференция .NET разработчиков
31 октября 2015
dotnetconf.ru
2
Что плохо в Java?
● Избыточность
3
Что плохо в Java?
● Избыточность
● NullPointerException
4
Что плохо в Java?
● Избыточность
● NullPointerException
● Нет множественного
наследования
5
Что плохо в Java?
● Избыточность
● NullPointerException
● Нет множественного
наследования
● Еще раз избыточность
6
Что плохо в Java?
● Избыточность
● NullPointerException
● Нет множественного
наследования
● Еще раз избыточность
● Java 8
7
Что плохо в Java?
● Избыточность
● NullPointerException
● Нет множественного
наследования
● Еще раз избыточность
● Java 8… не дождемся
8
Что такое Kotlin?
Statically typed programming language for
the JVM, Android and the browser
● Совместимость
● Корректность
● Лаконичность
9
Kotlin vs Scala
“If you are happy with Scala,
you probably do not need
Kotlin”
Как?
11
Делаем проект на Kotlin
1. Установить плагин
2. Сконвертировать проект
3. Написать код
4. …
5. Profit!
О достоинствах
13
1. Краткость
14
1. Краткость
15
2. Повышение читаемости
16
2. Повышение читаемости
17
3. NullPointerException
? !! ?:
18
3. NullPointerException
19
4. Совместимость с Java
20
и еще:
● Разработчики прислушиваются
к сообществу
● “Нативная” поддержка в
Android Studio
21
и еще:
О недостатках
23
1. Breaking changes
24
2. Нас меньшинство
Вопросов на StackOverflow
Всего Сегодня На этой неделе
Java 946935 906 5495
Scala 42807 44 274
Kotlin 363 0 10
25
и еще:
● Документация могла бы быть
лучше
● Далеко до stable-релиза
● Интеллектуальный режим в IDE
● Прожорливость
Так все-таки, в production?
27
Спасибо за внимание
Кирилл Бубочкин
ookami.kb@gmail.com
plus.google.com/+KirillBubochkin

More Related Content

PPTX
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
PDF
Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
PDF
Опыт внедрения Docker .
PDF
Kotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
PDF
Egor Fedorov "Behavior-driven development in Python"
PPT
Platypus platform ivbit
PPTX
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
PDF
OOP и WordPress. Подумаем о будущем проекта.
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
Опыт внедрения Docker .
Kotlin Native. Святослав Щербина, Senior Software Developer, Kotlin
Egor Fedorov "Behavior-driven development in Python"
Platypus platform ivbit
Успешный кейс использования React Native в продакшне, Евгений Федоров (LOOKBUCK)
OOP и WordPress. Подумаем о будущем проекта.

What's hot (17)

PDF
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
PDF
Гибкие методики разработки. Кто их придумал и почему
PDF
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
PPT
использование .Net framework
PDF
Знакомьтесь, Kotlin
PDF
kranonit S01E01 Серёжа Пономарёв-Современный программист 2.1
PDF
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
PPTX
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
PPTX
CodeFest 2014. Шкредов С. — Управление зависимостями в архитектуре. Переход о...
PDF
Повышаем и следим за качеством PHP кода
PDF
Copy of презентация
PPTX
Как писать на PHP и не стать быдло-кодером
PDF
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
PDF
Как и зачем можно создать DSL на Python
PDF
Релизимся чаще, или тернистый путь к continuous delivery
PDF
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
PPT
About emacs
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Гибкие методики разработки. Кто их придумал и почему
Библиотека UI компонентов, о которой вы всегда мечтали / Роберт Харитонов (Li...
использование .Net framework
Знакомьтесь, Kotlin
kranonit S01E01 Серёжа Пономарёв-Современный программист 2.1
kranonit S01E01 Серёжа Пономарёв: Современный программист 2.1
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
CodeFest 2014. Шкредов С. — Управление зависимостями в архитектуре. Переход о...
Повышаем и следим за качеством PHP кода
Copy of презентация
Как писать на PHP и не стать быдло-кодером
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
Как и зачем можно создать DSL на Python
Релизимся чаще, или тернистый путь к continuous delivery
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
About emacs
Ad

Viewers also liked (20)

PDF
Taking Kotlin to production, Seriously
PDF
Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
PDF
Как в E96.ru устроено продуктивное окружение, Данила Штань, ex-e96.ru
PPTX
DUMP-2015: «Кривая обучения в настольных играх» Сергей Абдульманов, Мосигра, ...
PPTX
Android opetuksessa 11.9.14
PPTX
Scala Day by Day
KEY
Scala
PDF
20140531 serebryany lecture01_fantastic_cpp_bugs
PDF
Kotlin Overview
PPTX
Intro to kotlin
PDF
Infinum Android Talks #20 - Benefits of using Kotlin
PDF
Процесс качественного дизайна web-продукта. Его тяжело найти, легко потерять...
PPT
Do Languages Matter?
PDF
Kotlin advanced - language reference for android developers
PDF
Programming in scala - 1
PDF
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
PDF
Kotlin: Why Do You Care?
PDF
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
PPTX
Scala in practice
PPTX
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
Taking Kotlin to production, Seriously
Как выжить в диких условиях сложного развивающегося продукта. Что полюбить, ...
Как в E96.ru устроено продуктивное окружение, Данила Штань, ex-e96.ru
DUMP-2015: «Кривая обучения в настольных играх» Сергей Абдульманов, Мосигра, ...
Android opetuksessa 11.9.14
Scala Day by Day
Scala
20140531 serebryany lecture01_fantastic_cpp_bugs
Kotlin Overview
Intro to kotlin
Infinum Android Talks #20 - Benefits of using Kotlin
Процесс качественного дизайна web-продукта. Его тяжело найти, легко потерять...
Do Languages Matter?
Kotlin advanced - language reference for android developers
Programming in scala - 1
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
Kotlin: Why Do You Care?
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
Scala in practice
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
Ad

Similar to Kotlin в production. Как и зачем? (20)

PDF
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
PDF
Как приручить реактивное программирование
PPTX
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
PDF
Joker2014
PPTX
От идеи до 10 миллионов скачиваний: King of Thieves (Олег Якубенков, Zeptolab)
PPTX
Валерий Петров «Модель памяти .NET»
PPTX
Can we have some more quality - Russian version
PDF
Иван Крутов - Автоматизация сборки Java-проекта
PPT
Как стать героем
PDF
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
PDF
reactive dotNet
PDF
Выбираем стратегию создания бранчей
PDF
Введение в реактивный .NET
PPTX
Как заводить баги понятно всем
PDF
C&C for coffee'n'code
PDF
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
PPTX
MagicPlot @ UXSPb @ IT Global Meetup #7
PDF
Javaone 2013 moscow gradle
PDF
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
PDF
Константин Васильев «Fody против рутины»
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Как приручить реактивное программирование
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Joker2014
От идеи до 10 миллионов скачиваний: King of Thieves (Олег Якубенков, Zeptolab)
Валерий Петров «Модель памяти .NET»
Can we have some more quality - Russian version
Иван Крутов - Автоматизация сборки Java-проекта
Как стать героем
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
reactive dotNet
Выбираем стратегию создания бранчей
Введение в реактивный .NET
Как заводить баги понятно всем
C&C for coffee'n'code
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
MagicPlot @ UXSPb @ IT Global Meetup #7
Javaone 2013 moscow gradle
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
Константин Васильев «Fody против рутины»

More from DotNetConf (18)

PDF
Как грабить корованы
PDF
Как анимировать тысячи объектов на карте и не подвесить браузер
PDF
Микросервисы: взгляд сверху и в бок
POTX
Разработка надежных параллельных, распределенных приложений: быстро и дешево
PDF
Делаем очередь поверх Кассандры
PDF
К искусству записи пользовательских историй
PDF
Как это будет: ASP.NET Core
PDF
Continuous Delivery для ASP.NET MVC проекта под Linux
PDF
Кроссплатформенная библиотека для Android и iOS: за и против
PDF
Быстрый бэкенд с parse.com
PDF
Как жить в согласии с SOLID?
PDF
Многопоточное программирование на C#, путевые заметки
PDF
Платформа Apache Hadoop
PDF
Робототехника для прикладных программистов
PDF
Разработка Windows 8 приложений глазами WPF/Silverlight программиста
PDF
Inversion of Control в .NET
PDF
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
PPTX
Машинное обучение на платформе .NET
Как грабить корованы
Как анимировать тысячи объектов на карте и не подвесить браузер
Микросервисы: взгляд сверху и в бок
Разработка надежных параллельных, распределенных приложений: быстро и дешево
Делаем очередь поверх Кассандры
К искусству записи пользовательских историй
Как это будет: ASP.NET Core
Continuous Delivery для ASP.NET MVC проекта под Linux
Кроссплатформенная библиотека для Android и iOS: за и против
Быстрый бэкенд с parse.com
Как жить в согласии с SOLID?
Многопоточное программирование на C#, путевые заметки
Платформа Apache Hadoop
Робототехника для прикладных программистов
Разработка Windows 8 приложений глазами WPF/Silverlight программиста
Inversion of Control в .NET
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Машинное обучение на платформе .NET

Kotlin в production. Как и зачем?