«Il est essentiel que la communauté établisse des normes»: Marchin Moskala à propos de Kotlin



Il y a quelques années, il y avait beaucoup de billets de blog «Voir ce qu'est une langue Kotlin intéressante» qui expliquaient les bases. En 2019, vous n'avez plus besoin de mâcher les bases, mais maintenant une publication apparaît dans un format complètement différent. Marcin Moskala, qui enseigne cette langue aux gens depuis de nombreuses années, publie maintenant le livre "Effective Kotlin" - c'est-à-dire, non seulement "comment écrire Kotlin", mais "comment écrire Kotlin de la meilleure façon".

Et bientôt Marchin viendra à nous sur Mobius avec un rapport . Par conséquent, nous l'avons interrogé sur le nouveau livre, le rapport, la formation des gens de Kotlin et sur ce qui se passe dans l'industrie autour de cette langue. Et sur la différence entre les mots "efficace" et "efficace".

- Tout d'abord, parlez-nous un peu de vous. Qu'avez-vous fait avant de commencer à éduquer les gens et à créer Kt. Académie ?

- Je programme depuis mon enfance. J'ai commencé avec Visual Basic quand j'avais 10 ans parce que je voulais faire des jeux. Plus tard, pendant la formation, j'ai découvert Android pour moi et je me suis consacré au développement Android. Au cours des années suivantes, j'ai travaillé pour des entreprises comme Samsung, Warta et mBank (en tant qu'employé d'Apreel), Docplanner et Gamekit. Et a également découvert Kotlin et est tombé amoureux. J'ai commencé à faire des présentations sur lui, à écrire des articles et des livres. Bientôt, les entreprises ont commencé à se tourner vers moi pour la formation, et Kt est donc apparu. Académie.

- Avez-vous le statut de partenaire JetBrains, et qu'est-ce que cela signifie? À quelles exigences devez-vous répondre? Discutez-vous souvent avec JetBrains?

- La principale exigence est de bien connaître Kotlin et de diffuser ses connaissances. Il faut également qu'une personne soit fiable, et ce ne sera pas superflu si elle est connue.

Je reste en contact avec certains membres de l'équipe Kotlin, ainsi qu'avec les évangélistes, mais je ne sais pas moi-même à quel point cela est lié au statut de partenaire. Généralement, ce statut est un moyen pour JetBrains de signaler que quelqu'un connaît une technologie JetBrains spécifique, et les certificats de cette personne sont précieux.

- Vous enseignez aux gens de Kotlin, vous obtenez donc beaucoup de commentaires et de questions à ce sujet de différentes personnes. Que disent-ils et que demandent-ils le plus souvent?

- Les gens l'aiment vraiment. Ils notent surtout sa brièveté et le fait qu'ils le font très facilement. Et leurs fonctions de niveau supérieur et leurs destinataires implicites dans les expressions lambda (récepteurs implicites) sont inquiets. À mon avis, il n'y a pas de problème avec la première option, mais qu'en est-il de la seconde ... Je pense que les gens en font trop, et nous commençons seulement à réaliser l'ampleur du problème.

- Et y a-t-il une erreur commune ou un contre-motif dans le code Kotlin de différentes personnes?

- Je pense que c'est juste un désir excessif de cacher le destinataire. Eh bien, vous savez, toutes sortes de DSL à l'intérieur de DSL, s'appliquent à l'intérieur s'appliquent ... de plus en plus souvent, le destinataire l'utilise secrètement. C'est génial lorsque vous écrivez du code, mais pas lorsque vous le lisez.

- Initialement, tout le monde est venu à Kotlin uniquement à partir de Java. Maintenant, devez-vous enseigner à des gens qui ne connaissent pas Java du tout, mais qui veulent apprendre le Kotlin?

- Oui, j'ai formé beaucoup de développeurs en JavaScript et Swift, une équipe de rockers et même une équipe de développeurs en C, pour qui Kotlin a fait un grand pas en avant. Kotlin pense aussi beaucoup aux pythonistes - j'espère qu'ils se joignent aussi.

