Как стать автором
Поиск
Написать публикацию
Обновить
58.46

Kotlin *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Беглый взгляд на Async-Await в Android

Время на прочтение3 мин
Количество просмотров12K
От переводчика

Это мой первый перевод, поэтому прошу прощения за неточности. Если вы найдете ошибки в переводе, пожалуйста, сообщите об этом. Я не нашел лучшего перевода слова сoroutine, чем сопрограмма, поэтому решил использовать оригинал. Если у вас появятся идеи по этому поводу, буду рад узнать.


Kotlin версии 1.1 принесет в язык coroutin'ы, которые позволяют приостанавливать вычисления в какой-то точке, а затем продолжить их позднее. Очевидный пример этой возможности — async-await, который был добавлен в C# несколько лет назад.


Каждый android разработчик знает, что когда мы имеем дело с сетевыми запросами или другими I/O задачами, то нам необходимо удостовериться, что не происходит блокировка основного потока, а так же, что мы не трогаем UI из фонового потока. На протяжении многих лет приходят и уходят десятки приемов. В этой статье перечислены наиболее популярные, и показаны примеры удобства, которое несет с собой async-await.

Читать дальше →

Вспомнить всё: Java-конференция JET. 25 апреля 2016. Отчёт №2

Время на прочтение5 мин
Количество просмотров5.6K
Всем привет! Не так давно мы закончили загружать видео прошедшей весной конференции, поэтому настало время поделиться очередным отчётом. В этот раз, помимо уже опробованного формата в 6 часовых сессий и 3-х потоков, площадка позволила добавить ещё один. И мы решили посвятить весь этот поток новому и на тот момент уже окрепшему языку Kotlin. Получилось очень много выступлений, все стоит посмотреть, но в повествовании остановлюсь детально лишь на нескольких.

Открытие


Как всегда, слова благодарности тем, кто нам помогал — друзьям и компаниям. Друзьям за то, что продолжают приходить и поддерживать нас. А компаниям за то, что доверяют умы своих разработчиков, не боясь получить на следующий день неожиданно большую коммит историю. И, конечно же, напутственные слова на предстоящий день. Главным посылом которых было то, что конференция, безусловно, это труд, большое вложение, но нужно не забывать об удовольствии новых встреч, новых идей и новых целей!



DSL для регулярных выражений на Kotlin

Время на прочтение10 мин
Количество просмотров8.5K


Всем привет!


Эта статья про реализацию одного конкретного DSL (domain specific language, предметно-ориентированный язык) для регулярных выражений средствами Kotlin, но при этом она вполне может дать общее представление, о том, как написать свой DSL на Kotlin и что обычно будет делать "под капотом" любой другой DSL, использующий те же возможности языка.


Многие уже используют Kotlin или хотя бы пробовали это делать, да и остальные вполне могли слышать о том, что Kotlin располагает к написанию изящных DSL, чему есть блестящие примеры — Anko и kotlinx.html.


