Media is too big
VIEW IN TELEGRAM
Запись стрима про Compose Compiler. Узнали про разницу между compose ui и compose compiler, для чего ещё можно применять compose compiler и много чего ещё!
YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍2
JSpecify аннотации
Platform types уже довольно долгое время являются головной болью для Kotlin- и Java-разработчиков. Чтобы понять проблему достаточно взглянуть на код с картинки.
Именно с этой целью были созданы специальные аннотации для Java API, с помощью которых можно обозначить nullness всех возможных типов в коде.
В качестве примера можно взять следующий интерфейс на Java, в котором нет аннотаций:
Здесь каждый тип будет являться platform type. С этой целью был создан проект JSpecify, который призван создать стандартизированные аннотации для Java кода для обозначения nullability типов:
На самом деле подобные аннотации уже давно существуют, однако с ними есть ряд проблем. Большинcтво из них довольно стары, а некоторые были созданы специально для nullness analysis инструментов. И зачастую у всех аннотаций разная семантика — например, какое поведение по умолчанию устанавливается для полей, когда у них нет аннотации.
И все эти проблемы как раз решает JSpecify при помощи стандартизации всех возможных аннотаций. В JSpecify Working Group присоединилось довольно много компаний, например, Square, Google, JetBrains — все они для своих библиотек используют аннотации JSpecify.
Подробнее про эти аннотации можно посмотреть в видео на канале Kotlin by JetBrains.
Platform types уже довольно долгое время являются головной болью для Kotlin- и Java-разработчиков. Чтобы понять проблему достаточно взглянуть на код с картинки.
Именно с этой целью были созданы специальные аннотации для Java API, с помощью которых можно обозначить nullness всех возможных типов в коде.
В качестве примера можно взять следующий интерфейс на Java, в котором нет аннотаций:
interface Simple {
// returns String!
String method1();
// returns List<String!>!
List<String> method2();
}
Здесь каждый тип будет являться platform type. С этой целью был создан проект JSpecify, который призван создать стандартизированные аннотации для Java кода для обозначения nullability типов:
interface Simple {
// returns String
@NonNull String method1();
// returns List<String?>
@NonNull List<@Nullable String> method2();
}
На самом деле подобные аннотации уже давно существуют, однако с ними есть ряд проблем. Большинcтво из них довольно стары, а некоторые были созданы специально для nullness analysis инструментов. И зачастую у всех аннотаций разная семантика — например, какое поведение по умолчанию устанавливается для полей, когда у них нет аннотации.
И все эти проблемы как раз решает JSpecify при помощи стандартизации всех возможных аннотаций. В JSpecify Working Group присоединилось довольно много компаний, например, Square, Google, JetBrains — все они для своих библиотек используют аннотации JSpecify.
Подробнее про эти аннотации можно посмотреть в видео на канале Kotlin by JetBrains.
Первый коммит в Kotlin был сделан 15 лет назад
Летом Kotlin исполнилось 14 лет, о чём мы уже писали. Но 14 лет назад была выпущена первая версия, а ровно 15 лет назад Андрей Бреслав сделал первый коммит в репозиторий.
Язык изначально назывался Jet. Если глянуть в сорцы коммита, можно увидеть множество файлов .jetl (jetbrains language) — изначального названия языка.
Летом Kotlin исполнилось 14 лет, о чём мы уже писали. Но 14 лет назад была выпущена первая версия, а ровно 15 лет назад Андрей Бреслав сделал первый коммит в репозиторий.
Язык изначально назывался Jet. Если глянуть в сорцы коммита, можно увидеть множество файлов .jetl (jetbrains language) — изначального названия языка.
Kotlin Meta
Вышла запись стрима с разбором того, что нового накопилось в Kotlin за последние полгода. Если формат покажет себя хорошо, то будем периодически делать такие выпуски.
YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM