Pour @Animal, voici l'opérateur when
en deux exemples tirés de la doc officielle (cf. lien principal).
Le simple :
when (x) {
0, 1 -> print("x == 0 or x == 1")
else -> print("otherwise")
}
Le compliqué :
when (x) {
in 1..10 -> print("x is in the range")
in validNumbers -> print("x is valid")
!in 10..20 -> print("x is outside the range")
else -> print("none of the above")
}
Ceux qui me lisent le savent, je trouve que Rust est un très bon langage mais je lui reproche quand même certaines choses :
- Il n'est pas trivial d'écrire des classes (comme il l'est en Kotlin).
- Le code à écrire est aussi volumineux que celui de Java (Kotlin est 30% à 40% plus concis).
- Il utilise autant d'abréviations stupides que C++.
- Certains éléments de syntaxe sont une immondice à mi chemin entre C++ et O-Caml/Ruby (typiquement le pipe "|" pour les lambas, en dix ans je n'ai jamais pu m'y faire, ou encore l'opérateur "->" pour définir un type de retour d'une fonction).
Mon langage préféré serait à 100% Kotlin si celui-ci disposait :
- D'une cross-compilation native.
- D'un garbage collector injecté au compile-time à l'image de Rust et l'emploi du Ownership.
Oui, c'est ce qu'il faudrait à Kotlin, j'ai vraiment hâte de voir ce que vont donner GraalVM et Kotlin native dans les prochains mois.
Via Riduidel
Toute une documentation très bien faite sur les coroutines en Kotlin et les mécanismes de synchronisation que le langage fourni. Vraiment très bien pour apprendre à tirer partie des CPU multi-coeurs.
Je me souviens il y a presque trois ans déjà, avoir passé une soirée avec Chlouchloutte à essayer de comprendre comment marchait la lazy evaluation des streams en Kotlin.
Cet article nous aurait bien aidé.
La solution avec Jackson est extrêmement élégante :
Les dépendances :
dependencies {
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.1-1'
compile 'com.fasterxml.jackson.module:jackson-module-kotlin:2.7.1-2'
compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.7.1'
}
Créer les entités qui vont recevoir la configuration Yaml :
data class UniverseSizeDto(val maxGalaxies: Int, val maxSystems: Int, val maxPlanets: Int)
data class ResourcesDto(val crystal: Int, val gas: Int, val energy: Int)
data class StarterPlanetDto(val resources: ResourcesDto)
data class ConfigDto(val universeSize: UniverseSizeDto, val starterPlanet: StarterPlanetDto, val roundTime: Int)
Le code de chargement du fichier :
fun loadFromFile(path: Path): ConfigDto {
val mapper = ObjectMapper(YAMLFactory()) // Enable YAML parsing
mapper.registerModule(KotlinModule()) // Enable Kotlin support
return Files.newBufferedReader(path).use {
mapper.readValue(it, ConfigDto::class.java)
}
}
Comment générer des nombres pseudo-aléatoires (PRNG) ou véritablement aléatoire (TRNG) depuis Kotlin 1.3. Cela est un bon début pour se diriger vers du Kotlin-Native.
RedMonk a publié hier, comme à son habitude, son classement trimestriel des langages de programmation les plus populaires sur GitHub et Stack Overflow. Le classement du premier trimestre de cette année na pas révélé de grands changements dans le top 10, mais on note une nouvelle apparition dans le top 20 de ce dernier. Le langage de programmation Kotlin brigue la 20e place du classement cette année après être apparu à la 27e place dans ce même classement lannée dernière.
Aller, encore une douzaine de places et les choses vont commencer à devenir intéressantes financièrement !
This tutorial walks us through the process of creating a simple REST controller with Spring Boot
Parce que je vais refaire du Spring Boot et du Hibernate 😥. Encore que Spring Boot ça va encore, c'est juste que ça rame au startup. D'ailleurs, nous devrions l'appeler Spring SlowBoot, ce serait plus parlant à mon avis.
Plein de bonnes pratiques PHP adaptablent à d'autres langages. #Kotlin 😍
Un exemple simple de File System Watcher en Kotlin.
Ok Python est de plus en plus utilisé et c'est cool mais celui qui m'intéresse le plus, c'est Kotlin !
D'ailleurs pour un bref historique sur TIOBE :
- Janvier 2017 : Kotlin classé 65ème (de mémoire)
- Janvier 2018 : Kotlin classé 38ème (de mémoire)
- Janvier 2019 : Kotlin classé 31ème
- Janvier 2022 : Kotlin classé 29ème
- Septembre 2023 : Kotlin est classé 20ème
- Novembre 2023 : Kotlin est classé 15ème
Pour info, voici l'évolution de la Google Trend propre à Kotiln.
Plein d'exemples simples pour apprendre Kotlin. Play Kotlin intègre même un runner et un éditeur pour tester les exemples sans avoir à installer quoi que ce soit.
@Doudou (pour l'initialisation de tes rôles)
Comment marche l'initialisation différée en Kotlin
// La variable myUtil sera initialisée qu'au moment de sa première invocation
val myUtil by lazy {
MyUtil(parameter1, parameter2)
}
Pour Chlouchloutte. Mais la comparaison n'est pas daté...
Je suis à la recherche d'un meilleur éditeur de sources pour Kotlin.
Bordel, VS Code de Microchiotte est en passe de devenir mon premier choix !
Il ne me reste plus qu'à migrer sur Gradle et je me serai convertie.
Si l'on m'avait dit cela il y a quelques années...
Le tuto est clair est simple :
- Installer un JDK 8 dans le path => easy
- Récupérer et installer kotlin-native dans le path => easy
- Lancer la commande
kotlin-native -o my_exec my_files.kt
Et voilà
Toutes les actus cools sur Kotlin et ses frameworks avec plein de liens et de tutos
funKTionale - Functional constructs for Kotlin