Конечно же, для регулярных выражений подобное уже делали (и ещё: на Java, на Scala, на C# — реализаций много, похоже, это распространённое развлечение). Но если хочется попрактиковаться или попробовать DSL-ориентированные языковые возможности Kotlin, то добро пожаловать под кат.

Читать дальше →

Язык арифметических выражений с конструкцией let как dsl на Kotlin

Время на прочтение7 мин
Количество просмотров6.5K
Под катом будет изложена реализация языка простых арифметических выражений с let конструкцией. Чтение будет интересно для людей, не знакомых с языком kotlin или только начинающих свой путь в функциональном программировании.

variable("hello") + variable("habr") * 2016 where ("hello" to 1) and ("habr" to 2)

В статье читатель познакомится с такими конструкциями Kotlin, как extensions function, pattern matching, operator overriding, infix functions и некоторыми принципами функционального программирования. Написание парсера не входит в тему статьи, поэтому наш язык будем реализовывать внутри языка kotlin, подобно языкам скриптов систем сборки по отношению к скриптовым языкам, на которые первые написаны (grodle: groovy). Материал подается достаточно подробно. Желательно знание Java.
Читать дальше →

Kotlin и autoboxing

Время на прочтение3 мин
Количество просмотров14K
В последнее время достаточно много презентаций и статей на тему Котлина. В тоже время бОльшая их часть сводится к перечислению основных достоинств языка, без рассмотрения как это работает внутри и в какой байт код транслируется.

А зря, т.к. недавно общаясь с одним из своих коллег, который как раз прочитал одну из статей по Котлину с обзором основных фич, доказывал мне что null-safety зло и реализовано через обработку исключения, т.е. выполняя код:

name?.length

компилятор просто оборачивает вызов в try-catch, пытаясь поймать NullPointerException.

Аналогично другой товарищ после очередного обзора считал, что раз var есть в Kotline, как и в JS, то типизация и там и там динамическая, да и вообще «все эти ваши var/val зло, ничего не понятно, хорошо, что их в Java нет». Say hello, JEP286!

Еще один неудачный пример популяризации языка случился недавно, когда на одной из презентаций по Котлину сам автор доклада не совсем корректно описал работу языка, связанную с примитивами из Java, рассказывая о том, что в Котлине всегда будут использоваться ссылочные типы. Об этом и хотелось бы рассказать поподробней.
Читать дальше →

Scala vs Kotlin (перевод)

Время на прочтение7 мин
Количество просмотров49K

Наша команда, аналогично с автором статьи, уже почти как год перешла со Scala на Kotlin в качестве основного языка. Мое мнение во многом совпадает с автором, поэтому предлагаю вам перевод его интересной статьи.


Прошло прилично времени с того момента как я не обновлял блог. Вот уже как год я перешел со Scala, моего основного языка, на Kotlin. Язык позаимствовал много хороших вещей, которые мне нравились в Scala, сумев при этом избежать многих подводных камней и неоднозначности, которая есть в Scala.


Ниже я хочу привести примеры, которые мне нравятся в Scala и Kotlin, а также их сравнение в том, как они реализованы в обоих языках.

Читать дальше →

Kotlin: без Best Practices и жизнь не та. Часть 1

Время на прочтение5 мин
Количество просмотров23K
Привет, Хабр! Данная статья о наболевших проблемах при программировании на Kotlin. В частности, затрону несколько тем, вызывающих больше всего неоднозначности – использование it в лямбда-выражениях, злоупотребление функциями из файла Standard.kt и краткость написания vs. читаемость кода.
Читать дальше →

Generics в Kotlin vs. Generics в JAVA: cходства, различия, особенности

Время на прочтение7 мин
Количество просмотров52K

Эта статья про Generics в Kotlin — особенности их использования, сходства и различия с Generics в Java.

В двух словах про Generics
Если коротко, то Generics — это способ сказать, что класс, интерфейс или метод будут работать не с каким-то конкретным типом, а просто с каким-то. С каким именно будет определено из контекста. Например:

public interface List<E> extends Collection<E> {
	//...
}

Заранее неизвестно, объекты какого класса будут содержаться в списке, но это определится при его использовании:

List<String> list = new ArrayList<>();

Теперь это не просто список, а список строк. Generics помогают обеспечить типобезопасность: в List можно попытаться положить любой объект, но в List<String> — только String или один из его потомков.

Я разделю рассказ про Generics на две части: собственно Generics и использование Wildcards. Пока речь не заходит про Wildcards, использование Generics в Kotlin мало чем отличается от Java.
Читать дальше →

Пишем MVP приложение на Kotlin под Android

Время на прочтение19 мин
Количество просмотров115K


Разработка приложений на Kotlin под Android набирает популярность среди разработчиков, однако статей в русскоязычном сегменте Интернета довольно мало. Я решил немного подправить ситуацию, и написать туториал по разработке приложения на Kotlin. Мы напишем полноценное приложение с использованием всех трендовых библиотек (кроме RxJava) в мире Android-разработки. В конце у нас должно получиться расширяемое и легко тестируемое приложение (сами тесты мы писать не будем).
Читать дальше →

Краткий обзор Kotlin и сравнение с C#

Время на прочтение10 мин
Количество просмотров43K

От автора:


Эта статья представляет собой заметки на коленке и является скорее кратким обзором Kotlin, включая небольшое сравнение с языком С# с точки зрения синтаксиса. Это мое мнение и мои размышления по поводу этого сравнительно молодого языка в мире Java-платформы, который на мой взгляд имеет хорошие шансы добиться успеха.

Читать дальше

Большой JVM-опрос: версии Java, альтернативные JVM-языки, версии Java EE

Время на прочтение1 мин
Количество просмотров16K
image

С прошлого аналогичного опроса прошло больше года, и пришла пора его повторить и расширить.

Ретроспектива:
Какие версии Java вы используете? — 18 февраля 2015
Какие версии Java вы используете? — 14 февраля 2014

Опросы под катом

Встречайте IntelliJ IDEA 2016.1

Время на прочтение2 мин
Количество просмотров32K
На прошлой неделе мы выпустили очередное крупное обновление — IntelliJ IDEA 2016.1. Ранее я уже писал подробно о доступных в нем улучшениях, а в этом посте лишь приведу их краткий список, дам ссылки на новые видео, и, конечно, буду рад ответить на ваши вопросы в комментариях.



Читать дальше →

Андрей Бреслав и Дмитрий Жемеров о Kotlin 1.0 на jug.msk.ru

Время на прочтение3 мин
Количество просмотров7.4K
17 марта 2016 года прошла встреча jug.msk.ru с Андреем Бреславом и Дмитрием Жемеровым, посвящённая выпуску версии 1.0 языка программирования Kotlin. Далее рассказывается о прошедшей встрече подробнее.


Читать дальше →

Ближайшие события

[Москва] Встреча с разработчиками Kotlin

Время на прочтение1 мин
Количество просмотров7.4K
Привет!

В четверг, 17 марта (да-да, это послезавтра!), в 19:00 в офисе компании КРОК пройдет встреча JUG.msk c разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым. Андрей — вообще самый главный человек в Kotlin, возглавляет разработку языка, а Дмитрий — возглавляет разработку плагина к IntelliJ IDEA. Так что будет что обсудить, и ответы на вопросы будут из первых уст!

Тема встречи — недавний и долгожданный релиз языка Kotlin. И поэтому встреча тоже называется очень просто:

image

Читать дальше →

Видео со встречи JUG.ru с разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым

Время на прочтение1 мин
Количество просмотров15K


Неделю назад в Питере прошла встреча JUG.ru с разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым. Как вы все наверняка знаете, Kotlin зарелизился пару недель назад, и теперь, спустя почти шесть лет разработки, пришла пора поговорить о том, что в итоге получилось.

В пятничный вечер 26 февраля народу в питерский офис Oracle набилось дофига, что очень обрадовало и нас и спикеров.



Встреча состояла из четырех частей:
  • Введение. Что такое Kotlin?
  • Kotlin: к релизу и далее
  • Kotlin: самое сложное — совместимость
  • Сессия вопросов и ответов про Kotlin

Читать дальше →

Kotlin для начинающих

Время на прочтение1 мин
Количество просмотров64K
Уже не мало нашумел Kotlin в мире программирования, не мало профессиональных инженеров уже обратил на него внимание, но также есть и те кому он не симпатизирует.

В данном топике я бы хотел обратить внимание тех начинающих программистов которые возможно только делают свой выбор языка программирования, которому бы хотели посвятить свою жизнь так сказать.
Читать дальше →

Как себе выстрелить в ногу в Kotlin

Время на прочтение13 мин
Количество просмотров36K
Совсем недавно вышел релиз Kotlin, а его команда разработчиков предлагала задавать вопросы про язык. Он сейчас на слуху и, возможно, многим хочется его попробовать.
Пару недель назад тимлид сделал для компании презентацию о том, что в Котлине хорошо. Одним из самых интересных вопросов был «А как в Котлине выстрелить себе в ногу?» Так получилось, что ответил на этот вопрос я.

Disclaimer:
Не стоит воспринимать эту статью как «Kotlin — отстой». Хотя я отношусь скорее к категории тех, кому и со Scala хорошо, я считаю, что язык неплохой.
Все пункты спорные, но раз в год и палка стреляет. Когда-то вы себе прострелите заодно и башку, а когда-то у вас получится выстрелить только в полночь полнолуния, если вы предварительно совершите черный ритуал создания плохого кода.

Наша команда недавно закончила большой проект на Scala, сейчас делаем проект помельче на Kotlin, поэтому в спойлерах будет сравнение со Scala. Я буду считать, что Nullable в Kotlin — это эквивалент Option, хотя это совсем не так, но, скорее всего, большинство из тех, кто работал с Option, будут вместо него использовать Nullable.

Читать дальше →

[Питер] Встреча JUG.ru с разработчиками Kotlin

Время на прочтение2 мин
Количество просмотров6.2K
В пятницу, 26 февраля (да, уже завтра!), в 20:00 в петербургском офисе компании Oracle пройдет встреча JUG.ru c разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым. Андрей — вообще самый главный человек в Kotlin, возглавляет разработку языка, а Дмитрий — возглавляет разработку плагина к IntelliJ IDEA. Так что у нас будет всем котлинам котлин!

Тема встречи — недавний и долгожданный релиз языка Kotlin. Это уже никакая не бета и не RC, это полноценный Final Release. И поэтому встреча тоже называется очень просто:

Для тех, кто всё проспал:
Kotlin — новый язык программирования для JVM и Android, выпущенный компанией JetBrains неделю назад. Выпуску предшествовало несколько лет разработки, ребята из JetBrains довольно много рассказывают про Kotlin на конференциях.

Докладчики


Дмитрий Жемеров работает в JetBrains с 2003 года и успел поучаствовать в разработке многих проектов, включая IntelliJ IDEA, PyCharm, WebStorm и другие. Сейчас он руководит командой, которая делает Kotlin-плагин для IntelliJ IDEA, а также в соавторстве со Светланой Исаковой пишет книгу о Kotlin.

Андрей Бреслав возглавляет разработку языка Kotlin в компании JetBrains. Раньше преподавал и в университете и в старшей школе; теперь вместо этого выступает на различных конференциях, рассказывая о своём проекте и о фундаментальных принципах, лежащих в основе профессии разработчика ПО.



Программа встречи


Встреча будет состоять из 4 частей, и целиком будет посвящена языку Kotlin.
Читать дальше →

Немного о Kotlin

Время на прочтение9 мин
Количество просмотров206K
image

На днях JetBrains после пятилетней работы выпустила первый релиз языка Kotlin. Давайте посмотрим, что же это за язык, попробуем разобраться зачем и для кого он, какие имеет функциональные особенности. Скорее всего в статью затесались и личные впечатления от языка, но я старался, чтобы они не влияли на изложение полезной информации. Если вы еще ничего или почти ничего не знаете о Kotlin, то я завидую вам, ибо по моему ощущению почитать про инструмент, который ты долго ждал, сродни распаковке новогоднего подарка. Впрочем судите сами.

Читать дальше →

Kotlin 1.0. Задай вопрос команде

Время на прочтение2 мин
Количество просмотров26K
На этой неделе случилось важное для нас событие — вышла первая версия языка программирования Kotlin! Так как почти вся разработка Kotlin велась в Питерском офисе компании JetBrains, многие хабровчане уже знают, что такое Kotlin и пробовали его на практике, поэтому этот пост больше для комментариев: задавайте любые вопросы и команда Kotlin ответит. Мы онлайн!

image

Читать дальше →