- Recommanderez-vous d'apprendre le Kotlin comme première langue en 2019? Ou les débutants devront-ils encore gérer Java, ce sera donc difficile?

- Si une personne veut s'engager dans le développement Android, je le recommande sans hésiter. Si j'avais plus de temps, j'écrirais un livre sur le développement moderne d'Android, qui ne touche pas du tout aux origines, mais suggère immédiatement de nouvelles approches: Kotlin, AndroidX, Room, WorkManager, ConstraintLayout et MVVM avec ViewBinding (et bientôt Jetpack Compose ) ... Nous pouvons bien vivre sans Java, Support Library, DatabaseHelper, AlarmManager.

Le backend est plus compliqué, mais il est également passionnant avec les frameworks Kotlin modernes comme Ktor. Donc, pour les étudiants, cela peut également être une option intéressante.

- Différents langages sont évalués différemment dans le cadre de l'apprentissage: Python est souvent salué à cet égard, Java est parfois critiqué. Comment est l'enseignement de Kotlin par rapport à Java?

- D'une part, à Kotlin, il est beaucoup plus facile de faire quelque chose. Lorsque vous enseignez Kotlin, la possibilité de mettre de nombreuses classes et fonctions dans un seul fichier aide beaucoup.

Kotlin, d'autre part, a plus de fonctionnalités que Java, donc leur apprentissage prend du temps. Bien que, dans une certaine mesure, ces idiomes incarnent toujours des modèles répétitifs de Java: par exemple, les classes de données, qui pour un débutant en Java seront difficiles, et dans Kotlin trivial, il suffit d'ajouter le modificateur de données. Je dirais que l'apprentissage de Kotlin est généralement plus amusant.

- Parfois, Kotlin n'est perçu que comme le «langage pour Android», mais il a des ambitions dans d'autres domaines. Que voyez-vous de vos formations: toute la demande des développeurs mobiles, ou les backenders s'appliquent-ils également?

- Il y a un an, presque tout le monde était pour les développeurs Android. Et maintenant, je pense, environ 50 à 50. Il y a aussi un intérêt croissant pour les formations Kotlin Coroutines et Effective Kotlin.

- A la question de Effective Kotlin: votre nouveau livre s'appelle le même, et votre rapport sur Mobius est Efficient Kotlin. De tels noms similaires signifient-ils que le nouveau rapport est une brève relecture des thèses de l'ensemble du livre?

- Les mots «efficace» et «efficace» dans la programmation ont des significations très différentes, comme «sûr» et «sécurisé». «Efficace» est plus général, sur les meilleures pratiques les plus différentes. Et «Efficient Kotlin» ne concerne que les performances et les optimisations de mémoire, la troisième partie y est consacrée dans le livre. Pour Mobius, c'est mieux, car la conférence est connue pour ses rapports avancés destinés aux développeurs expérimentés. Et le temps du rapport est limité, le livre entier ne peut pas y être couvert.



- Et les principes de "Effective Kotlin" et "Efficient Kotlin" conviennent à tous les développeurs, peu importe ce qu'ils écrivent sur Kotlin, ou y a-t-il une spécificité?

- Tout le monde: non seulement Android et le backend, mais même ceux qui utilisent Kotlin / JS et Kotlin / Native.

- Le nom "Effective Kotlin" évoque immédiatement le "Effective Java" de Joshua Bloch. À quoi ressemble votre livre?

