SlideShare a Scribd company logo
Знакомьтесь,
Kotlin
Алексей Жидков
Обо мне
● 10 лет программирую на Java за еду
● 13 лет программирую на Java за идею
● Работаю в Эксельсиор программистом
2
@AlexeyZhidkov +AlekseyZhidkov @aleksey-zhidkov
План
1. Анекдот
2. Несколько синтаксических примеров
3. Решение реальной задачи на Котлине
4. Кому и когда нужен Котлин
3
4
АНЕКДОТ -
Очень маленький рассказ с забавным, смешным содержанием и неожиданным острым концом.
(Словарь Ожегова)
Короткий по содержанию и сжатый в изложении рассказ о замечательном или забавном случае;
байка, баутка.
(Словарь Даля)
Вымышленный, короткий рассказ о смешном, забавном происшествии
(Словарь Ушакова)
Kotlin
Statically typed programming language
for the JVM, Android and the browser
100% interoperable with Java™
5
6
Почему Java Platform?
○ Быстрая, но гибкая
○ Кроссплатформенная - Server side, Desktop, Android, iOS,
embedded
○ Профайлеры, мониторинг, дебаггинг, IDE, библиотеки
7
Бэкап с экспоненциальным
интервалом
8
Сегодня
Вчера
2дняназад
4дняназад
8днейназад
16днейназад
Ханойские башни
9
Задача: переместить башню с одного стержня на другой
Условия:
● За один ход можно переместить 1 диск
● Нельзя помещать больший диск на меньший
Одно из решений:
многократно повторять действия: 1-2, 1-3, 2-3,
где x-y означает: перенести диск между стержнями x и y
в допустимом направлении
Термины
● Лента, Tape, Диск - теоретически независимое
устройство хранения данных, но практически
поддиректория с именем соответсвующим номеру
диска/ленты
● Backup - фактически снапшот исходной директории на
момент бэкапа; содержимое ленты
● Перемещение диска N между любыми стержнями -
запись снапшота исходной дирекотории в поддиректорию 10
11
jeb
Backuper
Hanoi
IoState
12
otlin - язык создаваемый для того чтобы
“мочить” конкурентов [одной очень хорошей
и доброй компании]
Kotlin на Андроид
● Компиляция в байткод Java 6
● Полная интероперабельность с Java
● Anko - layout DSL and misc SDK improvements
● Kotlin Android Extensions - compiler plugin to eliminate
findViewById
13
Kotlin на Андроид
14Источник: http://slides.com/antonrutkevich/kotlin-intro-voxxed#/36
Library Size Method Count
scala-library-2.11.7 5.7 Mb 50 811
groovy-2.4.4 4.6 Mb 28 768
kotlin-runtime-0.13.1513 0.29 Mb 1 067
kotlin-stdlib-0.13.1513 0.88 Mb 7 672
Кому и когда нужен Kotlin*
15
Статическая
типизация
Java
Interoperability
Скорость
обучения
Поддержка ФП Баллы
Kotlin ✓ ✓ ✓ ✓/✗ 3.75
Groovy ✗/✓ ✓/✗ ✓ ✗/✓ 2.25
Scala ✓ ✗ ✗ ✓ 2
Ceylon ✓ ✗ ✗ ✓/✗ 1.75
Clojure ✗ ✗ ✗ ✓ 1
* этот слай - очень грубый наброс на вентилятор, для того чтобы понять контекст,
ознакомтесь с этим тредом: https://twitter.com/TechTalksNSU/status/661557729446727680
16
Вопросы
@AlexeyZhidkov +AlekseyZhidkov @aleksey-zhidkov

More Related Content

Viewers also liked

Android opetuksessa 11.9.14
Android opetuksessa 11.9.14Android opetuksessa 11.9.14
Android opetuksessa 11.9.14Matleena Laakso
 
Scala Day by Day
Scala Day by DayScala Day by Day
Scala Day by Day
Ionut Andonescu
 
Scala
ScalaScala
Scala
popeast
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin Overview
Silicon Straits
 
Infinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using KotlinInfinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using Kotlin
Infinum
 
Intro to kotlin
Intro to kotlinIntro to kotlin
Intro to kotlin
Tomislav Homan
 
