paint-brush
Rise of Kotlin : le langage de programmation pour la prochaine générationby@David
48,469
48,469

Rise of Kotlin : le langage de programmation pour la prochaine génération

David Smooke8m2018/07/05
Read on Terminal Reader
Read this story w/o Javascript

<em>Veuillez accueillir notre sponsor hebdomadaire</em> <a href="http://bit.ly/2lCXscm" target="_blank"><em>Pusher</em></a> <em>to Hacker Noon !</em> <a href="http://bit.ly/2lCXscm" target="_blank"><em>Pusher</em></a> <em>crée des API en temps réel qui permettent aux développeurs du monde entier d&#39;ajouter rapidement des fonctionnalités de communication et de collaboration à leurs applications. Leur produit principal permet aux développeurs de créer facilement des fonctionnalités telles que des notifications dans l&#39;application, des flux d&#39;activité, des tableaux de bord en temps réel, des trackers en direct et bien plus encore.</em>

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Rise of Kotlin : le langage de programmation pour la prochaine génération
David Smooke HackerNoon profile picture

Veuillez accueillir notre sponsor hebdomadaire Pusher to Hacker Noon ! Pusher crée des API en temps réel qui permettent aux développeurs du monde entier d'ajouter rapidement des fonctionnalités de communication et de collaboration à leurs applications. Leur produit principal permet aux développeurs de créer facilement des fonctionnalités telles que des notifications dans l'application, des flux d'activité, des tableaux de bord en temps réel, des trackers en direct et bien plus encore.

Aujourd'hui, nous allons rencontrer l'évangéliste développeur Pusher Zan Markan , pour discuter de l'état de Kotlin, de ce qui le pousse à faire ce qu'il fait et de ce qui fait d'un cowboy de l'espace un cowboy de l'espace.

David : Commençons par l' État de Kotlin . Vous avez récemment mené une enquête Kotlin sur (plus d'informations sur les écrous et les boulons ici ). Vous avez interrogé 2 744 personnes de janvier à mars 2018 pour prendre le pouls de l'écosystème. Quels résultats ont défié vos hypothèses ? Quels résultats ont confirmé vos hypothèses ? Et que faut-il retenir de ce qui se passe avec Kotlin ?

zan : C'est vrai. Nous avons remarqué que de plus en plus de développeurs utilisaient Kotlin pour créer des applications avec nos produits. Nous avons donc décidé d'approfondir et de découvrir ce qui les motive. J'ai découvert quelques choses surprenantes.

Tout d’abord, j’ai été véritablement surpris par l’amour que les étudiants et les développeurs plus juniors accordent à Kotlin. Je m'attendais à une plus grande différence entre les développeurs plus/moins expérimentés, mais les nouvelles foules se lancent vraiment dans Kotlin depuis que Google a mis ses armes derrière la communauté.

Une autre chose qui m'a surpris, c'est le nombre de personnes désireuses d'essayer les fonctionnalités qualifiées d'expérimentales par l'équipe Kotlin, à savoir les coroutines et la prise en charge de projets multiplateformes – environ 25 à 30 % chacune.

Les résultats de l’enquête ont plus ou moins confirmé mes soupçons sur la taille d’Android – environ 80 % selon les données de notre enquête. Certaines autres enquêtes que j'ai vues montrent un peu moins d'Android, mais toujours confortablement au-dessus de la barre des 75 %. Une partie de cette différence pourrait être due au fait que mon réseau est principalement axé sur Android, mais l'effet n'était clairement pas aussi important.

Ce qu’il faut retenir, c’est que Kotlin est un langage passionnant et qui rend les développeurs heureux.

C'est assez rare (au moins pour quelque chose comme un langage de programmation grand public) et cela a abouti à la création d'une communauté dynamique et enthousiaste qui s'est formée autour de l'ensemble de l'écosystème Kotlin.

Le développement principal de Kotlin provient d'une équipe de programmeurs JetBrains basée à Saint-Pétersbourg, en Russie. Que pouvez-vous nous dire d’autre sur sa création ? Et quand avez-vous utilisé Kotlin pour la première fois ?

