Technologies Natives

I need to React to the KotlinConf '19

Disclaimer: This article is quite old, read one of our latest on the subject, Why use Kotlin on your Android project?

I participated to the KotlinConf '19, 15 days ago (It took some time to write this article down ?).

I am a mobile app developper. I am fond of React Native, and a beginner in Kotlin and Kotlin multiplatform.

On one hand, I really enjoyed the conference, on the other hand, it appears to me speakers and attendees were a bit tough on Javascript.

I am not writing here to fight on whether or not Javascript is better than other modern languages such as Kotlin : sure it is not ?. But I would like to give some reasons why we still need to consider JS as a serious competitor especially in mobile apps.

Yes, Kotlin, you are great...

  • Kotlin is typed and has type inference
  • Kotlin has extensions functions, null-safety, immutability and coroutines ??
  • Kotlin is a language created by Jetbrains ??
  • Kotlin has the best IDE plugins
  • Kotlin has an incredible adoption
  • Kotlin runs everywhere

Yes, yes, well done Kotlin ! However...

 

... in the cross-platform mobile Dev world (iOS and Android) React Native is still a competitor

During the Kotlin Conf, I noticed that speakers compared Kotlin multiplatform and React Native. Kotlin multiplatform is at its very beginning. And yet some speakers announced it is better than React Native because... it leans on Kotlin. Well, here are 3 reasons (although there are many) why I will still write my next app in React Native JS.

 

1. Shipping JS is easy and fast

React Native has its secret weapon : Code Push. Other frameworks can hardly fight against the fact we can build, deploy and distribute new code in less than 5 minutes. Once configured, React Native JS code will be in production before Native code.

100 points to React Native JS !

 

2. Learning JS is easy, approachable and pragmatic

There are a lot of resources on the Internet to learn JS. At BAM, Egghead.io is our favorite learning tool. 

Number of teams welcome new developers from various backgrounds. Learning and teaching React JS is very easy. With a small investment one can code quality features in a couple of weeks.

At some of our HR events, we make the attendees play out with Expo on their computer. There is nothing better to start experimenting when you want to write your first mobile app - and you don't need anything installed on your computer but an Internet browser !

That's another 100 points to React Native JS !

 

3. The community is Huge

The React and React Native community itself maintain a lot of resources and helps with issues and bugs. Within the last 5 years, they created awesome npm packages that are now part of the JS landscape : Apollo GraphQL, Redux, MobX and Formik to name a few.

150 points to React Native JS.

 

What does KotlinConf attendees think of it ?

At the KotlinConf, I spoke about React Native and Javascript with 20 attendees.

I heard "Cannot read undefined of undefined is a nightmare" quite often ?. And only a few people experimented React Native.

I can assure that writing JS now is very different that it could have been 10 years ago or at the early stage of React Native. With modern Javascript and Typescript, we can :

  • write and type our business logic (buildtime checked)
  • avoid callback hell
  • use async-await keywords

I encourage people to give React Native another try. Especially since the version 0.61, the dev experience is better and faster.

What does KotlinConf speakers think of it ?

At the end of the conference, in the keynote auditorium, someone asked to the board:

"How do we evangelize Kotlin to beginner developers so they don't start with Javascript ?"

Here are two interesting responses from the Kotlin board:

"I think that to bring more young developers, we need to understand why these developers find this experience writing in Javascript productive and fun. So my take on that is when you develop in JS you have much faster turnaround loops. We have to work to make the Kotlin experience faster." - Maxim Shafirov, CEO @ Jetbrains

 

"I think that the Javascript ecosystem is going through a revolution right now and Typescript is becoming very popular. [...] JS competes with things such as the feedback loop, the broad of resources and its approachability. Kotlin is good but could do better." - Leland Richardson, Jetpack Compose Lead Developper @ Google

 

So here what I analyse from what Leland and Maxim say (and I strongly agree with their suggestion) : let's stop mocking a technology for it defects. We should get inspired by other communities and learn how each one of them deal with its problems. One community is not exclusive for its members and has a lot to take from others.

I hope you will give React Native some thoughts. And I am really looking forward to Kotlin multiplatform evolution !

It takes a great deal of bravery to stand up to your ennemies, but a great deal more to stand up to your friends - 10 points for me ?????

 

Développeur mobile ?

Rejoins nos équipes