Do Languages Matter?
Do Languages Matter?Do Languages Matter?
Do Languages Matter?
Bruce Eckel
 
Programming in scala - 1
Programming in scala - 1Programming in scala - 1
Programming in scala - 1
Mukesh Kumar
 
Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?
DotNetConf
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developers
Bartosz Kosarzycki
 
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
Leonardo Zanivan
 
Kotlin: Why Do You Care?
Kotlin: Why Do You Care?Kotlin: Why Do You Care?
Kotlin: Why Do You Care?
intelliyole
 
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart CastsTMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
Iosif Itkin
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
Tomer Gabel
 
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
Provectus
 
Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?Andrey Breslav
 
Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)
Scott Wlaschin
 

Viewers also liked (18)

Android opetuksessa 11.9.14
Android opetuksessa 11.9.14Android opetuksessa 11.9.14
Android opetuksessa 11.9.14
 
Scala Day by Day
Scala Day by DayScala Day by Day
Scala Day by Day
 
Scala
ScalaScala
Scala
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin Overview
 
Infinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using KotlinInfinum Android Talks #20 - Benefits of using Kotlin
Infinum Android Talks #20 - Benefits of using Kotlin
 
Intro to kotlin
Intro to kotlinIntro to kotlin
Intro to kotlin
 
Do Languages Matter?
Do Languages Matter?Do Languages Matter?
Do Languages Matter?
 
Programming in scala - 1
Programming in scala - 1Programming in scala - 1
Programming in scala - 1
 
Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?Kotlin в production. Как и зачем?
Kotlin в production. Как и зачем?
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developers
 
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?JavaOne 2016 - Kotlin: The Language of The Future For JVM?
JavaOne 2016 - Kotlin: The Language of The Future For JVM?
 
Kotlin: Why Do You Care?
Kotlin: Why Do You Care?Kotlin: Why Do You Care?
Kotlin: Why Do You Care?
 
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart CastsTMPA-2015: Kotlin: From Null Dereference to Smart Casts
TMPA-2015: Kotlin: From Null Dereference to Smart Casts
 
Scala in practice
Scala in practiceScala in practice
Scala in practice
 
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
[Expert Fridays] Java MeetUp - Борис Ташкулов (Teamlead Enterprise): "Почему ...
 
Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?Who's More Functional: Kotlin, Groovy, Scala, or Java?
Who's More Functional: Kotlin, Groovy, Scala, or Java?
 
Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)
 

Similar to Знакомьтесь, Kotlin

#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
e-Legion
 
Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
 Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья... Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
Yandex
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest
 
Денис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуДенис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылу
Yandex
 
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0beloslab
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
IT61
 
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
DataArt
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
Alexander Syrotenko
 
How to port JavaScript library to Android and iOS
How to port JavaScript library to Android and iOSHow to port JavaScript library to Android and iOS
How to port JavaScript library to Android and iOS
Alexey Zinoviev
 
«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин
«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин
«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин
Mail.ru Group
 
Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыUA Mobile
 

Similar to Знакомьтесь, Kotlin (12)

#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
#MBLTdev: Kotlin для Android, или лёгкий способ перестать программировать на ...
 
Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
 Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья... Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
Меньше кода — больше сути. Внедрение Kotlin для разработки под Android. Илья...
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 
Денис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуДенис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылу
 
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
 
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
Виктор Сергиенко «Асинхронный IO-boundPython: миф или реальность?»
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
How to port JavaScript library to Android and iOS
How to port JavaScript library to Android and iOSHow to port JavaScript library to Android and iOS
How to port JavaScript library to Android and iOS
 
«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин
«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин
«Тестирование Java-приложений с использованием Kotlin» Сергей Алёхин
 
Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузеры
 

More from Tech Talks @NSU

Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU
 
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU
 
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодня
Tech Talks @NSU
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
Tech Talks @NSU
 
Автоматическое доказательство теорем
Автоматическое доказательство теоремАвтоматическое доказательство теорем
Автоматическое доказательство теорем
Tech Talks @NSU
 
AOT-компиляция Java
AOT-компиляция JavaAOT-компиляция Java
AOT-компиляция Java
Tech Talks @NSU
 
