- Java vs Kotlin для Android: мнения разработчиков
- «Основной поток останется на Java, а Kotlin будут использовать для быстрой разработки»
- «Если вы новичок и хотите работать с Android — учите Kotlin. В остальных случаях я бы выбрал Java»
- «Kotlin-разработчики могут использовать Java-фреймворки и библиотеки и писать более понятный и простой код»
- «Kotlin не лучше Java в целом, но лучше в мире Android»
- «Сейчас никто не ищет разработчика со знание только Java или только Kotlin. Нужно быть универсальным специалистом»
- Kotlin or Java? Which Programming Language Android App developer should learn in 2021?
- Why beginners in Android Development Should Start With Java?
- Why Java Programmers Should Learn Kotlin?
- Closing Notes
Java vs Kotlin для Android: мнения разработчиков
В опросах Stack Overflow в 2018 году 45,3% респондентов называли Java самым популярным языком программирования, а Kotlin отдали предпочтение всего 4,5% разработчиков. Тем не менее, в мае 2019 в Google объявили приоритетным языком программирования именно Kotlin. Корпорация не призывала отказываться от С++ и Java, но споры между программистами разгорелись еще жарче.
Нетология узнала у разработчиков, какой язык программирования они используют и каким видят будущее Java и Kotlin.
«Основной поток останется на Java, а Kotlin будут использовать для быстрой разработки»
Дмитрий Качалов, ведущий программист Kelly IT Solutions
Какие языки знает. Изначально я изучал языки веб-разработки, но в какой-то момент захотел заняться и мобильной разработкой тоже. Я начал изучать разработку для Android и освоил язык Java в том необходимом минимуме, чтобы можно было писать первые приложения, запускать на телефоне, публиковать в маркете. Это было еще тогда, когда Kotlin только появился и не был известен широкому кругу разработчиков.
Какие использует. Сейчас при разработке корпоративных приложений я пользуюсь именно Java. Для него доступно много библиотек, есть готовые модули. Кроме того, Android Studio его настолько поддерживает, что буквально можно писать по одной букве, и код будет писаться сам за тебя. Это очень удобно.
В моей практике не было такого, чтобы требовалось знание другого языка. Обычно достаточно Java, потому что на нем реализовано много библиотек и можно выполнить в принципе любую задачу. Единственное, стоит учитывать ограничения самой платформы Android. Потому что какой бы ни был язык, все ограничения рано или поздно упираются в ограничение платформы. На мой взгляд, нет большой разницы, на каком языке реализовывать задачу, главное найти хорошее решение, которое будет работать в рамках конкретной платформы.
Почему предпочитает Java. На нем можно делать бесплатные сервисы, свои методы API, писать сайты, сервера, мобильные приложения. Это по сути универсальный язык, на котором можно делать большое количество операций и разрабатывать разные приложения. К нему есть много наработок и библиотек. А еще — большое сообщество, которое всегда готово ответить на вопросы и помочь.
О противостоянии и будущем языков. Kotlin — определенно, интересный шаг вперед, но на мой взгляд, он не несет в себе каких-то новых подходов и парадигм. Просто сокращает время написания кода за счет более коротких конструкций. При этом в основе все равно лежит та же самая Java.
В ближайшее время Java все равно будет самой популярной. Основной поток останется на Java, а Kotlin будут использовать для быстрой разработки в условиях быстрого прототипирования простых приложений или разработки прототипов. Хоть это и очень провокационная точка зрения. Kotlin совместим с Java, поэтому нельзя сказать, что что-то принципиально изменится.
«Если вы новичок и хотите работать с Android — учите Kotlin. В остальных случаях я бы выбрал Java»
Артем Первушов, лицензированный специалист Android ATC, автор программы курса «Android-разработчик» в Нетологии
Почему предпочитает Java. Прежде всего, надо понимать о чем Kotlin. Kotlin — это в большей степени о синтаксическом сахаре. Нужно ли мне так много сахара? Наверное, нет, я уже привык читать код на Java и не делать ошибок (почти). Должен ли новичок в программировании выбирать заведомо более сложную Java? Наверное, тоже нет.
Еще нужно учитывать выгоду вложения вашего времени. Java — это история не только про Android и desktop. На ней существует огромное число других проектов. И если вы захотите перейти из Android куда-то еще, знание языка пригодится.
О будущем языков. Может в будущем Kotlin захватит мир, а может и нет. «Захват мира» Go, Python, Ruby, JS, происходит гораздо реже, чем нам говорят поклонники этих технологий. Поэтому мой совет такой — если вы новичок и твердо решили связать свою судьбу с Android — учите Kotlin, это удобно и модно. В остальных случаях я бы остановился на Java.
«Kotlin-разработчики могут использовать Java-фреймворки и библиотеки и писать более понятный и простой код»
Семен Пилунц, Android-разработчик, эксперт курса Нетологии
Какие языки знает. Знакомство с программированием случилось у меня в институте, начал с Pascal, также изучали Basic, QBasic. Уже в конце учебных лет начал изучать C. На этом я не остановился и начал изучать другие языки — Javascript, VB 6.0, MS SQL, Java. Вскоре осознал, что ближе всех мне Java, поэтому решил сфокусироваться на нем.
Спустя пару лет по воле случая начал использовать Java для создания мобильных приложений под Андроид. Иногда приходилось в самом Андроиде использовать Javascript, HTML, SQL. Знание других языков всегда помогает.
Какие использует. Сейчас я работаю как на Java, так и на Kotlin. Пока что полностью отказаться от Java мы не можем, но постепенно переходим.
На практике, прежде, чем браться за выполнение задачи, нужно оценить ее, подобрать подход и пути выполнения. Здесь же станет понятно, какой язык лучше использовать. В таком случае не будет ситуации, когда вы не сможете справится с задачей. При этом Kotlin-разработчики могут использовать Java-фреймворки и библиотеки и писать более понятный и простой код.
Почему предпочитает Kotlin. Использовать Kotlin проще и удобнее, чем Джаву. В нем программный код получается в среднем на 40% короче. А еще он позволяет не допускать некоторых ошибок, которые могут возникнуть в ходе выполнения программы. Когда код более простой и понятный, ошибки сложнее сделать и легче обнаружить, поэтому их число стремительно снижается. Вы тратите меньше времени на разработку и тестирование.
О будущем языков. Думаю, в ближайшем будущем Котлин сможет практически полностью заменить Джаву. Уже сейчас он охватывает рынок Android на 50%, и это всего за 3 года после появления. Но все же Джаву надо знать, без нее будет трудно переносить код на Котлин. Здесь отмечу, что Котлин полностью совместим с Java, то есть вовсе не обязательно сразу полностью переписывать приложение. Часто удобнее делать это постепенно.
А еще разработка Android-приложений — не единственное направление Kotlin. Он поддерживает JavaScript, программисты могут перенести на него фронтенд, Kotlin отлично подходит для разработки серверных приложений, позволяя писать короткий и выразительный код, сохраняя полную совместимость с существующими стеками технологий на основе Java. Также создатели добавили поддержку Gradle, чтобы разработчики могли писать на нем Gradle-файлы. Активно идет развитие Kotlin Native, с помощью которого можно создавать iOS-приложения.
«Kotlin не лучше Java в целом, но лучше в мире Android»
Ильназ Гильязов, сооснователь AIMS, автор программы курса «Разработчик на Kotlin» в Нетологии
Какие языки знает. Изначально я учил несколько языков по мере необходимости: Ассемблер, C/C++, потом уже Java, JS, PHP, Python. Поскольку работал и работаю в сфере ИБ, не могу останавливаться на одном языке.
Какие использует. Сейчас выбираю инструменты в зависимости от задач и предпочтений заказчика. Для бэкенда — Java/Kotlin, для легковесных вещей без множества интеграций — Go/NodeJS, для фронтенда — JS/TypeScript + фреймворки, для системных вещей — C++/Go. То есть учитываю не личные предпочтения, а исхожу из задачи и возможностей языка и его экосистемы.
Почему предпочитает Kotlin. Преимущества языка Kotlin в свежем взгляде на вещи, в желании предоставить разработчикам простые и удобные инструменты, не требующие большого количества кода. Это и синтаксический сахар, и корутины. Kotlin позволяет писать меньше кода — это радует.
В Android выбор Kotlin вместо Java очевиден. В мире backend позиции Kotlin гораздо слабее, хотя и там он себе пробивает дорогу. В Spring Framework (который для многих — стандарт в backend) включают фишки для Kotlin, недоступные для Java. Это уже говорит о многом. В большом и сложном backend мы пока по-прежнему работаем на Java, хотя и используем в некоторых местах Kotlin. В случае микросервисной архитектуры, где для конкретного микросервиса не требуется большого количества интеграций, Kotlin чувствуют себя прекрасно.
Kotlin не лучше Java в целом, но лучше в мире Android. Хотя с этим тоже можно поспорить — все зависит от параметров, по которым мы оцениваем.
О противостоянии и будущем языков. Противостояние между разработчиками на Kotlin и Java иногда наблюдаю в проектах, где нет общей договоренности и используют оба языка. А еще есть фанатики, которые верят в единственно правильный язык. В остальном все более-менее гладко, хотя в вопросах интеграции остаются шероховатости. Если вы хотите стать профи в Android, придется знать оба языка. Да и вообще, стоит привыкнуть к тому, что придется постоянно осваивать новые языки, библиотеки, фреймворки, идеи и подходы.
Сейчас будущее Java в Android непонятно. Когда мы перевели все свои Android-проекты на Kotlin, Java в Android застряла на уровне седьмой версии с некоторыми фишками из восьмой. И до сих пор неясно, собирается ли Google решать свои споры с Oracle и вводить поддержку новых версий, либо остановится на текущих позициях. Поэтому инвестиции в изучение, использование и поддержку Java на Android выглядят, как минимум, рискованными в среднесрочной перспективе.
Kotlin же развивается более-менее предсказуемо и предоставляет обертки, которые позволяют использовать все современные возможности языка, добавляет ряд удобств и возможностей именно для разработки под Android. Это немаловажный фактор, который влияет на удовлетворенность разработчиков.
В ближайшем будущем я не думаю, что Kotlin заменит Java. Скорее, он сможет сосуществовать с Java, так как изначально на это и ориентировался. Надеяться на то, что большую часть существующих популярных Java-библиотек перепишут на Kotlin не стоит. Но вы можете писать на Kotlin (разобравшись в нюансах интеграции Kotlin Java, например, рефлексии и всех подводных камнях) и использовать библиотеки, написанные на Java.
«Сейчас никто не ищет разработчика со знание только Java или только Kotlin. Нужно быть универсальным специалистом»
Дмитрий Гордин, Android developer в RoadAR
О противостояни. Чтобы не разводить демагогию и не основываться на личных ощущениях, давайте посмотрим на крупных игроков рынка. Во-первых, Google признает Kotlin основным языком разработки под Android. Во-вторых, вот так выглядят вакансии на HH.ru от топовых компаний:
- Tinkoff — «Существенный плюс: опыт разработки приложений на Kotlin»;
- Яндекс — «Приветствуется: опыт разработки на Kotlin»;
- Redmadrobot — «Желательно: опыт разработки на Kotlin»;
- даже «Почта России» — «Ожидаем от вас следующие знания и компетенции: знание технологического стека Android SDK, Kotlin/Java».
О выборе языка. Нужно знать оба языка. Невозможно знать Kotlin и не знать Java. Лига зануд может придраться и заметить, что есть Kotlin Native, который не связан с Java. Но мы говорим об Android разработке, а значит, о среде выполнения Dalvik/ART. Поэтому все работодатели, которые пишут, что ищут разработчика на Kotlin, на самом деле ищут оба языка.
По моему мнению, оптимальный путь — хорошенько освоиться с Java, а затем начать плавно переходить на Kotlin. Kotlin не переворачивает с ног на голову все, что вы знали из Java. Вы с минимальными изменениями сможете перейти на новый язык и писать в «Java-стиле», постепенно котлинизируя ваш код, добавляя в него сахар и специфичные для Kotlin фишки.
Источник
Kotlin or Java? Which Programming Language Android App developer should learn in 2021?
Ever since Google announced @Kotlin as the official language for Android development at Google IO in 2017, programmers who want to become Android developers are in a dilemma. The big question in front of them is whether they should learn Kotlin or Java.
If you are a complete beginner who wants to learn Android development, then my answer is Java, but if you are a Java developer who wants to jump into the lucrative market of Android app development, then my answer is Kotlin.
I’ll discuss why beginner Android programmers should start with Java and why Java developers should learn Kotlin in this article.
When I say beginners should start with Java, you may be thinking, “What the heck? Kotlin is much more productive, less boilerplate code, and now the official language of Android development, and this guy is suggesting learning Java. I am not gonna fall for it…”
Well, being a Java developer, I may be a little bit biased, but I’ll try to explain the reasons why I suggest a beginner Android developer starting with Java rather than Kotlin.
Why beginners in Android Development Should Start With Java?
The first and foremost thing is that Android development is not everything; as a programmer, you may be starting your career with Android development, but if you start with a well-established language like Java, you become a part of the bigger Java community and market, which directly means more job opportunities.
The second and more important thing is that there is a huge community of Java programmers, which means you can find answers when you are stuck.
This is very important because, as a beginner, you will face a lot of technical problems and you might not know where to head when you are stuck.
When you search Google with a Java problem, you are bound to get answers; the same cannot be said for Kotlin, which is still a new programming language.
There are also more tutorials, books, and courses out there, both free and paid, which can teach you Android development with Java, e.g. this list of Android resources for Java programmers, but there are not many for Kotlin, especially free resources on Android development.
Things will definitely improve over time when more and more programmers start using Kotlin, but I doubt it can ever touch the popularity and adoption of the Java programming language.
That’s why I suggest, a beginner programmer who wants to become an Android developer should start with Java, rather than Kotlin.
However, that’s not a hard and fast rule; if you prefer learning Kotlin rather than Java due to productivity reasons and are mostly focused on Android development, then you can sure start with Kotlin, and Kotlin Fundamentals is a good place to begin.
But, once you know Java, your journey to Kotlin will also be easy and smooth because Kotlin is 100% interoperable with Java. It compiles into Java bytecode and runs on JVM.
Why Java Programmers Should Learn Kotlin?
Now, coming back to the second set of programmers who wants to learn Android development: our fellow Java developers. For them, I think its best to learn Kotlin because it really improves productivity.
A class which takes 50 lines of code in Java can really be written in just one line in Kotlin. It can help you avoid all boilerplate code, e.g. you don’t need to specify getters and setters, equals(), hashCode()or toString() methods. Kotlin can generate all that by itself.
Here is a nice comparison between Kotlin and Java in terms of productivity and lines of code to write similar stuff:
If you don’t know, Kotlin was development by JetBrains, the company behind one of the most popular Java IDEs, IntelliJ IDEA. They were a Java shop and developing IDEs like IntelliJ IDEA, PyCharm, and ReSharper, all in Java, and built Kotlin to improve their productivity, but at the same time, they cannot rewrite all their code in Kotlin, so that’s why they made Kotlin fully interoperable with Java.
Because Kotlin generates Java bytecode, you can use your favorite Java frameworks and libraries in Kotlin and your Java friends can also use any Kotlin framework you develop.
Even a major Java framework like Spring has started supporting Kotlin from Spring 5. If you don’t what’s new in Spring 5, check that out.
Even though currently, almost all @Android code, examples, and apps are in Java, it will change in the future because Google has declared Kotlin as the official language for Android app development.
Many companies have already started using Kotlin for their Android app development, and that’s the main reason I think Java developers should learn Kotlin in 2021.
If you decide to learn Kotlin in 2021, then Getting Started with Kotlin is also a great place, to begin with. It’s a no-nonsense course for Java developers which will help you to get going with Kotlin in no time.
You don’t need to start with things like what a variable and object are, as this course has the right pace and depth for Java developers as compared to other beginner Kotlin courses for Android development.
If you prefer books, then Kotlin in Action is also not bad. You can learn about all the essential features of Kotlin, e.g. var vs val, data keyword, and functional programming all by yourself.
That’s all about whether Android developers should learn Kotlin or Java. As I said, if you are a complete beginner who wants to start your career as an Android developer, you’d better start with Java.
You will not only get up to speed in no time, but you would have better community support, and knowledge of Java will help you a lot in the future. It will also help you to learn Kotlin in the future.
If you are a Java developer, then you’d better start learning Kotlin to not only improve your productivity but also help you become part of a lucrative niche of Java developers who know Kotlin, which may give you a competitive edge in the job market. It’s also one of the 3 JVM languages Java developers should learn in 2021 on my list.
Closing Notes
Thanks for reading this article so far. You might be thinking that there is so much stuff to learn, so many courses to join, but you don’t need to worry.
There is a good chance that you may already know most of the stuff, and there are also a lot of useful free resources which you can use, I have also linked them here and there along with best resources, which are certainly not free, but worth of money.
I am a particular fan of Udemy courses as they are very affordable and provide a lot of values in very small amount, but you are free to choose the course you want.
At the end of the day, you should have enough knowledge and experience about the things mentioned here.
Good luck with your Kotlin journey! It’s certainly not going to be easy, but by following this guide, you are one step closer to becoming the Android developer, you always wanted to be
If you like this article then please consider following me on medium (javinpaul). if you’d like to be notified for every new post and don’t forget to follow javarevisited on Twitter!
All the best for your Kotlin Journey and create some wonderful Android application.
Источник