The Case Against Kotlin
Pinterest Engineering

Finally some ideas which are beyond “it is cool and I like it”. Good job sharing them!

I would also like to add that switching to Kotlin will NOT have any appreciable positive gains on the cost, the effort or the schedule of software projects (but, as described in this article, it can easily have negative gains).

At this point, Kotlin zealots are probably already typing angry responses… :)

For the sake of argument, let’s play with numbers. Let’s assume that Kotlin improves the productivity of R&D department during software coding and testing by 5% (which is insanely ridiculous assumption, but let’s stick to this improbable number).

According to this graph from Steve McConnell’s Code Complete 2, on a non-trivial project (larger than 10 KLOC), coding and testing consumes less than 30% of the total development time:

So, our assumption of 5% productivity improvement during 30% of development activities leads to a total improvement of 1.5% in development time.

So, under the most favorable circumstances, ignoring all other costs associated with Kotlin (part of which were described in this article), all the hype is about improving development time by 1.5 percent.

On a project that takes 6 months, such an improvement will result in schedule pull-in of less than 2 days!

In practice, however, the productivity improvement will not be anywhere near the 5% that we assumed, and there are costs associated with Kotlin.

Therefore, the net gains from switching to Kotlin (from a project’s schedule/effort/cost perspective) will be practically zero in the best case. I believe that, in practice, the actual gain will be negative — Kotlin adoption will hurt project’s schedule/effort/cost.

But Kotlin is cool and interesting language indeed.