Защита от атак по сторонним каналам
Защита от атак по сторонним каналамЗащита от атак по сторонним каналам
Защита от атак по сторонним каналам
Tech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
Tech Talks @NSU
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальностьТестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
Tech Talks @NSU
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном мире
Tech Talks @NSU
 
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попастьTech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU
 
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применениеTech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU
 
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеруTech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU
 
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU
 
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностейTech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU
 

More from Tech Talks @NSU (20)

Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнес
 
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
 
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодня
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
 
Автоматическое доказательство теорем
Автоматическое доказательство теоремАвтоматическое доказательство теорем
Автоматическое доказательство теорем
 
AOT-компиляция Java
AOT-компиляция JavaAOT-компиляция Java
AOT-компиляция Java
 
Защита от атак по сторонним каналам
Защита от атак по сторонним каналамЗащита от атак по сторонним каналам
Защита от атак по сторонним каналам
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальностьТестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном мире
 
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попастьTech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попасть
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
 
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применениеTech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применение
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеруTech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
 
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностейTech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностей
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
 

Знакомьтесь, Kotlin

  • 2. Обо мне ● 10 лет программирую на Java за еду ● 13 лет программирую на Java за идею ● Работаю в Эксельсиор программистом 2 @AlexeyZhidkov +AlekseyZhidkov @aleksey-zhidkov
  • 3. План 1. Анекдот 2. Несколько синтаксических примеров 3. Решение реальной задачи на Котлине 4. Кому и когда нужен Котлин 3
  • 4. 4 АНЕКДОТ - Очень маленький рассказ с забавным, смешным содержанием и неожиданным острым концом. (Словарь Ожегова) Короткий по содержанию и сжатый в изложении рассказ о замечательном или забавном случае; байка, баутка. (Словарь Даля) Вымышленный, короткий рассказ о смешном, забавном происшествии (Словарь Ушакова)
  • 5. Kotlin Statically typed programming language for the JVM, Android and the browser 100% interoperable with Java™ 5
  • 6. 6
  • 7. Почему Java Platform? ○ Быстрая, но гибкая ○ Кроссплатформенная - Server side, Desktop, Android, iOS, embedded ○ Профайлеры, мониторинг, дебаггинг, IDE, библиотеки 7
  • 9. Ханойские башни 9 Задача: переместить башню с одного стержня на другой Условия: ● За один ход можно переместить 1 диск ● Нельзя помещать больший диск на меньший Одно из решений: многократно повторять действия: 1-2, 1-3, 2-3, где x-y означает: перенести диск между стержнями x и y в допустимом направлении
  • 10. Термины ● Лента, Tape, Диск - теоретически независимое устройство хранения данных, но практически поддиректория с именем соответсвующим номеру диска/ленты ● Backup - фактически снапшот исходной директории на момент бэкапа; содержимое ленты ● Перемещение диска N между любыми стержнями - запись снапшота исходной дирекотории в поддиректорию 10
  • 12. 12 otlin - язык создаваемый для того чтобы “мочить” конкурентов [одной очень хорошей и доброй компании]
  • 13. Kotlin на Андроид ● Компиляция в байткод Java 6 ● Полная интероперабельность с Java ● Anko - layout DSL and misc SDK improvements ● Kotlin Android Extensions - compiler plugin to eliminate findViewById 13
  • 14. Kotlin на Андроид 14Источник: http://slides.com/antonrutkevich/kotlin-intro-voxxed#/36 Library Size Method Count scala-library-2.11.7 5.7 Mb 50 811 groovy-2.4.4 4.6 Mb 28 768 kotlin-runtime-0.13.1513 0.29 Mb 1 067 kotlin-stdlib-0.13.1513 0.88 Mb 7 672
  • 15. Кому и когда нужен Kotlin* 15 Статическая типизация Java Interoperability Скорость обучения Поддержка ФП Баллы Kotlin ✓ ✓ ✓ ✓/✗ 3.75 Groovy ✗/✓ ✓/✗ ✓ ✗/✓ 2.25 Scala ✓ ✗ ✗ ✓ 2 Ceylon ✓ ✗ ✗ ✓/✗ 1.75 Clojure ✗ ✗ ✗ ✓ 1 * этот слай - очень грубый наброс на вентилятор, для того чтобы понять контекст, ознакомтесь с этим тредом: https://twitter.com/TechTalksNSU/status/661557729446727680