Dans les enquêtes Stack Overflow en 2018, 45,3% des répondants ont qualifié Java de langage de programmation le plus populaire, et Kotlin n'a préféré que 4,5% des développeurs. Cependant, en mai 2019, Google a annoncé Kotlin comme langage de programmation prioritaire. La société n'a pas appelé à l'abandon de C ++ et de Java, mais les différends entre programmeurs ont explosé encore plus.
Netology a appris des développeurs quel langage de programmation ils utilisent et comment ils voient l'avenir de Java et de Kotlin."Le thread principal restera en Java, et Kotlin sera utilisé pour un développement rapide"
Dmitry Kachalov, programmeur principal, Kelly IT SolutionsQuelles langues connaît-il? Au départ, j'ai étudié les langages de développement Web, mais à un moment donné, je voulais aussi faire du développement mobile. J'ai commencé à étudier le développement pour Android et à maîtriser le langage Java au minimum nécessaire pour pouvoir écrire les premières applications, exécuter sur le téléphone, publier sur le marché. C'était à l'époque où Kotlin venait d'apparaître et n'était pas connu d'un large cercle de développeurs.
Quelles utilisations. Maintenant, lors du développement d'applications d'entreprise, j'utilise Java. De nombreuses bibliothèques sont disponibles pour lui, il existe des modules prêts à l'emploi. De plus, Android Studio le prend en charge à tel point que vous pouvez littéralement écrire une lettre, et le code sera écrit pour vous. C'est très pratique.
Dans ma pratique, il n'y avait rien de tel que d'exiger la connaissance d'une autre langue. Java est généralement suffisant, car il possède de nombreuses bibliothèques et il est possible d'effectuer n'importe quelle tâche en principe. La seule chose à considérer est les limites de la plate-forme Android elle-même. Parce que quelle que soit la langue, toutes les restrictions tôt ou tard reposent sur la restriction de la plateforme. À mon avis, il n'y a pas beaucoup de différence dans la langue de mise en œuvre de la tâche, l'essentiel est de trouver une bonne solution qui fonctionnera au sein d'une plateforme spécifique.
Pourquoi préfère Java. Vous pouvez y créer des services gratuits, vos propres méthodes API, écrire des sites, des serveurs, des applications mobiles. Il s'agit essentiellement d'un langage universel dans lequel vous pouvez effectuer un grand nombre d'opérations et développer différentes applications. Pour lui, il existe de nombreux développements et bibliothèques. Et aussi - une grande communauté qui est toujours prête à répondre aux questions et à aider.
Sur la confrontation et l'avenir des langues. Kotlin est certainement un pas en avant intéressant, mais à mon avis, il ne comporte pas de nouvelles approches et de nouveaux paradigmes. Cela réduit simplement le temps nécessaire pour écrire du code avec des constructions plus courtes. En même temps, il est toujours basé sur le même Java.
Dans un avenir proche, Java sera toujours le plus populaire. Le thread principal restera en Java, et Kotlin sera utilisé pour un développement rapide dans le cadre du prototypage rapide d'applications simples ou de prototypage. Bien que ce soit un point de vue très provocateur. Kotlin est compatible avec Java, vous ne pouvez donc pas dire que quelque chose changera fondamentalement.
«Si vous êtes débutant et que vous souhaitez travailler avec Android, apprenez Kotlin. Sinon, je choisirais Java "
Artem Pervushov, spécialiste sous licence Android ATC, auteur du programme de cours pour développeurs Android en netologiePourquoi préfère Java. Tout d'abord, vous devez comprendre de quoi parle Kotlin. Kotlin est plus sur le sucre syntaxique. Ai-je besoin de tant de sucre? Probablement pas, j'ai déjà l'habitude de lire du code Java et de ne pas faire d'erreurs (presque). Un débutant en programmation devrait-il choisir un Java évidemment plus complexe? Probablement pas non plus.
Encore faut-il considérer les avantages d'investir votre temps. Java n'est pas seulement une histoire d'Android et de bureau. Il y a un grand nombre d'autres projets là-dessus. Et si vous souhaitez passer d'Android ailleurs, connaître la langue vous sera utile.
A propos de l'avenir des langues. Peut-être qu'à l'avenir Kotlin prendra le contrôle du monde, ou peut-être pas. "Capturer le monde" Go, Python, Ruby, JS, <remplacer le nécessaire> est beaucoup moins courant que ce que les fans de ces technologies nous disent. Par conséquent, mon conseil est le suivant - si vous êtes un débutant et déterminé à connecter votre destin à Android - apprenez Kotlin, c'est pratique et à la mode. Sinon, je me concentrerais sur Java.
«Les développeurs de Kotlin peuvent utiliser des frameworks et des bibliothèques Java et écrire du code plus compréhensible et simple.»
Semyon Pilunts, développeur Android, expert du cours de NetologieQuelles langues connaît-il? Ma connaissance de la programmation s'est faite dans mon institut, j'ai commencé avec Pascal, j'ai aussi étudié le Basic, QBasic. Déjà à la fin de mes années scolaires, j'ai commencé à étudier C. Je ne me suis pas arrêté là et j'ai commencé à étudier d'autres langues - Javascript, VB 6.0, MS SQL, Java. Il s'est vite rendu compte que Java était le plus proche de moi, alors il a décidé de s'y concentrer.
Après quelques années, par hasard, j'ai commencé à utiliser Java pour créer des applications mobiles pour Android. Parfois, il était nécessaire d'utiliser Javascript, HTML, SQL dans Android lui-même. Connaître d'autres langues aide toujours.
Quelles utilisations. Je travaille actuellement à Java et Kotlin. Jusqu'à présent, nous ne pouvons pas abandonner complètement Java, mais nous progressons progressivement.
En pratique, avant d'entreprendre une tâche, vous devez l'évaluer, choisir une approche et un moyen de l'accomplir. Ici, il deviendra clair quelle langue est préférable d'utiliser. Dans ce cas, il n'y aura aucune situation où vous ne pourrez pas faire face à la tâche. Dans le même temps, les développeurs de Kotlin peuvent utiliser des frameworks et des bibliothèques Java et écrire du code plus compréhensible et simple.
Pourquoi Kotlin préfère. L'utilisation de Kotlin est plus facile et plus pratique que Java. Dans ce document, le code du programme est obtenu en moyenne 40% plus court. Et cela vous permet d'éviter certaines erreurs qui peuvent survenir lors de l'exécution du programme. Lorsque le code est plus simple et plus compréhensible, les erreurs sont plus difficiles à commettre et plus faciles à détecter, de sorte que leur nombre diminue rapidement. Vous passez moins de temps à développer et tester.
A propos de l'avenir des langues. Je pense que dans un avenir proche, Kotlin sera en mesure de remplacer presque complètement Java. Déjà, il couvre le marché Android de 50%, et ce n'est que 3 ans après son apparition. Mais encore, Java a besoin de savoir, sans lui, il sera difficile de transférer le code vers Kotlin. Ici, je note que Kotlin est entièrement compatible avec Java, c'est-à-dire qu'il n'est pas du tout nécessaire de réécrire complètement et immédiatement l'application. Il est souvent plus pratique de le faire progressivement.
Et le développement d'applications Android n'est pas la seule direction de Kotlin. Il prend en charge JavaScript, les programmeurs peuvent y transférer l'interface, Kotlin est idéal pour développer des applications serveur, vous permettant d'écrire du code court et expressif, tout en conservant une compatibilité totale avec les piles basées sur la technologie Java existantes. Les créateurs ont également ajouté le support Gradle afin que les développeurs puissent y écrire des fichiers Gradle. Est activement le développement de Kotlin Native, avec lequel vous pouvez créer des applications iOS.
"Kotlin n'est pas meilleur que Java en général, mais meilleur dans le monde Android"
Ilnaz Gilyazov, co-fondateur d'AIMS, auteur du cours de développeur Kotlin en netologieQuelles langues connaît-il? Au départ, j'ai appris plusieurs langages au besoin: Assembleur, C / C ++, puis Java, JS, PHP, Python. Depuis que je travaille et travaille dans le domaine de la sécurité de l'information, je ne peux pas m'arrêter dans une seule langue.
Quelles utilisations. Maintenant, je choisis les outils en fonction des tâches et des préférences du client. Pour le backend - Java / Kotlin, pour les choses légères sans beaucoup d'intégrations - Go / NodeJS, pour le frontend - Framework JS / TypeScript +, pour les choses système - C ++ / Go. Autrement dit, je ne prends pas en compte les préférences personnelles, mais je procède de la tâche et des capacités de la langue et de son écosystème.
Pourquoi Kotlin préfère. Les avantages du langage Kotlin dans un regard neuf sur les choses, dans la volonté de fournir aux développeurs des outils simples et pratiques qui ne nécessitent pas beaucoup de code. Ce sont le sucre syntaxique et les coroutines. Kotlin vous permet d'écrire moins de code - cela vous plaît.
Sur Android, choisir Kotlin au lieu de Java est évident. Dans le monde du backend, la position de Kotlin est beaucoup plus faible, bien que même là, il fasse son chemin. Le Spring Framework (qui pour beaucoup est la norme dans le backend) comprend des puces pour Kotlin qui ne sont pas disponibles pour Java. Cela en dit déjà beaucoup. Dans le backend large et complexe, nous travaillons toujours en Java, bien que nous utilisions Kotlin à certains endroits. Dans le cas de l'architecture de microservices, où un microservice spécifique ne nécessite pas un grand nombre d'intégrations, Kotlin se sent bien.
Kotlin n'est pas meilleur que Java en général, mais meilleur dans le monde Android. Bien que cela puisse également être argumenté, tout dépend des paramètres par lesquels nous évaluons.
Sur la confrontation et l'avenir des langues. La confrontation entre développeurs sur Kotlin et Java est parfois observée dans des projets où il n'y a pas d'accord commun et qui utilisent les deux langages. Et il y a des fanatiques qui croient en la seule langue correcte. Sinon, tout est plus ou moins lisse, bien que la rugosité reste sur les problèmes d'intégration. Si vous voulez devenir un pro sur Android, vous devrez connaître les deux langues. Quoi qu'il en soit, cela vaut la peine de s'habituer au fait que vous devez constamment apprendre de nouveaux langages, bibliothèques, cadres, idées et approches.
Maintenant, l'avenir de Java dans Android n'est pas clair. Lorsque nous avons transféré tous nos projets Android vers Kotlin, Java dans Android est resté bloqué sur la septième version avec des puces du huitième. Et on ne sait toujours pas si Google a l'intention de résoudre ses différends avec Oracle et d'introduire un support pour les nouvelles versions, ou s'attardera sur ses positions actuelles. Par conséquent, investir dans l'apprentissage, l'utilisation et le support de Java sur Android semble être au moins risqué à moyen terme.
Kotlin se développe de façon plus ou moins prévisible et fournit des wrappers qui vous permettent d'utiliser toutes les fonctionnalités modernes du langage, ajoute un certain nombre d'équipements et de capacités spécifiquement pour le développement pour Android. Il s'agit d'un facteur important qui affecte la satisfaction des développeurs.
Dans un avenir proche, je ne pense pas que Kotlin remplacera Java. Au contraire, il pourra coexister avec Java, car il était initialement orienté vers cela. J'espère que la plupart des bibliothèques Java existantes ne seront pas réécrites dans Kotlin. Mais vous pouvez écrire en Kotlin (ayant compris les nuances de l'intégration Java de Kotlin <->, par exemple, la réflexion et tous les pièges) et utiliser des bibliothèques écrites en Java.
«Désormais, personne ne recherche un développeur connaissant uniquement Java ou Kotlin. Vous devez être un spécialiste universel »
Dmitry Gordin, développeur Android chez RoadARÀ propos de la confrontation. Afin de ne pas engendrer de démagogie et de ne pas être basé sur des sentiments personnels, regardons les principaux acteurs du marché. Premièrement, Google reconnaît Kotlin comme le principal langage de développement pour Android. Deuxièmement, voici à quoi ressemblent les postes vacants sur HH.ru des meilleures entreprises:
- Tinkoff - «Un atout majeur: expérience dans le développement d'applications sur Kotlin»;
- Yandex - "Bienvenue: expérience de développement sur Kotlin";
- Redmadrobot - «Souhaitable: expérience de développement de Kotlin»;
- même «Russian Post» - «Nous attendons de vous les connaissances et compétences suivantes: connaissance de la pile technologique Android SDK, Kotlin / Java».
A propos du choix de la langue. Vous devez connaître les deux langues. Il est impossible de connaître Kotlin et de ne pas connaître Java. La ligue ennuyeuse peut trouver à redire et remarquer qu'il existe un Kotlin Native qui n'est pas lié à Java. Mais nous parlons de développement Android, ce qui signifie le runtime Dalvik / ART. Par conséquent, tous les employeurs qui écrivent qu'ils recherchent un développeur sur Kotlin recherchent en fait les deux langues.
À mon avis, la meilleure façon est de se familiariser avec Java, puis de passer en douceur à Kotlin. Kotlin ne bouleverse pas tout ce que vous saviez de Java. Vous pouvez passer à un nouveau langage avec des changements minimes et écrire dans le "style Java", en kotlinisant progressivement votre code, en y ajoutant du sucre et des puces spécifiques à Kotlin.
Des éditeurs
Nous avons pris en compte la situation actuelle des langages de programmation et les opinions des développeurs eux-mêmes - nous enseignons Java et Kotlin sur le cours «
Développeur Android à partir de zéro ». Grâce à cela, les étudiants peuvent choisir quelle langue rester à l'avenir, ou utiliser les deux.