À ma connaissance, l'histoire de Kotlin est celle de JetBrains souhaitant un « meilleur Java » pour ses outils de développement. L'interopérabilité et l'amélioration de la productivité faisaient partie de leurs principaux objectifs, et aucun autre langage basé sur JVM à l'époque ne faisait vraiment l'affaire - Scala cochait la plupart des cases, mais les outils n'étaient tout simplement pas là et les temps de construction étaient bien trop lents. pour les besoins de développement de JetBrains.

Cette idée exacte d'un Java hautement interopérable et meilleur était la raison pour laquelle cela a commencé à attirer tant de développeurs Android (y compris moi, ayant fait Android depuis les premiers jours).

Il y a quelques années, l'écosystème Android était principalement limité à une ancienne version de Java – un étrange hybride entre Java 7 et Java 6, qui n'avait pas de fonctionnalités intéressantes comme les lambdas et était assez verbeux. Les gens ont donc commencé à jouer avec ce nouveau truc qui semblait bien interopérable et permettait une plus grande productivité (surtout les fois où ça ne cassait pas tout 😅).

C'est également ce qui m'a poussé à m'y lancer — j'en ai entendu parler pour la première fois en 2014, puis j'ai suivi de près le développement de Kotlin — soit en jouant avec pendant mon temps libre, soit en l'utilisant pour prototyper rapidement des choses. J'ai écrit le premier code Kotlin de production lorsque je travaillais sur les produits Pusher Chatkit et Feeds .

Pourquoi pensez-vous que Kotlin s'adresse aux développeurs moins expérimentés ? Et qu’est-ce qui empêcherait que ce soit une mode ?

Ha! Je ne pense pas qu'il s'adresse aux développeurs moins expérimentés en soi, en fait, je le vois comme un groupe assez similaire à celui que nous avons vu avec les résultats de l'enquête StackOverflow, donc rien d'inattendu en termes de développement de l'industrie.

Nous avons également constaté qu'il a d'abord été adopté principalement par des développeurs expérimentés (employés), et que ce n'est que récemment qu'il a commencé à être adopté par les étudiants et les jeunes développeurs.

Je vois Kotlin comme un langage rapide à maîtriser. Il existe d’excellents outils qui nous permettent d’être productifs même sans en connaître l’essentiel. Il est interopérable avec Java, donc tout portage ou migration peut se faire à votre rythme. Et enfin, Google et JetBrains font un excellent travail en préparant la documentation et les ressources prenant en charge Kotlin.

Qu’est-ce qui a séparé Kotlin des autres langages de programmation et qui, selon vous, a conduit à son adoption rapide ? Et plus généralement, selon vous, qu’est-ce qui différencie les langages de programmation qui sont adoptés des langages de programmation qui ont du mal à être adoptés ?

Le support de Google et de JetBrains a certainement aidé. D'un autre côté, Google a décidé de prendre officiellement en charge Kotlin dans Android seulement APRÈS la poussée massive de la communauté des développeurs, il y avait donc déjà une poussée substantielle de l'autre côté également.

Je pense en fait que c'est un langage qui est apparu au bon moment, dans la bonne communauté – la communauté Android, à mesure qu'elle mûrissait, et que les gens voulaient de nouveaux outils pour devenir de plus en plus productifs. Kotlin était juste là, bien sûr, il avait ses défauts, mais il était là et assez bon pour que les gens le fassent correctement.

Comment voyez-vous Kotlin concurrencer et compléter efficacement les langages et architectures existants au cours des 5 prochaines années ?

Si l’on part de l’évidence, alors Java est plutôt simple, et Kotlin le complète déjà bien. Je pense que nous en verrons certainement davantage, en particulier lorsque les outils se consolideront et que quelques outils « de référence » émergeront. L'un de ces outils est Arrow, une boîte à outils de programmation fonctionnelle pour Kotlin, développée à partir de la collaboration des équipes Funktionale et Kategory pour créer quelque chose de meilleur et de plus complet. Je pense que ce sera la tendance.

