DEV Community

Ben Halpern
Ben Halpern

Posted on

The Strengths and Biggest Misconceptions of Kotlin—Interview with Marcin Moskala

I was approached about attending DevFest Siberia, which is September 23-24th of this month. That sounded like a lot of fun, but it was a bit tough to pull together. Interested to know what was going on, though, I asked to interview a speaker. Marcin Moskala is co-author of Android Development with Kotlin.

Kotlin is a real language success story. First unveiled in 2011 by Jetbrains, it has recently been embraced by Google after proving a viable and well-loved option in the Java ecosystem. I hope you enjoy the chat with Marcin.

Why did you get into Kotlin in the first place?

I found it on JetBrains website and it fascinated me how it solves common Java problems. I was fed up with doing things like null assertions. Kotlin was a fresh breathe that allow me to take Java programming out. I was learning it after hours. The more time I spend using Kotlin, the more I excited I was. This is why I decided to work with Kotlin. This is how I got to Docplanner and started to work with Kotlin on a daily basis.

What excites you about Kotlin?

I’ve been using Kotlin for over 3 years. For last 2 years, I’ve been using it nearly every day. It is amazing that I still have so much fun using it. But I am not excited about core features anymore. I am excited about Coroutines, because they are discreetly hiding complexity of concurrency. I have to admit that since last changes, I am also excited about Kotlin Android Extensions. They give hope for unification of some common Android tasks. I am really excited about Kotlin fullstack and Kotlin/Native, which will allow to write common module for Android an iOS or to make efficient data science in Kotlin. I think that each of this things is a breakthrough - I am waiting to see what it will bring to the future of programming.

What are some misconceptions about the Kotlin language?

The biggest misconception is its interoperability with Java. People just cannot believe that they can use Kotlin libraries in Java and everything will work fine. They are always surprised when I am telling them that they could convert only single file in the project into Kotlin and everything would work fine. They think that this cooperation is more like in Scala or Groovy – they can work together but there are a problems. No, they are not. They have great interoperability as if Kotlin would be next, better Java.

Another thing that is hard for most people to understand is that we can make module that will be compiled to more than one language (Java, JavaScript, C etc.). I think that this is problematic for people who are programming in scripting languages which are not compiled into bytecode. They look at code like at something that is running, not something that is compiled into something else.

What inspired you to write the book?

When I was learning programming Kotlin, I couldn’t find any book or any other sources of practical usages of Kotlin feature to improve Android development. I was searching for a book that shows not only the feature, but also real-life use cases – that shows why the feature makes sense. I couldn’t find such sources so I figured it out by myself. I want to make that path easier for other programmers learning Kotlin - that is why I came up with the idea to share my knowledge and experience in the book.

What are your tips for keeping up with open source and staying on the cutting edge?

It takes a lot of time to stay on the cutting edge. It is hard to do it without passion for programming. When you are interested about the topic, you have natural motivation for being up-to-date. You don’t need plan to check novelties – you just doing it because you are curious.

There is a good news – you can make your passion stronger. If you check out new technologies and learn new stuff then you can find new interesting features, you have more fun programming and like it better.

Using tools that helps to be up-to-date is also important. The most announcements and new ideas are nowadays published on blogs. You can find there nearly all the news from the programming world, but if you want to be in touch, you would have to track hundreds of them. This is why you should have well configured RSS that inform you about that actualizations. I am using Feedly - it has Chrome extension which allows to add blog you read to your subscriptions with single click. I am sure that there are alternatives – check them out to find one that suits you the most.

It is a great tool but still it won’t sub for conversations with other people fascinated about programming. While reading news, in order to find the information you are interested in, you have to go through all the stuff that you don’t need. Having a conversation with people from the brunch gives you that information much easier. What is more, you can exchange your ideas and experience. The best places to heard about the news are meet ups or conferences. Each time I attend the conference, I hear so much news and ideas that for next days I do nothing else in my free time but checking them out. I can’t wait for DevFest Siberia - it is really promising conference.

Last key elements are books and courses. This won’t help you to be up-to-date but it will give you hard knowledge, that you won’t gain from blogs or conferences. Books and courses have structure needed to gather deeper understanding of the subject. This is needed if you want to become really good in something.

Top comments (4)

ben profile image
Ben Halpern

Really would have been fun to go to Siberia!

realbrianmurphy profile image
Brian Murphy

He would have had a much better language if it didn't have colons all over the place. Nobody asks him why he wrecked the syntax with that stupid move.

lovis profile image

What are you talking about? 🤔

andy profile image
Andy Zhao (he/him)

There are more constructive ways of putting whatever you're trying to say.