Обо мне
● 10 лет программирую на Java за еду
● 13 лет программирую на Java за идею
● Работаю в Эксельсиор программистом
2
@AlexeyZhidkov +AlekseyZhidkov @aleksey-zhidkov
Slide 3
Slide 3 text
План
1. Анекдот
2. Несколько синтаксических примеров
3. Решение реальной задачи на Котлине
4. Кому и когда нужен Котлин
3
Slide 4
Slide 4 text
4
АНЕКДОТ -
Очень маленький рассказ с забавным, смешным содержанием и неожиданным острым концом.
(Словарь Ожегова)
Короткий по содержанию и сжатый в изложении рассказ о замечательном или забавном случае;
байка, баутка.
(Словарь Даля)
Вымышленный, короткий рассказ о смешном, забавном происшествии
(Словарь Ушакова)
Slide 5
Slide 5 text
Kotlin
Statically typed programming language
for the JVM, Android and the browser
100% interoperable with Java™
5
Slide 6
Slide 6 text
6
Slide 7
Slide 7 text
Почему Java Platform?
○ Быстрая, но гибкая
○ Кроссплатформенная - Server side, Desktop, Android, iOS,
embedded
○ Профайлеры, мониторинг, дебаггинг, IDE, библиотеки
7
Slide 8
Slide 8 text
Бэкап с экспоненциальным
интервалом
8
Сегодня
Вчера
2 дня назад
4 дня назад
8 дней назад
16 дней назад
Slide 9
Slide 9 text
Ханойские башни
9
Задача: переместить башню с одного стержня на другой
Условия:
● За один ход можно переместить 1 диск
● Нельзя помещать больший диск на меньший
Одно из решений:
многократно повторять действия: 1-2, 1-3, 2-3,
где x-y означает: перенести диск между стержнями x и y
в допустимом направлении
Slide 10
Slide 10 text
Термины
● Лента, Tape, Диск - теоретически независимое
устройство хранения данных, но практически
поддиректория с именем соответсвующим номеру
диска/ленты
● Backup - фактически снапшот исходной директории на
момент бэкапа; содержимое ленты
● Перемещение диска N между любыми стержнями -
запись снапшота исходной дирекотории в поддиректорию 10
Slide 11
Slide 11 text
11
jeb
Backuper
Hanoi
Io
State
Slide 12
Slide 12 text
12
otlin - язык создаваемый для того чтобы
“мочить” конкурентов [одной очень хорошей
и доброй компании]
Slide 13
Slide 13 text
Kotlin на Андроид
● Компиляция в байткод Java 6
● Полная интероперабельность с Java
● Anko - layout DSL and misc SDK improvements
● Kotlin Android Extensions - compiler plugin to eliminate
findViewById
13
Кому и когда нужен Kotlin*
15
Статическая
типизация
Java
Interoperability
Скорость
обучения
Поддержка ФП Баллы
Kotlin ✓ ✓ ✓ ✓/✗ 3.75
Groovy ✗/✓ ✓/✗ ✓ ✗/✓ 2.25
Scala ✓ ✗ ✗ ✓ 2
Ceylon ✓ ✗ ✗ ✓/✗ 1.75
Clojure ✗ ✗ ✗ ✓ 1
* этот слай - очень грубый наброс на вентилятор, для того чтобы понять контекст,
ознакомтесь с этим тредом: https://twitter.com/TechTalksNSU/status/661557729446727680
Slide 16
Slide 16 text
16
Вопросы
@AlexeyZhidkov +AlekseyZhidkov @aleksey-zhidkov