- Il existe de nombreux livres au format «Effective X», et tous sont construits sur le même principe: montrer avec des exemples concrets comment mieux écrire du code. J'ai été inspiré par Effective Java et d'autres par Effective C #, Effective Python, Effective C, Effective JavaScript. Mais il n'y a aucune liaison stricte à aucun de ces livres - tous ces langues sont différentes, et des conseils différents sont nécessaires avec eux. Bien que, si vous les lisez tous puis lisez Efficace Kotlin, vous pouvez lier n'importe lequel de mes conseils avec les conseils d'autres livres "efficaces". Et aussi avec des conseils d'autres livres influents comme Code Complete, Clean Code, Clean Archutecture, Structure et mise en œuvre de programmes informatiques, etc. Mon objectif était de prendre les meilleurs conseils qui conviennent à Kotlin et de les présenter de la manière la plus compréhensible.

- De nombreux livres ont déjà été publiés sur Kotlin, mais ils étaient généralement au format «comment faire quelque chose sur Kotlin» et non «comment le faire de la manière la plus efficace». Pensez-vous qu'au début la communauté avait besoin des bases de Kotlin, mais maintenant elle a maîtrisé et veut améliorer la qualité?

- Oui, je pense que la communauté s'est tellement développée qu'elle a maintenant besoin de meilleures pratiques. Selon le site officiel, il existe déjà plus de deux millions de développeurs Kotlin dans le monde. C’est beaucoup. Il existe déjà de nombreux articles et réponses au format «Comment ...» sur Stack Overflow, mais il y a de plus en plus de gens qui ont dû utiliser Kotlin à cause de la solution de CTO, ou pour qui il est devenu la première langue. Maintenant, établir des normes est essentiel car Kotlin permet beaucoup, et si nous n'empêchons pas les gens de faire des choses folles, ils peuvent finir par l'aimer et commencer à le considérer comme déroutant et illisible.

- Les meilleures pratiques sont toujours un sujet de discussion, les opinions des gens sur «ce qui est le mieux» diffèrent. Y a-t-il des discussions dans vos formations ou rapports?

- Oui, et ces discussions m'ont inspiré pour écrire Effective Kotlin. Comme je l'ai dit, les gens se soucient souvent de certaines fonctionnalités. J'écoute habituellement et je les laisse parler. En conséquence, il est toujours possible de tirer des conclusions sur les avantages et les inconvénients de la fonctionnalité, puis les équipes décident de la façon de la gérer.

"Vous publiez le deuxième livre." À quoi ressemble le processus de travail sur eux? Par exemple, comment décidez-vous qui le publiera?

- Le premier que j'ai publié dans Pact. Je n'étais pas tout à fait satisfait de la collaboration, j'ai donc décidé de publier Effective Kotlin par moi-même en utilisant LeanPub. Jusqu'à présent, l'expérience est excellente. J'ai d'excellents commentateurs bénévoles, un bon designer et une belle typographie. Des problèmes ne sont apparus qu'avec le compte sur Amazon, mais j'espère avoir le temps de m'en occuper avant la publication de la version finale du livre.

- Conseillez-vous aux développeurs d'écrire des livres? Est-ce utile pour le développeur?

"Pour accéder au livre, vous devez savoir que cela prendra certainement plus de temps que prévu." Estimez 1 à 2 heures par page. Et si vous êtes développeur, il est peu probable que le livre vous rapporte plus d'argent que si vous aviez passé ce temps à programmer. D'un autre côté, vous apprendrez beaucoup. Pour écrire en toute confiance, vous devez étudier attentivement le sujet et vraiment comprendre chaque argument. Et c'est une expérience unique.

- Et la dernière question: si vous pouviez changer une chose à Kotlin, quelle serait-elle?

- Je pense que je me débarrasserais de l'Unité. Il est un peu ennuyeux. Surtout lors de l'interaction avec d'autres langues.

Enfin, rappelez les liens vers ce qui est mentionné dans le texte. Le livre "Effective Kotlin" est publié sur Leanpub , et la description du nouveau rapport de Marcin, avec lequel il arrivera à Mobius en décembre, est publiée sur le site Web de la conférence (et vous pouvez également voir son programme complet ici ).

Source: https://habr.com/ru/post/fr472000/


All Articles