Quant aux autres langages de programmation, sur la JVM, nous verrons ce qui se passe avec Scala et d'autres, et en dehors du monde de la JVM, il est encore trop tôt pour le dire, mais j'ai vu des idées prometteuses sur Kotlin/Native et Kotlin pour le multi- projets de plate-forme – tous deux encore très expérimentaux, mais certaines preuves de concept sont là, fonctionnelles et assez passionnantes.

Lorsque « Kotlin Functors, Applicatives, And Monads in Pictures » d' Alberto Ballano est apparu sur Hacker News , cela a suscité une discussion intéressante… À votre avis, vers quoi Kotlin est-il une passerelle vers ?


Cela semble néfaste ! C'est une passerelle vers les langages de programmation modernes - ceux qui nous rendent à la fois productifs et heureux. Cela exposera certainement un certain nombre de personnes à la programmation fonctionnelle - en particulier avec des choses comme Arrow, et cela pourrait permettre à certaines personnes de se lancer dans un noyau dur de FP. langues plus faciles.

Cela pourrait également inciter un groupe de développeurs Android à s'aventurer dans le développement Web ou natif, avec tout son support multiplateforme, et aussi, à mesure que de plus en plus de développeurs le choisissent comme premier langage de programmation, ils le feront inévitablement. venez voir Kotlin comme une référence par rapport à laquelle ils mesurent toutes les autres langues, et c'est aussi très excitant.

En linguistique, il faut beaucoup de temps pour qu’une langue, comme l’anglais ou l’espagnol, soit adoptée. Et il existe de nombreux dialectes, mais l’utilisation d’une langue parlée entièrement nouvelle est bien moins importante que l’utilisation de nouveaux langages logiciels. Pensez-vous que nous atteindrons un point de maturité de l’industrie où le taux de nouveaux langages logiciels diminuera ? Ou est-ce que de nouveaux langages logiciels continueront à émerger ?

Nous avons déjà vu un certain nombre d'excellents langages de programmation être rapidement adoptés, et ces dernières années, on pense à Swift, Go, TypeScript et Rust. Chacun d’eux est soutenu par une (ou plusieurs) grande organisation d’ingénierie dotée de ressources substantielles et de communautés de développeurs existantes.

Chacun d’entre eux a également touché une démangeaison particulière au sein de son organisation, et si cette démangeaison est partagée par de nombreux autres développeurs, alors l’adoption se produit et un langage décolle, lui permettant d’atteindre une « masse critique ». C'est ce qui s'est passé avec chacun de ces langages que j'ai mentionnés : Go, par exemple, a commencé lorsque Google voulait bien faire de la concurrence, et l'un des objectifs de Rust était de ne jamais planter.


Quant à l'avenir, je pense qu'il y aura certainement de nouveaux paradigmes informatiques, de nouvelles idées en cours de développement (qui sait, peut-être que la Blockchain deviendra une chose un jour) - qui ne seront pas très utiles avec nos outils existants. D'autres exemples sont quantiques l'informatique ou l'IA.

Même si la plupart des langages prétendent aujourd'hui être à usage général, cela ne signifie pas pour autant qu'ils sont également adaptés à tous les usages. Nous verrons de nouveaux objectifs qui nécessiteront de nouveaux langages.

Parlons de Zan la personne. Les deux premiers mots de la biographie sur votre site Web personnel indiquent « Space Cowboy ». Est-ce que certaines personnes vous appellent le gangster de l’amour ? Est-ce que d'autres personnes t'appellent Maurice ? Incarnez-vous le pompatus de l’amour ?

Ha, j'adore cette chanson ! Gangster de l'amour, peut-être, car je ne pense pas que quiconque ait réussi à orthographier Zan dans Maurice, pas même le personnel de Starbucks. J'aime aussi les fusées et je pleure toujours la perte de Firefly, donc c'est aussi une sorte de thème de cowboy de l'espace.

La véritable histoire derrière ce « titre » est qu’il y a quelques années, alors que je dirigeais encore une startup que j’avais fondée avec quelques amis en dehors de l’université. Pour paraître un peu plus légitime lorsque nous demandons de l'argent à des étrangers (c'est-à-dire lever un investissement), nous avons fait réaliser des cartes de visite pour chacun de nous.

