Even now that Kotlin is an officially supported language to write Android Apps, you may still feel that there are not enough reasons for a change. Java has proved to be working during all these years, so why should you change?
Here are my reasons why I think that, far from being a risky bet, moving to Kotlin is one of the best things you can do.
Here are my reasons why I think that moving to #Kotlin is one of the best things you can do. Click To Tweet1. Language and environment are mature
Unlike other languages like Swift, the Kotlin release has gone through many stages before releasing the final 1.0 release.
This means that there are hardly any problems when working with Kotlin, everything works as you would expect.
The IDE plugin works smoothly, and already allows many of the features that you love and use in Java. Therefore, working with Kotlin is awesome in that sense.
It’s interesting to know that before its final version, the language spent several years in alpha and then in beta. And that even before the beta came out, there were people using it in real projects.
#Kotlin is a mature language, been through several years of alphas and betas until its final release. Click To Tweet2. It makes Android development much easier
If you’ve been reading this series of articles about Kotlin, you’ve probably seen it crystal clear many times.
Kotlin is simplicity mixed with power, so you have an new world of possibilities if you’re coming from Java that you couldn’t even imagine.
I honestly think it’s the only viable alternative to Java for developing great apps on Android. Other alternatives such as Scala are tremendously heavy, and compilation times and tools can’t be compared.
Compilation times in Kotlin today are already similar to Java (in some tests it showed to be even faster), and the library required to write Kotlin Apps is very small, so it won’t increase your method count that much.
#Kotlin is simplicity mixed with power. You have a new world of possibilities if you're coming from Java Click To Tweet3. It’s seamlessly integrated with Android Studio
It may sound silly, but everything working so nice since first minute is a great advantage.
You’ve already seen it if you’ve tried, but you can have a Kotlin project set up and ready to work in less than 10 minutes without any problems, even if you don’t know anything about Kotlin.
You can have a project set up and ready to work in less than 10 minutes in your first use of #Kotlin Click To TweetWith Android 2.3 you just need to install a plugin, and in 3.0 the whole process will be seamlessly integrated.
And from there everything works just like if you were working with Java: you can run from the IDE, debug without issues, do refactors, use instant run … Everything you can imagine is still there and can be used.
4. Its evolution is well covered
Jetbrains is the company behind Kotlin, and they are using it themselves in their own projects, so they’re more than interested in further developing it.
Also, specifically talking about Android, now with Google support, we have two huge companies working together to bring the best language and tools to our development environment.
From features like Kotlin Android Extensions, to libraries like Anko, continuous library size optimizations and build times, it all shows that Jetbrains is putting a lot of effort into Android.
5. If you’re an Android developer, you need to recycle
Let’s face it: Working with Java 6 makes us obsolete programmers.
I didn’t realize until I started learning Kotlin. But once you use a modern language, your mind starts to think in a different way.
And this new knowledge shows in your code even if you don’t change the language. Now in Java, I solve things differently, just because I’ve learned concepts that I didn’t know before thanks to learning a language that supports them.
In addition you become much more versatile. After that, I’ve taken a look (and even used) some languages like Swift, Groovy, Ruby… and it’s been much easier to understand them because they all use very similar ideas.
Concepts such as lambdas, extension functions, functional operations on collections, sealed classes, data classes… maybe with different names, but you’ll find them in most modern languages. So you just need to map the conversion from one language to another in your head, and you can move with ease.
Although we love Android, being prepared to jump to another language or platform gives you a huge value as a developer.
If you are an #AndroidDev, you need to recycle: Java 6 makes us obsolete programmers Click To Tweet6. It’s much safer than Java
You can’t imagine how tired I am of NullPointerException in Java. Actually every time I see one I feel really frustrated, because it’s a major problem in the design of the language itself.
I won’t deny that today we have tools like annotations, or some design patterns, that can help us avoid part of them. But, as usual, the amount of extra work needed is a problem in time and money.
But we can’t only talk about nulls. The whole amount of code we save on Kotlin reverts to:
- Less errors: If there is less code, it’s more difficult for that code to fail, and therefore becomes more stable.
- When the compiler helps you detect those errors at compile time, they never happen on runtime (obvious but true 😄)
- The code is easier to understand when someone else reads it and, again, it’s more difficult to introduce errors.
- It’s clearer what the code does (and not how), because we avoid any boilerplate that only serve to overcome the lacks of the language.
Definitely, it translates into more work done in less time, more stability, and less time spent in fixing bugs.
#Kotlin features translate into more work done in less time, and less time spent in fixing bugs. Click To Tweet7. There are well-known companies that already use it in production
For example, Pinterest is already using it in the new features of their Android app. You can listen to Christina Lee talking about her experience when they started using it on Pinterest.
Another great example is Basecamp, where 100% of the code of their Android App is already written in Kotlin. Dan Kim wrote about it:
https://twitter.com/dankim/status/864951356792070144
You also can read about their experience in several articles: article 1 and article 2.
Or Trello, whose production code also includes some parts in Kotlin:
A data point (for Android devs who are Kotlin-curious): @trello is happily using @kotlin in production nowadays.
— Dan Lew (@danlew42) December 14, 2016
On the Kotlin website you can see a growing list of companies that are already using it in production without hassle.
8. Companies are starting to ask for it on their job offers
It’s not just that there are companies that already use it, but others are starting to be interested a lot for it. I’ve already been training some big companies here in Spain, and the interest keeps growing.
Businesses are starting to invest money in training their employees in Kotlin, and that can only be a good sign.
9. Kotlin is multi-platform
Yeah, you’re not learning Kotlin just to write Android Apps. Kotlin was first created with JVM in mind, so it can virtually be used on any devices that can run the JVM.
But in Kotlin 1.1, Kotlin JS (which was experimental until then) was finally released, so you can also do front-end development using Kotlin.
But it doesn’t stop here, because thanks to Gradle support, you’ll be able to write your Gradle files in Kotlin, and thanks to Kotlin Native, the future is open to basically any platforms.
Writing Android Apps is just the tip of the iceberg.
With #Kotlin, you can write #AndroidDev, server, frontend, Gradle scripts and even native Apps. Click To Tweet10. Micro-niches are very profitable
Even though Kotlin isn’t adopted in most companies, there are already some who are using it. And if those companies grow, they’ll need Kotlin experts.
There are people who master super strange languages that are almost unused, but thanks to that they are earning a lot of money because they are one of the few language experts in the world.
Kotlin will stop being a micro-niche soon after Google announcement, but there’s still some time for you to stand out.
11. It’s very easy to learn
One of the great advantages of Kotlin is that a Java developer can understand most of the code without ever having written a line of Kotlin.
This is because Jetbrains people were very concerned that the transition from Java was simple, with a language that closely resembles to what you already know.
Thanks to the simplicity of the language and the help of the IDE and the compiler, you can handle the basics of the language really fast.
From there, the only more complex part is to understand the concepts that Java lacks, rather than the Kotlin syntax itself.
I don’t think anyone needs more than two weeks to feel comfortable writing code in Kotlin.
An #AndroiDev can understand most of the code without ever having written a line of #Kotlin Click To Tweet12. It’s so fun to use
To conclude, and although this is very subjective, I find Kotlin really fun to use.
Java bores me more and more, because of its feature limitations, its boilerplate, errors due to its design problems…
However Kotlin opens up a new world of possibilities for you to be creative, to solve same problems in a very different way.
I’ve found myself hours in front of the computer looking for ways to simplify daily tasks in Android development, and enjoying a lot in the process.
Conclusion
In my opinion, Kotlin is a friendly language to start with, really funny, it will spread your mind and make you think different and, above all, it’s ready to be used in production.
And it’s now an official language for Android development!
This is the end of the 30 articles I planned as an introduction to Kotlin for Android Developers, that I’ve been publishing for the last 7 months.
A lot of things have changed since then (the release of Kotlin 1.1 and Google announcement among others), and I hope they become a great tool for people to start learning Kotlin and boost the initial learning curve.
But if you want to learn what Kotlin’s situation is in the market, why you should learn it and the first steps to see how easy it is, I have prepared a free hour and a half training that you can join by clicking here.
Of course, I’ll continue writing more articles about Kotlin and Android, so keep in touch!
> IntelliJ is the company behind Kotlin
Technically, it’s JetBrains, the company. IntelliJ is only the name of the platform 😛
Ouch! That’s a mistake yeah . I’ll fix it, thanks!
Great article, Ive already switched most of my apps from https://simplemobiletools.github.io/ to kotlin and its awesome.
That’s great! Thanks for coming by!
Thanks…Antonio Leiva
Hello, Can I please translate your blog into Chinese?
It’s ok as long as you link to the original source clearly
Reading this article is just another proof that “love is blind” :)))
Haha, why do say that?
When will refactoring in Kotlin be working? The fact that it’s so buggy is an absolute deal-breaker.
I’m afraid I don’t have an answer for that. But the tools keep getting better and better, so I guess that within the time they’ll be great. Any things you may find are worth being reported to the Kotlin team so that they are aware.
Hi
Good article, just I’m not agree with point 1. Kotlin goes to many stages before reach version 1, you know than Apple don’t lunch something just becasue the have it, they take their time, when the luch Swift is because was ready. And 4 versions since then is also maturity.
Also, Kotlin is a response to Swift, Google could just stay in Java as Apple stay in Objective C, but neither are as atractive to new developers as Kotlin and Swfit.
Finally, Whats the point? Android developers can not use Swift and iOS developers can not use Kotlin. I Know there are some ideas to port, but not ready for real world apps at this time. So, i did not see the point of begin your list with this comparision.
I like this article: https://www.raywenderlich.com/6754-a-comparison-of-swift-and-kotlin-languages
Regards
Well, that’s not what several iOS developers have told me. When they released Swift 1, it was not production ready at all, and the tools were far away from ready. Then, when you have to migrate from one version of Swift to the next one, lots of things just stop working, which shows that they made decisions they were not happy with in the end. In a ready-to-use language, you can’t live with that fear. Also, compile times were like crazy when compared to objective-c. As far as I know, the problem with tools is still there, not sure about the others.
I compared it just because of that, because I know many iOS devs that started with Swift on its first versions, and they later had a very bad time. Kotlin features and stability have been good enough since the 1.0 version was released.
Hi
I noticed that things, Swift 1 was good but of course Xcode still has more orientation to Objective C, versión 2 was good and the integration was much better, Swift 3 and 4 are very good but is true, form 2 to 3 many things change and was a nightmare for developers.
But, what about the deprecated in Android? Something simple as the AlertDialog, it’s a good implementation buy deprecated now and find a simple alternative is complex.
I’ve been in programming for more than 30 years (I have 54 and begin with COBOL when I was 17), I use MS Access, Visual Basic for Applications, Visual Basic, Visual Basic NET, C#, and know Swift and Kotlin. But maybe you know something about the DLL hell that NET was supposed to end, well MS of course is very mature in their software development platforms, but Visual Studio has updates one or twice every month. And must time nothings breaks the apps but that updates make think that something can be wrong.
I like more programming for Android that iOS, but I can not compare the wrongs in each platform, because they have different intentions (as companies). I’m creating a series of videos one showing how to do things in Android and the same in iOS, because as developers we need to know how to implement the same functionality or at least something similar if we have to make apps for both.
Your book is great, and I’m really enjoy how do you structure your lessons. And I have learned a lot from you. Thanks for all your work.
Hey! Demand for kotlin has been increased by 20% from 2017 to 2018 that means most of the companies are shifting from java to kotlin. can you tell me the demand for kotlin in 2020.
The growth has been 4 times bigger from one year to the next one, so we can think that it will keep growing dramatically in the following years. Maybe not that fast, because the market will start saturating, but probably 2020 will be similar to the previous years.
Hi this nice blog thanks for sharing us..!
i agree this points.
I agree with you. 2 years ago when I was still in college I have read somewhere that there will be an increase demand of developers who knows Kotlin and this year I did a research and found job posts who are looking for developers who knows this language. I’m excited to learn this language and hoping to get a new laptop this year so that I can start coding and making small projects using this language. By the way, this is a nice blog.
Thanks Jeanne.