Je ne suis pas un grand amateur de titres, en particulier les titres C où tout le monde fait à peu près tout, alors j'ai décidé d'aller dans l'autre sens et j'ai choisi Space Cowboy qui est à peu près aussi (in)précis que n'importe quoi d'autre. Au moins, je pensais que ce serait un bon démarreur de conversation.

Le fait que vous ayez posé une question à ce sujet prouve à quel point il s’agit d’un bon démarreur de conversation.

On dit que vous aimez l’IPA de style côte ouest. Je suis au Colorado maintenant et Laguinatis me manque. Quelles sont vos 3/5 meilleures IPA de la côte ouest ?

Je les aime violemment forts et impitoyablement houblonnés.

Chaque fois que je visite la côte ouest, je m'assure d'avoir un Pline l'Ancien près de Russian River, et bien sûr Stone IPA – les deux à la pression, évidemment. Plus près de chez moi, mon choix serait Jack Hammer de Brewdog.

Qu’est-ce qui fait un bon développeur évangéliste ? Comment vous êtes-vous amélioré dans votre travail ? Qu’est-ce qui fait que la technologie Pusher mérite d’être évangélisée ?

La chose la plus importante pour un évangéliste des développeurs (toute personne chargée des relations avec les développeurs en général) serait une véritable passion pour enseigner et partager des connaissances. En fait, il est probablement encore plus important d'être authentique. Arrêt complet. Les développeurs sont des détecteurs naturels de BS qui détestent se faire vendre des choses.

C'est aussi un sentiment formidable de savoir que vous avez aidé quelqu'un à devenir un meilleur développeur.

L'une des premières choses que j'ai dû améliorer est la gestion du temps. En tant que développeur, il est beaucoup plus courant de consacrer beaucoup de temps à certaines tâches. Mon travail actuel est bien plus dynamique que cela, et au début, quand je ne m'attendais pas à ce changement, ou à cet ajustement, c'était assez écrasant. L'excellent essai de Paul Graham sur les horaires des créateurs et des managers m'a beaucoup aidé.

Une autre compétence utile que j'ai acquise est la gestion de projet. Avec State of Kotlin par exemple, la plupart de mon travail tournait autour de la mise en place de l'enquête et de la création du contenu dans un premier temps, puis je suis passé à une gestion de projet plus classique, comme la coordination avec d'autres équipes impliquées, comme le design et le développement (c'est eux qui ont fait ce travail, pas moi, merci encore — vous savez qui vous êtes), et enfin en faisant passer le message dans diverses publications, en réalisant des interviews sur le Web.

La technologie de Pusher est réputée pour sa rapidité d'intégration, ainsi que pour le fait qu'elle « fonctionne tout simplement ».

En tant que tel, c'est un jeu d'enfant d'évangéliser. Des gens sont même venus me voir lors d'une conférence sur le développement mobile et m'ont dit que leurs collègues de l'équipe Web qui utilisent Pusher leur avaient demandé de me dire à quel point notre produit Channels était génial - c'était passionnant 😁

Dans l’ensemble, quelle est la place de Kotlin dans la réalisation de la vision à long terme de Pusher ?

Nous parions déjà sur Kotlin comme principal langage de développement pour nos SDK Android. Nous avons commencé avec les SDK pour les nouveaux produits - Beams , Chatkit et Feeds , et nous en sommes actuellement très satisfaits.

Nous pensons également que Kotlin possède l'une des communautés les plus passionnantes et les plus engagées, et c'est également en partie la raison pour laquelle nous avons décidé de créer l'enquête sur l'état de Kotlin et le rapport correspondant. Nous espérons certainement que Kotlin continuera à rendre les développeurs heureux et productifs, et l’ État de Kotlin contribuera à poursuivre son adoption !

Pusher , notre sponsor hebdomadaire, crée des API de communication et de collaboration qui alimentent des applications partout dans le monde, prises en charge par des SDK faciles à intégrer pour le Web, les mobiles ainsi que les piles backend les plus populaires. Commencer.